RIP跳转导致路由回路的原因分析
引言
这就是个作业,你就放过我吧!
什么是路由回路和慢收敛
首先要明确的就是每个路由器在正常的配置完成了动态路由跳转之后都有一个Routing Table
上面记载着到目标网段的跳数。如下图:
这时候会出现意外情况,比如说C路由器连接的10.4.0.0网段突然炸了,不能进行访问了,C路由器中就会直接采取协议的标准将C抵达该网段的跳数设置为不可达,如下图:
关键在这里就发生了问题,就是RIP的协议采用的是定时更新而不是触发更新,所以发生问题的C路由器决定再下一次的通信过程中将这个不幸的消息告诉他的伙伴,但是问题是他的伙伴和他通信的时候他会发现他的邻近的伙伴是可以抵达10.4.0.0网段的,这时候他发现路由器B的Routing Table中有信息说他只用1跳就能抵达目标网段,然后在路由器B将信息发给她之后他就直接还给路由器B,路由器B收到了路由器C的Routing Table,又更新了他的列表,然后就导致了循环往复,看不懂的可以直接看下面几幅图,比较直观:
上面就解释了路由回路是怎么产生的,就是这个过程被称为是慢收敛,因为路由器的整个系统得知一个网段不可达的时间会非常的长。
解决办法
个人在看完了所有的办法后感觉水平分割和触发更新都是比较好的解决方法,毒性逆转是一个比较难实现但是也是一种较好的选择,但是剩下的两种个人感觉在效率有点低的同时实现的过程有点过于复杂。当然这都只是个人观点,本人还在学习过程中,如果出现了谬误,希望大佬们能够在本篇文章的评论区告诉我,谢谢!
办法一:定义最大跳数
这个方法十分容易理解,实际上现在的有一些RIP协议就是这样设计的,通过最大跳数,当所有的路由器都抵达这个跳数或者是报文的TTL为零是就知道这个网段不可达。
办法二:水平分割
这个名词听起来十分的深奥,但是实际上理解起来非常简单,就是禁止路由选择协议回传路由选择信息,也就是路由器从某个接口接收到的更新信息不允许再从这个接口发回去。这里已经找到了相应的命令行,先行放在这里:
1 | Router rip |
办法三:毒性逆转
就是将不可达的网段的跳数设置为16,当其他路由器接收到这个跳数的时候会直接进行抛弃,不会等待其老化时间到。
办法四:触发更新
这个在前文件提到了,在网段连接出现问题的第一时间就直接通知整个网络内的路由,这个网段已经不能访问,解决慢收敛的问题。
办法五:Hold-Down定时器
目前完全看不懂这个方法在讲什么。
参考链接
https://wenku.baidu.com/view/7fdbfc8a6e1aff00bed5b9f3f90f76c660374c4b.html
https://blog.csdn.net/weixin_42682806/article/details/84635279