今天给大家介绍一下各种路由协议的防环机制,本文主要讲解了RIP协议、OSPF协议和PIM协议的防环机制。对于三层路由协议来说,防止环路是其设计时要考虑的重要问题,通过对本部分的学习,一方面可以加深对各协议细节的理解,另一方面也希望同学们可以理解到各协议在设计时的考量。
一、RIP协议
由于RIP协议是属于距离矢量协议,其路由的计算方式就是根据跳数的大小。当运行RIP的路由器收到邻居通告的一条路由信息时,该路由器会将该路由信息中的跳数加1,下一条改为RIP邻居的IP地址,然后放入自己的路由表中。也正是因为如此,运行RIP的路由器没有对整个网络拓扑的理解,因此也就极易出现环路。 RIP协议防止环路主要有以下四种方式:①设置最大跳数②水平分割③毒性逆转④触发更新。 其中,设置最大跳数是指RIP为了防止路由循环,将16设置为不可达,这样当有路由形成环路后,只要超过16,就会将环路断开。应该说,虽然最大跳数对于路由环路的避免是非常粗糙和简单的,但是确实一种保底手段。 水平分割是指从一个路由器学到的路由不会通告给另一个路由器,这种做法可以避免当一个路由器相邻网段失效后,从邻居那里学到自己通告给它的该网段路由。 毒性逆转可以起到和水平分割同样的效果,只不过相对于水平分割更加的激进,毒性逆转指的是从一个邻居路由器学到的路由会向该邻居路由器发送一个跳数为16的路由,表示“该网段路由是我从你这里收到的,你发往该网段的数据包不应该通过我这里” 触发更新是指当自己的路由表发生变化时,无需等待,直接向邻居路由器发送更新后的路由表,该方式是从另一个角度防止路由环路的形成,应该说,水平分割和毒性逆转只能防止在两个路由器之间形成的环路,而触发更新可以在某种程度上防止在三个路由器之间形成的环路问题。 关于RIP路由防环的细节,如果您还是不明白,可以查阅这篇文章:RIP防环机制简介
二、OSPF协议
与RIP协议不同,OSPF协议是链路状态协议,运行OSPF的路由器,会对本区域的网络拓扑结构有很深的理解,因此不容易出现环路。OSPF环路主要出现在area与area之间。 为了避免area与area之间出现环路,ospf规定:一个非骨干区域不向另一个非骨干区域传递路由,这样一来,从宏观角度看,OSPF的骨干与骨干之间在逻辑上就形成了星形的结构,在这样的结构里,自然可以避免环路的产生。
三、PIM协议
PIM协议是组播中经常用到的协议,PIM协议的防环机制同样也是避免组播流量洪范的机制。PIM协议的防环主要是RPF检测机制和Join/Prune机制。 对于一个组播路由器来说,其组播运行的关键是具有到组播源(DM模式)或者是RP(SM模式)的单播路由。既然有了路由,对于路由器而言自然就知道该组播流量应该从哪个接口进入,对于从其他接口发送的组播流量,该路由器不会接收。同时,会从该接口上发送一个Prune报文,告诉其上游路由器停止组播报文的发放,这样,就避免了组播路由环路的产生了。 原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118582755
|