这系列文章为计算机网络理论的学习笔记,学习笔记基于老师给的的PPT、他人学习笔记和维基百科、百度百科等一系列权威资料。学习笔记仅个人学习用,便于记录和复习,无广泛传播之意,若有侵权,请联系我删除。欢迎各位大佬指正和交流。
路由是指导IP报文发送的路径信息。(就是指导路由器如何进行数据报文发送的路径信息)
路由工作包含两个基本的动作:
- 确定最佳路径。
- 通过网络传输信息。
在路由的过程中,后者也称为(数据)交换。交换相对来说比较简单,而选择路径很复杂。
路由表是路由器转发报文的判断依据。
1. 路由度量值表示到达折条路由所指目的地址的代价。(跳几次?)
2. 通常影响路由度量值的因素:
线路演示,带宽,线路使用率,线路可信度,跳数,最大传输单元。
3. 不同路由协议参考的因素不同:
路由类型 |
度量值参考因素 |
静态路由协议 |
固定值,0 |
OSPF路由协议 |
带宽 |
RIP路由协议 |
跳数 |
环路产生的原因:配置错误/协议缺陷。
根据路由器学习路由信息、生成并维护路由表的方法包括直连路由(Direct)、静态路由(Static)和动态路由(Dynamic)。
- 直连路由:路由器接口所连接的子网的路由方式。
- 非直连路由:通过路由协议从别的路由器学到的路由方式。分为静态路由和动态路由。
实验学习:沫仔 的 网络初级篇之直连路由与静态路由(原理与实验)
直连路由就是直接连接网段的路由。即连接在各个路由器接口网段的路由,在路由器启动时可以直接得到路由网段。
上图的路由器不需要任何配置就能互相访问,因为这三个网段的网关地址都在同一个路由器的接口上,属于直连路由。
路由器会自动生成路由表,不需要手动配置就可以让这三个区域互相ping通。这就是直连路由的作用!
直连路由在路由表中显示的协议为 Direct ,在所有路由协议中优先级是最优的。
查路由表命令: display ip routing-table (显示路由表)
静态路由(Static routing)是一种路由的方式,路由项(routing entry)由手动配置,而非动态决定。
与动态路由不同,静态路由是固定的,不会改变,即使网络状况已经改变或是重新被组态。
静态路由的公式:ip route + ‘目的地址’+‘目的地址子网掩码’+‘下一跳路由地址’。
与直连路由一样,当路由器收到一段IP数据包时,会将IP数据包拆开,寻找目的IP地址,当找到目的IP地址后,会查自身路由表中的路由,从而寻找到由哪个端口发出数据包,将数据包重新打包后发出,完成路由动作。
拆包 》》 寻址 》》查表 》 封装 》 发送数据包
[Router]ip route-static dest-address { mask | mask-length } {gateway-address | interface-type interface-name } [ preference preference-value ]
静态默认路由配置:
优先级不同的, 优先级高为主。 优先级相同的,均匀分布。
案例展示:直连路由和静态路由 - 尹正杰 - 博客园
通过上图的静态路由的配置,RTA、RTB、RTC...
这些静态路由要是想访问RTE,则必须经过RTD。( 因为他们都是RTD的直连路由 )
导致环路的原因:当RTA访问RTE的数据时,RTD需要写一个默认路由传到RTE。又因为路由是互相传递的,有来有回,因此RTE也会写一个路由传到RTD,反复传递就会导致环路。
解决环路的方法:在RTD中写一个静态路由,将RTE传递回来的数据放入回收站中不作处理即可。
动态路由是指路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化自主动态进行调整。
BGP | RIP | OSPF | |
TCP | UDP | ||
IP | Raw IP |
||
链路层 |
|||
物理层 |
一个VLAN是一个广播域,同一个VLAN之间通信是属于二层互访,那如果想要VLAN之间的通信,就需要借助三层设备。
三层设备:路由器或三层交换机。如下图所示。
广播域:全体目光向我看齐!我是xx!
路由器与每个VLAN建立一条物理连接,浪费大量的端口。不如Trunk链路聚合好。
目的:避免物理端口和线缆浪费,简化连接方式。
方法:使用802.1Q封装和子接口,通过一条物理链路实现VLAN间路由。
原理:交换机的端口链路类型有Access和Trunk,其中Access链路仅允许一个VLAN的数据帧通过,而Trunk链路能够允许多个VLAN数据帧通过。单臂路由正是利用Trunk链路允许多个VLAN的数据帧通过而实现的。
三层交换机在功能上实现了:VLAN的划分、VLAN内部的二层交换和VLAN间路由。
三层VLAN接口连接到三层路由转发引擎上,通过转发引擎在三层VLAN接口间转发数据。
路由协议(Routing protocol)是一种指定数据包转送方式的网上协议。
路由器用来计算、维护网络路由信息的协议,通常有一定的算法,工作在传输层或应用层。
协议计算的正确性
协议使用的算法能够计算出最优的路由,且正确无自环。
路由收敛速度
当网络的拓扑结构发生变化之后,能够迅速感知并及时更新相应的路由信息。
协议占用系统开销
协议自身的开销(内存、CPU、网络带宽)最小。
协议自身的安全性
协议自身不易受攻击,有安全机制。
协议适用网络规模
协议可以应用在何种拓扑结构和规模的网络中。
参考学习:路由协议概述 - Guanjie - 博客园
(1)距离矢量协议: RIP、BGP 其中BGP也被称为路径矢量协议;
学习路由:周期性、广播式更新路由表。协议基于贝尔曼-福特算法(D-V算法)
维护路由:网络发生改变,直连路由器更新路由表,在下一个拷贝间隔发到邻居路由器,
邻居路由器再更新路由表。
缺点:采用距离矢量算法,可能造成路由环路。
解决方案:最大跳数限制,水平分割,路由毒杀,反转毒杀,保持时间,快速更新。
(2)链路状态协议: OSPF、IS-IS
学习路由:发送链路状态和泛洪链路状态声明,同步链路状态数据库,运行最短路径的
优先算法计算路由。协议基于Dijkstra算法(最短路径优先算法)
维护路由:链路改变,发送新的状态和泛洪声明,同步数据库,运行最短路径优先算法。
缺点:对于大的链路状态数据库,CPU要求高,链路不稳定,负担更大。
解决方案:层次化的拓扑设计,通过划分区域实现,将链路状态声明的泛洪控制在区域内。
1.可靠性、安全性比较
协议 |
协议端口 |
可靠性 |
安全性(是否支持验证) |
RIP-1 |
UDP 520 |
低 |
否 |
RIP-2 |
UDP 520 |
低 |
是 |
OSPF |
IP 89 |
高 |
是 |
IS-IS |
基于链路层协议 |
高 |
是 |
BGP |
TCP 179 |
高 |
是 |
2.协议特性比较
特性 |
RIP-1 |
RIP-2 |
OSPF |
IS-IS |
BGP |
距离矢量算法 |
是 |
是 |
- |
- |
是 |
链路状态算法 |
- |
- |
是 |
是 |
- |
支持VLSM |
- |
是 |
是 |
是 |
是 |
支持手工聚合 |
- |
是 |
是 |
是 |
是 |
支持自动聚合 |
是 |
是 |
- |
- |
是 |
支持无类别 |
- |
是 |
是 |
是 |
是 |
收敛速度 |
慢 |
慢 |
快 |
快 |
慢 |
度量值 |
跳数 |
跳数 |
开销 |
开销 |
路径属性 |
3.定时器比较
协议 |
周期性发送全部路由 |
Hello定时器 |
保持定时器 |
RIP-1 |
30秒 |
- |
180秒 |
RIP-2 |
30秒 |
- |
180秒 |
OSPF |
触发更新 |
广播链路上10秒 |
4倍hello定时器 |
IS-IS |
触发更新 |
10秒 |
4倍hello定时器 |
BGP |
触发更新 |
60秒 |
3倍hello定时器 |