路由环路(Route Loop):是指去往目的网络的数据包因为路由协议设计问题、部署问题或者网络规划等问题,在设备之间不停地被来回转发,从而严重影响设备性能,并且大量消耗网络带宽资源,影响正常的业务流量。
RIP为了防止路由环路,主要采用了以下机制:
1、定义最大跳数:RIP定义了路由的最大跳数为15跳,当路由度量值达到16跳时被视为该路由不可用,路由指向的网段不可达。最大跳数的设置避免了RIP路由在网络中被无休止的泛洪。
2、水平分割:RIP路由器从某个接口收到的路由不会再从该接口通过回去。水平分割是RIP防止路由环路的最重要机制之一,在大部分情况下都比较好用,但在FR帧中继网络中可能会带来其他问题。 //不再通告给上一个路由器
比如:在FR网络中,采用中心到分支(Hub-Spoke)部分互联模型,R1同时和R2、R3通过PVC连接,R2、R3之间没有直连,此时如果在R1的接口上启用水平分割,则从R2、R3学习到的路由将无法再通过该接口通过出现,会出现R2、R3之间无法通信的问题。为了避免该问题,FR网络中一是关闭水平分割;二是在R1接口上创建两个逻辑子接口分别于R2、R3相连。
3、毒性反转/毒性逆转:RIP从某个接口学习到路由后,当它从该接口发送Response报文时会携带这些路由,但这些路由度量值被设置为16跳(网络不可达)。毒性反转可以清除对方路由表中的无用路由。 //告诉上一个路由器去往目的网段从本路由器不可达
水平分割和毒性反转存在矛盾,不能同时启用,如果同时启用,只有水平分割会生效。
4、触发更新:当路由器感知到拓扑发生变更或RIP度量值变更时,路由器无需等待下一个更新周期到来即立刻发送Response报文。 //默认情况下,RIP以30s+随机偏移量周期性进行报文发送
5、毒性路由:当一个网络不可达时,发现该网络不可达的路由器立即触发一个16跳的路由更新来通知网络中的其他路由器,该目标网络已不可达,这种路由称为毒性路由。