RIP环路问题总结 【转自网络】

RIP协议产生路由环路的原因:
        当从第一台路由器意识到失败时,直到所有路由器都知道该路由已经失败,这段时间内距离矢量路由选择协议就有引起路由选择环回的可能。
        例如:路由器A会将针对目标网络C的路由表项的metric值置为16,即标记为目标网络不可达,并准备在每30秒进行一次的路由表更新中发送出去,如果在这条信息还未发出的时候,A路由器收到了来自B的路由更新报文,而路由器B中包含着关于网络C的metric为2的路由信息,根据前面提到的路由更新方法,路由器A会错误的认为有一条通过路由器B的路径可以到达目标网络C,从而更新其路由表,将对于目标网络C的路由表项的metric值由16改为3,而对于的端口变为与路由器B相连接的端口。很明显,路由器A会将该条信息发给路由器B,路由器B将无条件更新其路由表,将metric改为4;该条信息又从路由器 B发向路由器A,路由器A将metric改为 5......最后双发的路由表关于目标网络C的metric值都变为16,此时,才真正得到了正确的路由信息。这种现象称为"计数到无穷大"现象,虽然最终完成了收敛,但是收敛速度很慢,而且浪费了网络资源来发送这些循环的分组。
 
在最初开发RIP的时候就发现环路的问题,所以已经在RIPv1和 RIPv2中集成了几种防止环路的特性:
       最大跳数:当一个路由条目作为副本发送出去的时候就会自加1跳,那么最大加到16跳,到16跳就已经被视为最大条数不可达了。
       水平分割:路由器不会把从某个接口学习到的路由在从该接口广播回去或者以组播的方式发送回去。
       带毒性逆转的水平分割:路由器从某些接口学习到的路由有可能从该接口反发送出去,只是这些被路由已经具有毒性,即跳数都被加到了16跳。
      抑制定时器:当路由表中的某个条目所指网络消失时,路由器并不会立刻的删除该条目并学习新条目,而是严格按照我们前面所介绍的计时器时间现将条目设置为无效接着是挂起,在240秒时才删除该条目,这么做其实是为了尽可能的给于一个时间等待发生改变的网络恢复。
       触发更新:因网络拓扑发生变化导致路由表发生改变时,路由器立刻产生更新通告直连邻居,不在需要等待30秒的更新周期,这样做是为了尽可能的将网络拓扑的改变通告给其他人。
 
注意:
(1)这些特性是共同作用的,其中水平分割是解决路由环路的核心方法。通过水平分割可以避免产生计数到无限大现象,阻止路由环路的产生。
(2)触发更新、毒性逆转可以使失败路由尽快的传播到整个网络,也起到了避免路由环路产生,加速网络收敛的作用。
(3)抑制定时器是针对存在冗余路径的网络中,单纯的水平分割不能够阻止计数到无限大产生路由环路的问题,还需要抑制计时器来阻止路由环回。
posted @ 2014-02-24 14:42  HBaks  阅读(1713)  评论(1编辑  收藏  举报