水平分割:
水平分割有两种方式,在Broadcast/P2P/P2MP网络上使用基于接口的水平分割,指RIP路由器不会把从某个接口学到的RIP路由再发回给这个接口的邻居。在NBMA网络上使用基于邻居的水平分割,指RIP路由器不会把学到的路由信息回发给发送此路由更新的邻居,但是使用单播方式将此路由信息更新给同一接口上的其他邻居。
水平分割机制是如何防止RIP网络中的产生路由环路的?
RouterB从RouterA学习到192.168.1.0/24这条路由后,会将这条路由发回给邻居RouterA,这样RouterA的就会有两条到192.168.1.0/24的路由,一条cost值等于0的直连路由,一条cost等于2,下一跳地址为RouterB的路由。此时只有直连路由是处于激活状态。如果RouterA的192.168.1.0/24路由不可达,但这条路由不可达的信息还没有传递到RouterB,此时RouterB就会继续向A转发192.168.1.0/24从自己可达的信息。RouterA就会学习到这条错误的路由,这个时候这个简单的网络中就会出现一个路由环路,RouterA的路由表中192.168.1.0/24这个网络下一跳是RouterB,而RouterB的路由表中的下一跳指向RouterA。
而如果使用水平分割机制,一开始就不让RouterB把从RouterA学习到的路由信息回发,就能避免这样的路由环路产生。所以水平分割能够解决直连RIP路由器之间因为路由信息错误产生的路由环路。
毒性逆转:
毒性逆转机制是指RIP路由器在从邻居学到RIP路由后,将学到的路由标记为不可达后回发给邻居路由器。这样可以清除对方的路由表中的错误信息,防止环路。
在应用毒性逆转机制后,RouterB从邻居RouterA学习到192.168.1.0/24这条路由后,会向A发送一条这个路由cost值修改为16跳回发给RouterA,这样RouterA就不会再从RouterB学习到这条路由可达的信息,从而避免环路的产生。
触发更新:
触发更新机制是指RIP路由在检测到RIP路由信息发生变化时,不等到周期更新就立即发送触发更新报文,通知变化的路由信息。
同时,发送出发更新的RIP路由器不会重置自己的更新计时器。
触发更新使网络情况的改变立即传递到整个RIP网络:
触发更新机制如何防止RIP网络中的路由环路产生?
如果在以下RIP网络中没有触发更新机制,
RouterA和RouterB从RouterC学习到192.168.1.0/24这条路由,并且RouterA和RouterB之间互发到192.168.1.0/24,cost值等于2的路由更新,如果RouterC上的192.168.1.0网络不可达,并且没有触发更新机制,此时当RouterA和RouterB的路由超时后,就可能学习到来自对端邻居的到192.168.1.0/24的路由,从而产生路由环路,但是触发更新机制可以让192.168.1.0/24不可达的信息迅速传递到RouterA和RouterB,避免路由环路的产生。
16跳不可达:
RIP设计了16跳的最大cost值,当路由传递出现环路时。根据距离矢量路由协议的特点,这条路由的cost是递增的状态,使用了最大cost值16跳的限制以后,当路由的cost值递增大16跳以后,这条路由就被RIP路由器视为不可达,从而避免这条错误的路由信息继续影响RIP网络。
(来源:网络工程师阿龙)