
路由环路(水平分割、毒性路由等).doc
5页路由环路什么是路由环路?路由环路是指数据包在一系列路由器之间不断传输却始终无法到达其预期目的网络的一种现象当两台或多台路由器的路由信息中存在错误地指向不可达目的网络的有效路径时,就可能发生路由环路造成环路的可能原因有:•静态路由配置错误•路由重分布配置错误•发生了改变的网络中收敛速度缓慢,不一致的路由表未能得到更新•错误配置或添加了丢弃的路由距离矢量路由协议的工作方式比较简单其简单性导致它容易存在诸如路由环路之类的缺陷在链路状态路由协议中,路由环路较为少见,但在某些情况下也会发生注:IP协议自身包含防止数据包在网络中无休止传输的机制oIP设置了生存时间(TTL)字段,每经过一台路由器,该值都会减1如果TTL变为零,则路由器将丢弃该数据包路由环路会造成什么影响?路由环路会对网络造成严重影响,导致网络性能降低,甚至使网络瘫痪路由环路可能造成以下后果:•环路内的路由器占用链路带宽来反复收发流量•路由器的CPU因不断循环数据包而不堪重负•路由器的CPU承担了无用的数据包转发工作,从而影响到网络收敛•路由更新可能会丢失或无法得到及时处理这些状况可能会导致更多的路由环路,使情况进一步恶化•数据包可能丢失在''黑洞〃中。
路由环路一般是由距离矢量路由协议引发的,目前有多种机制可以消除路由环路这些机制包括:•定义最大度量以防止计数至无穷大•抑制计时器•水平分割•路由毒化或毒性反转•触发更新问题:计数值无穷大当不正确的路由更新无休止地增加不再可达的网络的度量值时,就会出现"计数至无穷大"下面我们来分析下三台路由器不定时地发送更新时,路由表会出现的情况:10.1.0.010.SD/O/O2.0.010.3.0.0SO/0/11•当10.4.0.0断开的时候,r3中的有关于10.0.0.0的网络是不可达的在r3未发送更新之前,r2向r3发送更新,此时r3中有关于10.4网络的跳数变为了2,随后,r3向r2发送更新路由表中10.4网络的跳数为3,接着r2会向r1发送更新,r1中有关于10.4.0.0的条目的跳数为4第二轮更新为:r2向r3发送更新,此时r3中有关于10.4网络的跳数变为了4,随后,r3向r2发送更新路由表中10.4网络的跳数为5,接着r2会向r1发送更新,r1中有关于10.4.0.0的条目的跳数为6就这样不停地更新下去,从而无休止的更新这个不可达目的地的网络路由防止计数值无穷大的解决方法:为了防止度量无限增大,可以通过设置最大度量值来界定''无穷大”。
例如,RIP将无穷大定义为16跳,大于等于此值的路由即为“不可达”一旦路由器计数达到该“无穷大”值,该路由就会被标记为不可达使用抑制计时器防止路由环路:抑制计时器可用来防止定期更新消息错误地恢复某条可能已经发生故障的路由抑制计时器指示路由器将那些可能会影响路由的更改保持一段特定的时间如果确定某条路由为down(不可用)或possiblydown(可能不可用),则在规定的时间段内,任何包含相同状态或更差状态的有关该路由的信息都将被忽略这表示路由器将在一段足够长的时间内将路由标记为unreachable(不可达),以便路由更新能够传递带有最新信息的路由表抑制计时器通过以下方式工作:1. 路由器从邻居处接收到更新,该更新表明以前可以访问的网络现在已不可访问2. 路由器将该网络标记为possiblydown并启动抑制计时器3. 如果在抑制期间从任何相邻路由器接收到含有更小度量的有关该网络的更新,则恢复该网络并删除抑制计时器4. 如果在抑制期间从相邻路由器收到的更新包含的度量与之前相同或更大,则该更新将被忽略如此一来,更改信息便可以继续在网络中传播一段时间5. 路由器仍然会转发目的网络被标记为possiblydown的数据包。
通过这种方式,路由器便能克服连接断续所带来的问题如果目的网络确实不可达,但路由器又转发了数据包,黑洞路由就会建立起来并持续到抑制计时器超时水平分割:防止由于距离矢量路由协议收敛缓慢而导致路由环路的另一种方法是水平分割水平分割规则规定,路由器不能使用接收更新的同一接口来通告同一网络对前面的示例路由10.4.0.0应用水平分割后,将引发下面的一系列活动:.R3将10.4.0.0网络通告给R2R2接收该信息并更新其路由表R2随后通过S0/0/0将10.4.0.0网络通告给R1R2不会通过S0/0/1将10.4.0.0通告给R3,因为该路由正是从该接口获得.R1接收该信息并更新其路由表因为使用了水平分割,所以R1也不会将关于网络10.4.0.0的信息通告给R2通过上述活动,路由器相互交换了完整的路由更新(违反水平分割规则的路由除外)结果如下.R2将网络10.3.0.0和10.4.0.0通告给R1.R2将网络10.1.0.0和10.2.0.0通告给R3.R1将网络10.1.0.0通告给R2.R3将网络10.4.0.0通告给R2请注意,R2发送到R1和R3的路由更新是不同的注:管理员可以禁用水平分割。
在特定情况下,为获得正确的路由必须禁用水平分割路由毒化路由毒化是距离矢量路由协议用来防止路由环路的一种方法路由毒化用于在发往其它路由器的路由更新中将路由标记为不可达标记''不可达”的方法是将度量设置为最大值对于RIP,毒化路由的度量为16拓扑依然是上面的,让我们看看路由毒化如何发挥作用网络10.4.0.0由于链路故障而变得不可用R3通过将度量值设置为16使该路由毒化,然后发送触发更新指明10.4.0.0不可达R2处理该更新由于度量为16,所以R2在其路由表中将该路由条目标记为无效R2随后将毒性更新发送给R1,更新中的度量值被再次设置为16,以此表明该路由不可用R1处理该更新并将其路由表中的10.4.0.0条目标记为无效通过这种方法,在网络上传播有关10.4.0.0的信息比等待跳数达到'无穷大”更加迅速,因此路由毒化可加速收敛过程带毒性反转的水平分割毒性反转可以与水平分割技术结合使用这种方法称为带毒性反转的水平分割'带毒性反转的水平分割”规则规定,从特定接口向外发送更新时,将通过该接口获知的所有网络标示为不可达带毒性反转的水平分割技术基于以下理念:相比将路由器蒙在鼓里而言,在第一时间明确告诉该路由器需要忽略的路由效果更佳。
我们来看下带毒性反转的水平分割是如何发挥作用的网络10.4.0.0由于链路故障而变得不可用R3通过将度量值设置为16使该路由毒化,然后发送触发更新指明10.4.0.0不可达R2处理该更新,在其路由表中将该路由条目标记为无效,然后立即向R3发送毒性反转毒性反转非常特殊,它会使路由器忽略水平分割规则的要求它的作用在于确保R3不会轻易受到有关网络10.4.0.0的错误更新的影响注:水平分割功能是默认启用的功能然而,并非所有IOS实现都默认启用了带毒性反转的水平分割IP和TTLTTL(生存时间)是IP报头中的8位字段,它限制了数据包在被丢弃之前能够在网络中传输的跳数设置TTL字段的目的是防止无法投递的数据包无休止地在网络中来回传输数据包的源设备会对8位的TTL字段设置一个值在到达目的地的过程中,每经过一台路由器,TTL的值就会减1如果在到达目的地之前TTL字段的值减为零,则路由器将丢弃该数据包并向该IP数据包的源地址发送Internet控制消息协议(ICMP)错误消息从右侧的动画可以看出,即使在发生路由环路的情况下,数据包也不会在网络中无休止地传输TTL的值最终会减为0,然后被路由器丢弃对于距离矢量路由协议,人们实际上只有两个选择:要么使用RIP,要么使用EIGRP。
在实际环境中到底使用哪一种协议取决于多种因素,包括:网络规模路由器型号之间的兼容性所需的管理知识RIP经过多年的发展,RIP已经从有类路由协议(RIPv1)发展到无类路由协议(RIPv2)RIPv2是一种标准化的路由协议,能够工作在多种路由器品牌共存的复杂环境中不同公司生产的路由器可以通过RIP进行通信它是可用于配置的最早期路由协议之一,非常适合小型网络但是,RIPv2仍有自身的局限性RIPv1和RIPv2在计算路由度量时都只考虑跳数,有效路由的跳数不能超过15跳RIP的功能:.支持用于防止路由环路的水平分割和带毒性反转的水平分割.能够在多达六条的等价路径上进行负载均衡默认为四条等价路径RIPv2对RIPv1进行了如下改进:.在路由更新中包含子网掩码,从而使协议变为无类路由协议.增加验证机制以确保路由表更新的安全性.支持可变长子网掩码(VLSM).使用组播地址代替广播地址.支持手动总结路由EIGRPEIGRP(增强型IGRP)是在IGRP的基础上开发而来,是另一种距离矢量协议EIGRP具备某些链路状态路由协议功能,是一种无类距离矢量路由协议与RIP或OSPF不同的是,EIGRP是由Cisco开发的专有协议,仅在Cisco路由器上运行。
EIGRP的功能包括:.触发更新(EIGRP没有定期更新).使用拓扑表维护从邻居处收到的所有路由(不仅是最佳路径).使用EIGRPhello协议与相邻路由器建立邻接关系.支持VLSM和手动路由总结这些功能使得EIGRP有能力创建具有层次结构的大型网络EIGRP的优点:.尽管路由以距离矢量方式传播,但度量是根据最小带宽和路径的累积延迟进行计算,而不是根据跳数得出•采用扩散更新算法(DUAL)进行路由计算,收敛速度更快DUAL允许向EIGRP拓扑表插入备用路由,当主路由失败时备用路由便可派上用场由于这一过程在本地实现,所以可以立即切换到备用路由,不需要其它路由器进行任何操作.使用限定更新,因此EIGRP使用的带宽更少,特别是在包含许多路由的大型网络中这一点更为明显.EIGRP具有协议相关模块,可支持多种网络层协议,包括IP、IPX和AppleTalk由于EIGRP和OSPF在CCNA中涉及比较浅,在后续的BSCI科目中介绍。












