曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 3746|回复: 0
打印 上一主题 下一主题

RIP 环路(最大跳数/水平分割/路由毒化/毒性反转)

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34395
跳转到指定楼层
楼主
发表于 2016-7-12 11:59:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当网络发生故障时, RIP 网络有可能发生路由环路。参考下面的网络拓扑图:
刚开始网络正常时,RTA 上会收到 RTB 的一条路由表:
10.0.0.0/8     192.168.1.1    1

现在假设 RTB 上通往 10.0.0.0/8 的网络发生故障,那么相应的路由信息会从 RTB 上删掉。

在下一次更新时,RTB 会从 RTA 上接收通往 10.0.0.0/8 的路由表信息,于是它身上就有:
10.0.0.0/8     192.168.1.2    2

因为这条路由信息是 RTA 告诉 RTB 的,因此下一跳的地址就得指向 RTA 的地址,即 192.168.1.2;此外跳数 metric + 1 (2)。

接下来,在 RTB 发起更新路由信息时,RTA 上的这条路由信息又会变成:
10.0.0.0/8    192.168.1.1    3

以此类推,RTA 和 RTB 会互相更新该条路由信息,最后当 metric 值到达 16 时,不再更新,因为这个数是规定跳数的最大值,当到达该值时,便认为网络不可达。不过,即使不设置这个 metric 最大值,TTL 值也会不断的减 1,到最后还是会认为网络不可达。

正是因为上述 RTA 和 RTB 的你发过来,我又发回去这种没道理的事情存在,于是提出了个 “水平分割” 的解决办法。

水平分割的意思是,路由器从某个接口学到的路由,不会从该接口再发送回邻居路由器,如下图所示:


现在再回过头来看,在网络出现故障前,通往 10.0.0.0/8 网络的路由信息是由 RTB 发往 RTA 的。当网络出现故障后,RTB 中就会删掉 10.0.0.0/8 这个路由表,但有了“水平分割”后,就不会像上述那样 RTA 会把这路由再发往 RTB 了。

毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为 16,并从原接收接口发回给邻居路由,如下图所示:


假设只有水平分割,而没有毒性反转。当网络发生故障时,RTB 中的 10.0.0.0/8 这个路由表被删除,那么 RTA 在什么时候才能知道 RTB 中这个路由表已经不存在了呢? 首先,RIP 的更新周期是 30s 。当 10.0.0.0/8 这个网络断开后,该路由表不存在。在 RTB 发起下一次更新时,更新信息中并没有含有该条路由,但是 RTA 并不会马上就将该路由表删除,而是需要等到 180s 之后(5 个 RIP 更新周期),如果 RTB 还没有发来关于 10.0.0.0/8 的路由更新信息,那么 RTA 就会将该条路由标为不可达(metric = 16)。然后再过 120s 后,RTA 才把这条路由从自己的 RIP 数据库中删掉。也就是说,RTA 需要经过 5 分钟才能知道通往 10.0.0.0/8 的网络之路已经断掉,这个时间显然比较长。

那么如何才能缩短这个时间呢?

在 10.0.0.0/8 断开时,RTB 在发送路由更新时,RTB 仍然会发送这条路由信息,只不过将 metric 直接设置为 16 后再发送;其意是,RTB 要告诉 RTA 该网络已经断开。以这个方法来看,时间只要过去一个更新周期(30s),RTA 就能知道 10.0.0.0/8 这个网络不可达,这个做法就称之为 “路由毒化” 。

这么一来一回后,RTB 毒化了 RTA,而 RTA 反过来又毒化了 RTB (毒性反转,即 RTA 中毒后使用“以彼之道还施彼身”的武功将毒返回到 RTB 身上),最后的结果是,双方都知道了出了故障的网络不可达。
不过问题到这还不算完。因为有了水平分割的存在,RTA 并不会把网络不可达的信息发给 RTB 。但如果引入了 “毒性反转” 之后,它作为一个特例,破坏了水平分割的机制,最后 RTA 会把这条网络不可达(metric = 16)的路由信息发到 RTB 。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-5-5 06:06 , Processed in 0.078088 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表