当前位置: 首页 > news >正文

路由环路的产生及解决方案

STP用来解决交换机之间产生的环路,下面说的几种方法用来解决路由器之间产生的环路

路由环路的产生:
当A路由器一侧的X网络发生故障,则A路由器收到故障信息,并把X网络设置为不可达,等待更新周期来通知相邻的B路由器。但是,如果相邻的B路由器的更新周期先来了,则A路由器讲从B路由器那学习了到达X网络的路由,就是错误路由,因为此时的X网络已经损坏,而A路由器却在自己的路由表内增加了一条经过B路由器到达X网络的路由。然后A路由器还会继续把该错误路由通告给B路由器,B路由器更新路由表,认为到达X网络须经过A路由,然后继续通知相邻的路由器,至此路由环路形成,A路由器认为到达X网络经过B路由器,而B则认为到达X网络进过A路由器。

解决方法:
定义一个最大值(defining a maximum):

如上所述,路由环路形成时,A和B路由器相互不断更新到X网络的路由表时,跳数不断增加,网络一直无法收敛。所以给条数定义一个最大

值,当条数达到这个最大值时,则X网络被认为是不可达的。但是定义最大值不能避免环路产生,而且最大条数不能定义太大,不然耗费大量

时间进行收敛,也不能定义太小,如果太小则只局限与一个小型的网络中。
水平分割(split horizon):

看看路由环路产生得原因,A从B那收到到达X网络的路由信息,接着又把该信息发给B网络,从而引起相互不断的更新,而水平分割就是不

允许路由器将路由更新信息再次传回到接收传出该路由信息的端口,即A从B收到路由信息后,A不能把该信息再次回传给B,这就在一定程度

上避免了环路的产生。
路由中毒和抑制时间(route prisoning and holddown time)
这两者结合起来可以在一定程度上避免路由环路的产生,并且抑制复位接口引起的网络震荡。路由中毒即在网络故障或接口复位时,让

相应的路由项中毒,即将路由项的度量值(metric)设为无穷大,表示该路由项已经失效,一般在这个时候都会同时启动抑制时间。举个例

子,比如上面的X网络出现故障,则A路由器到X网络的路由表的度量值会被设置为最大,表示X网络已经不可达,并启动抑制时间。如果在

抑制时间结束前,在X网络侧接收到到达X网络的路由,则更新路由项,因为此时的X网络故障已经排除,并且删除抑制时间。如果从B路由

器或有其他的C路由器接收到到达X网络的路由,并且新的度量值比旧的好,则更新路由项,删除抑制时间,因为此时可能有另一条不经过A

但可以到达X网络侧的路由器的路径。但是如果度量值没有以前的好,则不进行更新。
触发更新(triggered update)
回顾下路由环路产生的原因,A路由器接收到X网络故障信息后,等待更新周期的到来后再通知B路由器,结果B的更新周期提早到来,结

果掩盖了X网络的故障信息,从而形成环路。触发更新的机制正是用来解决这个问题,在收到故障信息后,不等待更新周期的到来,立即发

送路由更新信息。但是还是有个问题,如果在触发更新刚要启动时却收到了来自B的更新信息,就会进行错误的更新。可以将抑制时间和触

发更新相结合,当收到故障信息后,立即启动抑制时间,在这段时间内,不会轻易接受路由更新信息,这个机制就可以确保触发信息有足够

的时间在网络中传播。

mtAsnow
发布了51 篇原创文章 · 获赞 5 · 访问量 4万+
私信 关注

相关文章:

  • 打家劫舍III
  • 获144.5亿投资,“与狼共舞”的奇瑞能否再成自主品牌标杆?
  • 1688API开发系列:item_search-按关键字搜索商品API 返回值说明
  • 架构学习笔记
  • 财经早报 | 美联储按下降息暂停键,中国央行明年会降准降息吗?
  • mySQL高级知识(八)——ORDER BY优化
  • 从零开发一个Java Web项目要点
  • 中诚信集团创始人毛振华:警惕经济下行压力下再度依托国企稳增长
  • xshell连接不上服务器
  • 商赢环球变更业绩承诺补偿遭质疑 投服中心呼吁中小投资者积极行权
  • CCCF优秀文章精选
  • 短融券成券商补充资本金“硬核” 年内发行规模已达去年3倍
  • docker-compose 基础
  • 程序员,Mybatis 你踩过坑吗?
  • 【弄nèng - SpringCloud】应用篇 —— 整合Zipkin【Finchley版】
  • python爬虫cookie模拟登陆(二)
  • 1234定位
  • NGAPI接口开放平台文档
  • hadoop的shell操作命令
  • server_name指令用法