路由环路&路由中毒&路由黑洞简析

今天学习到RIP路由协议了,在讲RIP里面会涉及一个概念就是路由环路。那么,上午对路由环路相关知识做了一个小结如下:

********路由环路:
在 维护路由表信息的时候,如果在拓扑发生改变后,网络收敛缓慢产生了不协调或者矛盾的路由选择条目,就会发生路由环路的问题,这种条件下,路由器对无法到达 的网络路由不予理睬,导致用户的数据包不停在网络上循环发送,最终造成网络资源的严重浪费。链路状态算法(OSPF)不会产生路由环路,因此,消除路由环 路的技术,都是针对距离向量协议进行的。
路由环路的形成大致如下述:

 

上 图路由环路形成大致是这样的:当R3上面的40网段挂了以后,R3里面的路由表有关40网段的将标记为16跳,不可达。但是B的路由更新时间已到,B会告 诉C它到达C要经过1跳,那么C接到了一条更优路由会更新路由表,(但是C并不知道这个条目是不合理的,看来路由器跟有些人一样有些愚笨的。嘿~)认为它 自己到40网段是2跳,然后,C更新周期到了又会把它的路由信息告诉B,B会认为它到C是3跳。然后依次类推,不断的循环,循环,造成路由环路,这样也会 占用网络带宽,消耗路由器资源。

*********解决办法:
法1.水平分割
其规则就是不向原始路由更新的方向再次发送路由更新信息(个人理解为单向更新,单向反馈)。
比 如有三台路由器ABC,B向C学习到访问网络40网段的路径以后,不再向C声明自己可以通过C访问40.0.0.0网络的路径信息,A向B学习到访问40 网络路径信息后,也不再向B声明,而一旦网络40发生故障无法访问,C会向A和B发送该网络不可达到的路由更新信息,但不会再学习A和B发送的能够到达 192.168.4.0的错误信息。

法2.路由中毒
其原理是这样的:假设有三台路由器ABC,当网络40出现故障无法访问时,路由 器C立即向邻居路由发送相关路由更新信息,并将其度量值标为无穷大,告诉它们网络40.0.0.0不可到达,路由器B收到毒化消息后将该链路路由表项标记 为无穷大,表示该路径已经失效,并向邻居A路由器通告,依次毒化各个路由器,告诉邻居40.0.0.0这个网络已经失效,不再接收更新信息,从而避免了路 由环路。


法3毒化逆转
当路由器B看到到达网络40.0.0.0的度量值为无穷大的时候,就发送一个叫做毒化逆转的更新信息给C路由器,说明40.0.0。0这个网络不可达到,这是超越水平分割的一个特列,这样保证所有的路由器都接受到了毒化的路由信息。

*******黑洞路由:
黑 洞路由,是将所有无关路由吸入其中,使它们有来无回的路由。黑洞路由最大的好处是充分利用了路由器的包转发能力,对系统负载影响非常小。如果同样的功能用 ACL(地址访问控制列表)实现,则流量增大时CPU利用率会明显增加。所以,一直是解决固定DOS攻击的最好办法。相当于洪水来临时,在洪水途经的路上 附近挖一个不见底的巨大深坑,然后将洪水引入其中。
 

后记------路由技术,博大深奥,需要慢慢去领悟~希望我们像路由器一样,不断路由路由,寻找到下一跳出口........

转自:http://www.shankesky.com/post/23.html

原文地址:https://www.cnblogs.com/hnrainll/p/2263450.html