RIP的路由环路

6 篇文章 0 订阅
1 篇文章 1 订阅

路由环路

  • 路由环路(Routing Loop)是一种在路由部署不恰当或网络规划不合理等情况发生后,很容易引发的一类问题。
  • 如果网络中的路由信息不正确,将导致去往某个目的地的数据包在设备之间不停地被来回转发,从而严重影响设备性能,并且大量消耗
    网络带宽,影响正常的业务流量,这种问题被称为路由环路问题。
  • 路由环路对于网络而言是具有严重危害的,几乎所有的动态路由协议在协议设计时便考虑了路由环路的规避机制,RIP也不例外。

RIP环路的产生

需要注意的是,距离矢量路由协议只是简单地将自己的路由表周期性地通告出去,同时也将收到的有效路由加载到路由表中,并通过累加的度量值来体现到达目标网络的距离,但是运行距离矢量路由协议的路由器其实并不了解整个网络的拓扑结构,这些特点使得网络中非常容易出现路由环路。

如下图所示的网络拓扑中:
在这里插入图片描述

  • R1及R2都运行了RIP,当网络完成收敛后,R2通过RIP学习到了1.0.0.0/8路由。

引入问题

  • 假设现在R1的GE0/0/1接口发生了故障,R1感知到这个拓扑变化并且立即在路由表中删除1.0.0.0/8路由。但是这个拓扑的变更对于R2来说此时并不知晓的。

  • R1准备在下一个更新周期到来时通告该条路由的不可达情况。

  • 但是此时完全有可能出现的一种情况是,在R1通告这个更新之前,R2的更新周期到了,它开始在自己的GE0/0/0接口上发送Response报文,该报文中包含R2路由表中的所有路由,其中就包括1.0.0.0/8路由,且该路由的跳数为2 (R2自己到达该网段需经过1个路由器,因此它将路由更新出去时将跳数加1) 。

  • R1收到这个Response报文后,发现1.0.0.0/8竟然通过R2可达且跳数为2,于是它将1.0.0.0/8路由加载到路由表,如下图所示:
    在这里插入图片描述

  • 很明显,此时出现了路由环路。如果R2收到一个发往1.0.0.0/8的数据包,经过路由表查询后,R2发现自己有一条路由可以匹配该目的地址,并且下一跳为R1,因此它将数据包转发给R1,但是R1经过路由表查询,发现到达1.0.0.0/8下一跳是R2,于是数据包又被转发给R2,如此反复,发往该网段的数据包就会在R1、R2之间不停地来回转发,直到报文的TTL值递减为0。

  • 如果业务流量特别大的话,这无疑将对路由器的性能造成极大损耗,也可能将链路的带宽耗尽。

引入问题2

  • 另一方面,由于RIP每隔30s泛洪一次路由表,因此1.0.0.0/8路由会在每个更新周期到来时随着Response报文在网络中不停地被泛洪。

  • 在R1的下一个更新周期到来时,它会把1.0.0.0/8路由通过Response报文再通告给R2 , R2收到该报文后,刷新自己的路由表,将该路由的跳数更新为3跳(最开始1.0.0.0/8的路由就是R1通过给R2的,属于同一个下一跳的通告路由发生变化时会触发更新),如下图所示:
    在这里插入图片描述

  • 而当R2的更新周期到来时,它将在通告给R1的Response报文中继续携带1.0.0.0/8路由,而且跳数设置为4。R1收到该Response报文后刷新自己的路由表,将该路由的度量值更新为4,如此反复。

设想一下,如果RIP没有任何机制解决该问题,那么1.0.0.0/8路由岂不是会在网络中被不断地泛洪且其度量值也会持续累加到无穷大?

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值