一、动态路由产生背景
1、手工配置麻烦
2、不适合大规模网络
3、不会根据网络拓扑结构变化,自动调整路径
二、分类
1、按工作区域:
内部网关协议:RIP(路由信息协议)、ospf(开放式最短路径优先协议)、IS-IS(从中间系统到中间系统)
外部网关协议:BGP(边界网关协议)
2、按算法:
基于距离矢量:RIP:BELLMAN-FORO,周期性发送自己的路由表,给相邻的路由器
基于链路状态:ospf(开放式最短路径优先协议)使用dijkstra算法、IS-IS(从中间系统到中间系统)
Dijkstra算法是一种用于求解加权有向图或无向图中单源最短路径问题的经典算法。它由荷兰计算机科学家Edsger W. Dijkstra在1956年提出。
该算法的目标是找到从起始节点到其他所有节点的最短路径。它采用了贪心策略,通过逐步确定距离起始节点最近的节点来推进搜索过程,并逐步扩展到其他节点。
Dijkstra算法的步骤如下:
- 创建一个集合distances和一个集合visited。distances用于保存起始节点到每个节点的当前最短路径长度,初始化为正无穷;visited用于记录已经找到最短路径的节点,初始化为空。
- 将起始节点的距离设为0,并将其添加到visited集合中。
- 遍历起始节点的邻居节点,更新其距离distances为起始节点到邻居节点的边权重,如果存在更小的路径长度。同时,将邻居节点添加到distances集合中。
- 从distances集合中选择路径长度最小的节点作为当前节点,并将其添加到visited集合中。
- 重复步骤3和步骤4,直到所有节点都被访问过,或者没有可达节点时结束。
- 最终,distances集合存储的就是起始节点到每个节点的最短路径长度。
Dijkstra算法能够正确地找到起始节点到其他所有节点的最短路径。它的时间复杂度为O(V^2),其中V是图中节点的数量。为了提高效率,也可以使用优先队列(如最小堆)来优化算法实现,使时间复杂度降为O((V+E)logV),其中E是图中边的数量。
三、路由学习过程及规则



总结:
1、周期性的发送路由表,发给相邻的路由器
2、学习过程:
(1)对自己没有的路由信息进行无条件学习,并将矢量值进行叠加
(2)对于同一个路由信息,比较信息的来源,如果来源不同,会比较矢量值,对值大的,不学习,值 小的,学习
如果来源相同:无条件的学习
"路由学习过程中如果来源相同无条件的学习"通常指的是在路由协议中,当同一个目标网络的路由信息来自不同的源时,如果这些源的权重(或度量值)相同,那么无论哪个源先到达,都将被无条件地接受并学习。
然而,需要注意的是,这种策略并不适用于所有的路由协议或环境,因为无条件的接受来自不同源的路由信息可能导致路由环路或不稳定的网络。因此,在实际部署中,可能会使用其他一些条件或策略来确保路由信息的稳定和可靠性,例如设定优先级、利用度量值等。
四、RIP协议---BELLMAN-FORO,以跳数为距离的衡量值
(1)环路产生



现象:数据包会在某个网段一直循环,走不出去
距离矢量值会无限制的进行叠加
(2)环路解决方法
水平分割:不会把从一个接口学到的路由信息回传到这个接口
路由毒化:当发现某一网段发生故障,路由器会将该路由项设为最大值,并发送给其他邻居,不发给原接口
毒性逆转:会把从一个接口学到的路由信息回传到这个接口,带毒回传infinity(inf)给原接口
保持失效计时器:180秒,在失效时间内不接受其他邻居发送的更新信息,防止更新欺骗,只接受相同 邻居发送的路由项小于最大值的更新信息
最大跳数限制:不能超过16跳
触发更新:对于网络拓扑结构的变化,会立刻通知给其相邻的路由器
(3)RIP计时器
更新计时器:30秒,每个路由器更新周期都是独立的
抑制计时器:180秒,更新欺骗,度量值大的不接受,某网络处于故障时,路由器对该路由项设为最大 值,并进入抑制时间,在抑制时间内不接受其他邻居发送的更新信息,只接受相同邻居发送的路由项小于最大值的更新信息
保持失效计时器:180秒,路由器打上possibly down标签,路由设置为16跳
刷新计时器:240秒,彻底删除
(4)RIP数据包----UDP--520端口
update:更新数据包
request:请求自己没有的路由信息
response:回复请求的路由信息
1、周期性和触发性更新,周期性更新会发送全部路由信息,占用大量的带宽
2、最大跳数限制为15,不适用大规模网络
3、公有协议,UDP-520端口,不可靠传输
4、路由收敛速度慢
5、协议存在环路问题
六、rip的版本对比
1、RIPv1是有类路由协议,RIPv2是无类路由协议。
2、RIPv1不能支持VLSM,RIPv2可以支持VLSM。
3、RIPv1不能关闭自动汇总,RIPv2可以在关闭自动汇总的前提下,进行手工汇总
4、RIPv1是不支持认证,RIPv2是支持认证。
5、RIPV1是广播发送协议报文,RIPV2是组播发送协议报文,组播地址:224.0.0.9
七、RIP实验
一些配置指令:
[R1]rip ?
INTEGER<1-65535> Process ID
mib-binding Mib-Binding a process
vpn-instance VPN instance
<cr> Please press ENTER to execute command
[R1]rip 1 //配置RIP协议的进程ID
[R1-rip-1] //RIP的协议视图
[R1-rip-1]version 2 //选择RIP的版本
[R1-rip-1]undo summary //关闭自动汇总
[R1-rip-1]network 192.168.1.0 //宣告跟自己直连的网段(主类宣告)
[r3-rip-1]default-route originate 当前设备生成一条缺省路由或者将路由表中存在的缺省路由发送给邻居
[R2]int g0/0/0
[R2-GigabitEthernet0/0/0]rip authentication-mode md5 usual cipher 12345 //配置RIP的接口认
证
R2]int g0/0/0
[R2-GigabitEthernet0/0/0]rip summary-address 192.168.1.192 255.255.255.192 //手动汇总
八、作业