案例-路由环路浅谈、解决方案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

路由环路浅谈
在网络中,有时候会感觉网速突然变得很慢,通常都是由于网络中存在着一些异常流量所造成的。

何谓异常流量?
1、大量流量导致网络拥塞。

2、发送大量数据包导致网络设备处理性能下降。

3、异常报文导致网络拓扑或链接状态改变。

在其中包含了以下几个部分:
1、病毒:包含了蠕虫,木马,ARP攻击的病毒等会传播并导致网络瘫痪。

2、网络攻击:DOS攻击行为,ARP攻击行为等可能造成网络瘫痪的攻击。

3、错误的网络设置:路由环路可能造成设备处理性能的降低,严重时可能导致网络瘫痪。

4、不正当的应用:P2P下载,在线观看视频等可能造成设备处理性能降低,网络拥塞。

今天,主要给大家讲述一下路由环路的产生,如何用科来网络分析软件找到路由环路,以及一些解决的办法。

首先来讲一下路由环路的产生。

在网络配置中,最容易发生路由环路产生的原因就是静态路由,过多的静态路由的配置,导致网络在拓扑上产生混乱,在不经意间,就会产生路由环路。

其次,一些动态路由协议,例如距离向量型协议:RIP等也有可能产生路由环路。

1、静态路由产生环路。

在路由器的配置上,有时候静态路由确实是比较方便的配置方法,只需要一条命令,就可以实现路由器之间的通信。

而不想动态路由协议,需要对路由器配置多条命令来实现。

但是,在实现路由冗余的时候,很容易就产生路由环路。

比如在R1和R2之间连上两条网线做冗余,一条从R1指向R2,一条从R2指向R1,这时候数据就会不停在R1与R2之间传输,占用了设备的资源,导致设备性能变差。

2、链路状态型路由协议产生环路。

链路状态型路由协议通过向所有接口周期性的广播路由更新来跟踪整个网
络的变化,这些广播包括了完整的路由表,但却给处理器和带宽增加了负担。

若收敛过慢会产生路由环路。

如图所示:
路由器C到10.4.0.0是直连的,跳数为0。

路由器B到10.4.0.0经过路由器C,跳数为1。

路由器A到10.4.0.0经过路由器B和路由器C,跳数为2。

在这时候,10.4.0.0网络出现了问题,变成了不可达。

这时候,C更新路由表,显示到10.4.0.0的线路Down。

由于收敛慢,B的路由表尚未更新,到达10.4.0.0的跳数仍然为1。

这时候,C会认为到达10.4.0.0的最佳路径为经过B的路径,所以C的路由表错误地更新为达到10.4.0.0需要从S0口出去,到达B之后,再由B来转发。

此时,C的路由表中到10.4.0.0网段的跳数变成了1(C到B)+1(B到10.4.0.0)=2。

而B根据先前到达10.4.0.0需要从S1口出去到达C之后,由C转发的路由表来进行更新,由于C的路由表产生错误,到达10.4.0.0由S0出去,跳数为2,所以B的路由表中,到达10.4.0.0的路由也出现了错误的更新,跳数变成了2(C 到10.4.0.0)+1(B到C)=3。

A根据B中路由表的变化,也进行了更新,到达10.4.0.0的跳数变为了4。

如此循环之后,一条路由环路便在B与C之间产生,两者到10.4.0.0的跳数在不断升高。

那么,在产生了路由环路的时候,如何去检测在哪个网段上出了问题呢?
我们可以利用到科来网络分析软件来进行分析。

理论基础:TTL:(Time To Live ) 生存时间
TTL是IP协议包中的一个值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。

定义为:指定数据包被路由器丢弃之前允许通过的网段数量。

每经过一个网段,TTL的值都会-1,当TTL=0时,该包就会被丢弃。

在不同的操作系统中,TTL的值也不一样,举例来说:
UNIX 及类UNIX 操作系统ICMP 回显应答的TTL 字段值为255
微软Windows NT/2K/XP操作系统ICMP 回显应答的TTL 字段值为128
微软Windows 95 操作系统ICMP 回显应答的TTL 字段值为32
TTL值的注册表位置:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255
在了解了TTL之后,我们运用科来网络分析软件就可以对路由环路产生的地点进行定位。

在诊断中,我们可以看到有一种诊断信息即为TTL太小。

如图所示,172.16.208.33这台设备到10.0.0.0网段之间,就产生了路由环路,我们可以定位到相关设备上进行问题的排查。

在发现了路由环路并定位好之后,如何来解决呢?
1、对于静态路由来说,通常还是采用动态路由协议比较好,当网络拓扑有所改动的时候,也不用一条一条去修改命令,动态路由协议会根据拓扑的改变做出相应的调整。

2、对于距离向量型路由协议来说,通常解决的办法有以下几种。

(1)最大跳数
将最大跳数限制在一定的范围内,可以在一定程度上解决路由环路的问题,但是在环路出现的时候,依然没有办法有效的解除环路。

(2)水平分割
路由器从某个接口接收到的更新信息不允许再从这个接口发回去。

可以在一定的程度上避免路由环路的发生,但是在有些拓扑的配置上,却会产生一定的障碍。

(3)路由毒化与毒性反转
当C到10.4.0.0这条链路Down的时候,C就将该信息更新给邻居并将其跳数变成无穷大,当B收到该更新信息的时候,也将路由表中到大10.4.0.0的跳数更新为无穷大,并更新给A,将此条路由完全标记为不可达。

如此便称为路由毒化。

所谓毒性反转,就是在B从C这里收到到达10.4.0.0的跳数为无穷大的时候,也会将这条信息更新给C。

毒性反转的优先级在水平分割之上。

路由毒化与毒性反转可以很好的防止解决路由环路。

(4)抑制计时器
当B从C接收到10.4.0.0不能访问的更新后,就将该路由标记为不可访问,并启动一个抑制计时器,如果再次收到从C发送来的更新信息,包含一个比原来路径具有更低跳数的路由,就标记为可以访问,并取消抑制计时器。

如果在抑制计时器超时之前从A或者C收到的更新信息包含的跳数比原来更高,更新将被忽略,这样可以有更多的时间让更新信息传遍整个网络。

(5)触发更新
当拓扑发生变化的时候,立刻对路由表进行更新并告诉给邻居。

但是若在某些网段中,更新信息丢失损坏等,会导致一些路由器没办法及时收到更新信息。

所以将抑制计时器和触发更新组合起来使用,可以达到更好的效果。

、在抑制时间内,触发更新有足够的时间传遍整个网络,并且在这段时间内,即使有路由器进行错误的更新,也会被忽略。

总结,在当今的网络环境中,使用RIP协议的路由器少之又少,几乎见不到由RIP协议产生的路由环路,通常来说,都是在使用静态路由之后产生的环路。

现在,OSPF,BGP协议等,都能有效防止环路,所以希望广大的网管同志们还是尽量在初期配置的时候多花一些力气来配置动态路由协议,不要偷懒只打几条静态路由,这样可以在后期避免很多不必要的麻烦。

如果出现了环路的问题,可以利用科来网络分析软件来进行分析,查找诊断中TTL值过小的设备,然后对该设备的配置进行更新。

相关文档
最新文档