三、RIP工作原理/防环机制
1、工作原理
配置好RIP的路由器会每隔30s,向邻居路由器自动发送RIP路由更新报文。报文里面携带了其所知道的所有路由。
通过发送数据包进行路由信息的交互,路由器启动RIP协议,向周围邻居路由器传递request(请求)response(响应)报文,周围路由器收到后发回复报文,回复报文内包含有周围路由器自身的RIP路由表,路由器收到周围路由器的恢复后修改自己的路由表。
2、RIP防环机制
对于路由环路问题,RIP中存在3种解决方案:水平分割、毒性逆转、触发更新。
(1)水平分割(Split Horizon)
水平分割的原理: RIP路由设备从某个接口学到的路由不会从该接口再发回给邻居路由设备。这样不但减少了带宽消耗,还可以防止路由环路。
水平分割在不同网络中实现有所区别,分为按照接口和按照邻居进行水平分割两种:
**1)**在广播型网络、点到点网络(P2P)和点到多点网络(P2MP)中,从哪个接口学习到的RIP路由信息,就禁止从该接口发送出去。
广播网、P2MP和P2P网络中的水平分割
如(上图示),DeviceA会向DeviceB发送到网络10.0.0.0/8的路由信息,如果没有配置水平分割,DeviceB会将从RouterA学习到的这条路由再发送回给RouterA。这样,RouterA可以学习到两条到达10.0.0.0/8网络的路由,一条是跳数为0的直连路由,一条是下一跳指向DeviceB且跳数为2的路由。
但是在DeviceA的RIP路由表中只有直连路由才是活跃的。当DeviceA到网络10.0.0.0的路由变成不可达,并且DeviceB还没有收到路由不可达的信息时,DeviceB会继续向DeviceA发送10.0.0.0/8可达的路由信息。即,DeviceA会接收到错误的路由信息,认为可以通过DeviceB到达10.0.0.0/8网络;而DeviceB仍旧认为可以通过DeviceA到达10.0.0.0/8网络,从而形成路由环路。
配置水平分割后,DeviceB将不会再把到网络10.0.0.0/8的路由发回给DeviceA,避免了路由环路的产生。
2) 在非广播多路访问网络(NBMA,Non Broadcast Multiple Access)中,不允许将从某一邻居学习到的路由信息再发送回该邻居,是按照邻居进行水平分割。
NBMA网络中的水平分割
对于NBMA网络,由于一个接口上连接多个邻居,RIP支持在NBMA网络中按邻居进行水平分割处理。NBMA网络中,路由按照单播方式发送,同一接口上收到的路由可以按邻居进行区分。从某一接口的对端邻居处学习到路由,不会再通过该接口发送回去。
如(上图)示,配置水平分割后,DeviceB会将从DeviceA学习到的10.0.0.0/8路由发送给DeviceC,但是不会再发送回给DeviceA。
(2)毒性反转(Poison Reverse)
毒性逆转的原理 : 配置了毒性反转之后,可以使错误路由立即超时。RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达),并从原接口发回邻居路由设备。利用这种方式,可以清除对方路由表中的无用路由,也可以防止产生路由环路的发生。
如(上图)示,DeviceA会向DeviceB发送10.0.0.0/8路由信息,如果没有配置毒性逆转,Device B会将从DeviceA学习到的这条路由再发送回给DeviceA。这样,DeviceA可以学习到两条到达10.0.0.0/8网络的路由,一条是跳数为0的直连路由;一条是下一跳指向DeviceB且跳数为2的路由。
当DeviceA到网络10.0.0.0/8的路由变成不可达,并且DeviceB还没有收到路由不可达的信息时,DeviceB会继续向Device A发送10.0.0.0/8可达的路由信息。即,DeviceA会接收到错误的路由信息,认为可以通过DeviceB到达10.0.0.0/8网络;而DeviceB仍旧认为可以通过DeviceA到达10.0.0.0/8网络,由此导致了路由环路。
配置毒性逆转后,DeviceB在接收到从DeviceA发来的路由后,向DeviceA发送一个这条路由不可达的消息(即将该路由的开销设置为16跳,16跳即意味着该路由不可达),这样DeviceA就不会再从DeviceB学到这条可达路由,因此就可以避免上述环路的发生。
(3)触发更新
缺省情况下,一台RIP路由器每30秒会发送一次路由表更新给邻居路由器。
**触发更新的原理:**当本地路由信息发生变化时,触发更新功能允许路由器立即发送触发更新报文给邻居路由器,来通知路由信息更新,而不需要等待更新定时器超时,从而加速了网络收敛。触发更新可以缩短网络收敛时间,在路由表项变化时立即向其他设备广播该信息,而不必等待定时更新。
如(上图)所示,网络10.4.0.0不可达时,DeviceC最先得到这一信息。通常,更新路由信息会定时发送给相邻Device(RIP协议每隔30秒发送一次)。
但如果在DeviceC等待更新周期到来的时候,DeviceB的更新报文传到了DeviceC,DeviceC就会学到DeviceB的去往网络10.4.0.0的错误路由。这样DeviceB和DeviceC上去往10.4.0.0的路由都指向对方从而形成路由环路。
如果DeviceC发现网络故障之后,不再等待更新周期到来,就立即发送路由更新信息给DeviceB,使DeviceB的路由表及时更新,则可以避免产生上述问题。
触发更新还存在另外一种方式: 当下一跳不可用之后(如因为链路故障)需要及时通告给其他设备,此时要把该路由的cost设置为16然后发布出去,此更新也叫做路由毒杀。
整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun 暗号:CSDN】