RIP防环机制
希望有需要的小伙伴可以参考参考,如有误解、请指正!
一、实验原理
1.水平分割(Split Horizon):由于路由器可能收到它自己发送的路由信息(无用信息),即在运行RIP的网络中,希望路由器从某个接口收到的路由信息,不会再从该接口发送给路由信息的发送者。这样不仅能够阻止路由环路的产生,还可以减少因路由器更新路由信息而消耗的链路带宽资源。
2.触发更新(Trigger Update):当路由信息发生变化时,运行RIP的设备会立即向邻居设备发送更新报文,而不必等待周期性更新(30S),从而加快了网络的收敛速度。
3.毒性逆转(Poison Reverse):可以将毒性逆转看作水平分割的升级版。路由器从某个接口收到路由信息后,并不是不往回发送了,而是通过将路由的开销(跳数Rip metric)设置为16(路由不可达),并从原接口发送出去,但是对方设备并不会接收到。利用这种方式可以精简对方路由表的无用路由,如果同时配置了水平分割和毒性逆转,水平分割将会被毒性逆转行为替代。
4.抑制计时(Holddown Timer):抑制计时器的原理是在RIP协议中控制路由信息更新的机制。当RIP路由器接收到关于某个网络的更新信息时,如果接收到的更新信息的度量值小于等于当前的度量值,该路由器会更新自己的路由表,并启动抑制计时器。在抑制计时器的时间内,该路由器不会向其他路由器发送关于该网络的更新信息,以避免路由环路和减少不必要的信息传播。抑制计时器结束后,路由器允许发送更新信息,最终实现路由信息的一致性和稳定性。
RIP计时器:
- 更新计时器:周期性更新时间为30S。
- 失效计时器/抑制计时器:如果180S后还没有收到更新,则被标记为无效。
- 刷新计时器:如果在【180 + 60 = 240 S】后还没有收到更新,则从路由表中删除此路由条目。
二、实验拓扑
1.搭建实验拓扑,各接口详细信息在实验详解中有阐明:
三、实验详解
1.基本配置如下:
R1:
R2:
R3:
PC1:
PC2:
2.验证网络连通性:
验证水平分割:
华为设备默认开启水平分割:rip split-horizon(在接口视图下开启) 。
在R2输入以下命令:
|
|
|
|
| 这条命令用于将系统日志消息输出到当前终端会话。当你启用某项调试或配置命令的日志输出时,使用此命令可以实时在终端上查看日志信息,以便进行故障排除和分析。 |
|
|
监听R1的g 0/0/0接口信息如下:
此信息表示路由器R1正在通过接口g 0/0/0发送RIP响应,将12.0.0.1发送出去,并且还有一条11.0.0.0的路由信息被发送出去,该接口没有收到自己发送出去的路由信息,水平分割防环成功响应。
在R1设备的G0/0/0接口上关闭水平分割:
[R1]int g 0/0/0
[R1-GigabitEthernet0/0/0]undo rip split-horizon //关闭水平分割
再次监听R1的g 0/0/0接口信息如下:
由此可知,从R1的g0/0/0发送出去的12.0.0.1的路由信息,又从该接口收到了,违背了水平分割机制,容易引起网络的不稳定,形成环路。
验证触发更新:
正常情况下,R2的路由表中有两条通过RIP学习到的路由,如下所示:
此时将R1与R2的链路断掉,R2的路由表已经触发更新只含有一条通过RIP学习到的路由信息,如下所示:
验证毒性逆转:
华为设备水平分割默认开启、毒性逆转默认关闭;
为了更直观的对比,在此我将水平分割在R1的g0/0/0接口关闭,通过调试信息可知,通过g0/0/0接口收到的路由信息(12.0.0.0)再次被该接口发送出去,如下所示:
然而当开启毒性逆转后,从该接口收到的路由信息会再次发送出去,并将该路由的开销设置为16(即指明该路由不可达)利用这种方式,可以清除对方路由表中的无用路由,如下所示:
验证抑制计时:
抑制计时器,路由器若在同一个接口上收到某条路由条目的度量值比原来的度量值大,则会启动一个抑制计时器。在抑制计时时间范围内,这条路由是不可达的,它的出现就是为了防止路由环路的产生。路由器收到的路由条目的度量值与原来的不同,那么这里就存在一个真假的路由消息,为了网络稳定,路由器先判定这个是假消息,从而避免路由环路,那么若这个消息是真的,则路由器还会接收到这个消息,这时路由器就会认为它是真的。
如果错误,请多多指点!