RIP汇总路由产生的环路问题以及何如解决

时间:2024-04-05 16:44:37
1.汇总路由产生环路的根因:

就是RIP协议在进行手工汇总或自动汇总时,不会本地形成一条防环指向Null 0 的汇总路由。

2.如何产生环路:

RIP汇总路由产生的环路问题以及何如解决
(环境的前提:假设自己不小心做了一些路由限制或路由操控导致了路由在传递时是以环路的形式传递的)

假设R1身后有4条其他网络,现在R1在自己e0/0接口汇总了这4条网络,并将汇总路由通告给了R2,然后R2传给R3,R3传给R4,R4又传给了R1,此时R1会接收,因为它本地没有这条汇总路由,根据路由加表原则,R1会以为这是条新路由就加表了,此时路由环路的环境已经产生。

但现在路由还是不会出现环路,因为假设现在R1收到去往它身后某个网络的包后,它会根据路由的最长匹配原则,会去匹配那条明细路由,而不会去匹配那条汇总路由,如果这时身后有一条网络down了,而且R1收到了去往那个down网络的包,这时环路就产生了,因为R1没有了明细路由,它就会匹配汇总路由,而它的汇总路由告诉它如果你想访问这个网络你就得把包发给R4,而R4会发给R3,R3发给R2,R2发给R1,这是因为他们关于这些汇总路由是根据R1学到的,而R1又会发给R4因为它是通过R4学到的,然后又开始了新一轮的环路传递。

这时R1就懵逼了,说好做彼此的天使呢,说好一生一起走的呢,怎么现在发个数据都互相甩锅了呢,我发给你们,你们又发给我,这就是环路产生的过程。

3.解决环路的方法:

就是直接在R1上写一条静态汇总路由指向Null 0 接口,当你写了这个路由时,由于静态的管理距离为1,所以R1是不会接收R4通告的汇总路由的,并且如果R1收到一个去往身后down网络的包时,它会直接匹配这个静态汇总,把包发给Null 0 接口,Null 0 接口就是表示把这个包丢弃。

但在某些IOS系统中会有些BUG,就是在一般情况下你写静态只写一个出接口,R会认为你写的静态路由是直连路由,此时,如果你写了这条静态路由并且宣告进了RIP,RIP会把它当做一条直连路由重分发进RIP中,并通告给其他邻居