静态路由导致环路的问题案例Public详解.docx
《静态路由导致环路的问题案例Public详解.docx》由会员分享,可在线阅读,更多相关《静态路由导致环路的问题案例Public详解.docx(14页珍藏版)》请在冰豆网上搜索。
静态路由导致环路的问题案例Public详解
静态路由导致环路的问题
1组网介绍
1.1网络拓扑图
某公司总部与多个分部使用专线进行连接,具体组网拓扑及路由如上图所示,总部和分部之间每天都用大量的业务进行互访,4M专线线路带宽接近饱和。
总部和分部路由器互连地址为10.0.0.1和10.0.0.2。
总部网络的业务网段地址为172.16.0.0/24,网关是172.16.0.1,某个分部路由器下挂了两个部门,部门A的业务网关是192.168.0.1,部门B的业务网关为192.16.1.1。
全网配置静态路由使总部业务网段和分部业务网段互通,具体路由设置如上图所示。
1.2问题描述
某一天,部门A的所有PC都无法上网。
经过现场排查发现是部门A所连的二层交换机的上行链路网线损坏,部门A所连的二层交换机与分部路由器的链路物理损坏。
具体故障如下图:
部门A不能上网之后,部门B的员工反映上网开始变慢,平时的应用现在操作起来非常慢,有时候得等很长时间才有反应,在部门B使用PC来ping总部的业务网段地址时延比以前要大。
1.3问题分析
在整个拓扑图中,按道理说原来4M的专线由部门A和部门B共同使用,现在部门A的业务中断了,4M的专线由部门B独享,从这个角度来分析,部门B访问总部应该比原来快才对,但是现在情况更好相反。
这是为什么呢?
具体分析如下图:
部门A业务中断前网络流量模型:
部门A业务中断之后网络流量模型:
1.4定位过程
基于以上疑问,使用模拟器对客户现网进行模拟并分析定位。
组网图如下:
总部业务的测试PC地址设定为172.16.0.254,部门A业务测试PC地址设定为192.168.0.254,部门B业务测试PC的地址设定为192.168.1.254。
在部门A业务中断的情况下,对分部路由器上行的接口(ip地址为10.0.0.2的g0/0/0接口)的包统计信息进行查看,查看之前先使用resetcountersinterfaceg0/0/0的命令分部路由器的上行接口g0/0/0统计信息清空。
测试过程:
1)为了定位部门B与总部业务通信变慢的原因,使用接口查看命令查看分部路由器上行接口的端口统计信息。
看为什么部门B访问总部的业务会变慢。
首先使用部门B地址为192.168.1.1的PC来对总部测试PC172.16.0.254的PC进行ping测试,模拟部门B访问总部业务网段。
首先ping10个包,然后看分部路由器上行口g0/0/0的接口统计信息,部门B的PC信息如下:
在分部路由器的上行口g0/0/0信息统计如下:
测试结果:
从上诉测试过程和结果来看,在部门A业务中断的时候,部门B访问总部业务的时候,流量是正常的。
那么究竟是什么原因会导致部门B访问总部业务变慢呢,我们接着继续进行定位测试。
2)使用总部地址为172.16.0.254的测试PCping部门B的测试PC192.168.1.254,模拟总部访问部门B的流量。
也是ping10个包,然后看分部路由器上行口g0/0/0的接口统计信息,总部测试的PC信息如下:
在分部路由器的上行口g0/0/0信息统计如下:
测试结果:
从上诉测试过程和结果来看,在部门A业务中断的时候,总部业务部门B的时候,流量也是正常的。
我们接着继续进行定位测试。
3)使用总部地址为172.16.0.254的测试PCping部门A的测试PC192.168.0.254,用来模拟总部业务访问部门A的业务流量。
因为即使部门A业务中断了,但是总部的业务还是会像平时部门A业务没有中断的时候发起很多业务请求。
因为总部的很多应用并不知道业务A已经中断,所以仍然会向目的网段为部门A业务的IP地址段发起业务请求。
总部测试的PC信息如下:
在分部路由器的上行口g0/0/0信息统计如下:
测试结果:
从上诉测试过程和结果来看,在部门A业务中断的时候,总部业务访问部门A的时候,虽然总部只是ping了10个包,但是我们在路由器上看到统计的包个数竟然达到了640个。
接口的报文的统计数量是实际ping包数量的64倍。
这明显是有问题的,这就是导致部门B访问总部业务变慢的原因。
那么我们来分析一下为什么会产生这种现象。
1.5原因分析
由于在路由器上看到接口统计的报文数量要远大于实际发出的ping报文的数量,所以很容易让人怀疑到网络中存在环路,为了进一步验证这个可能性,使用总部地址为172.16.0.254的测试PC对部门A的192.168.0.254地址进行tracert操作。
结果如下图:
从上图的信息显示来看,目的地址为192.168.0.254的报文在总部路由器和分部路由器之间存在环路,环路形成的转发地址分别是10.0.0.2和10.0.0.1。
那我们来看一下路由器上的路由表,总部路由器路由表如下:
从上边的总部路由表信息我们可以看到,目标地址为192.168.0.254的报文匹配到红圈标注的路由,下一跳地址为10.0.0.2 。
下一跳地址是符合预期的。
那我们来看一下路由器上的路由表,分部路由器路由表如下:
从上边的分部路由表信息我们可以看到,目标地址为192.168.0.254的报文匹配到红圈标注的默认路由,下一跳地址为10.0.0.1。
这一点就是产生路由环路的原因。
结论:
由于原来部门A业务正常的时候,分部路由器上会产生到192.168.0.0/24网段的直连路由,具体信息如下图:
这样目的地址为192.168.0.254的报文到达分部路由器上的时候,直接会走直连路由找到目的PC,完成正常转发。
但是当部门A业务中断的时候,部门A所连的二层交换机与分部路由器相连的线路物理损坏,所以连接到部门A的分部路由器接口就处于物理和协议都是down的状态,这样,关于192.168.0.0/24的直连路由也就会消失。
这样,目的地址为192.168.0.254的报文找不到具体路由,所以就会匹配默认路由,下一跳指向10.0.0.1,这样就会和总部路由器形成路由环路。
具体流量信息如下图:
1.6解决办法
为了避免再次出现类似的问题,需要在分部路由器上配置黑洞路由来解决,目的就是当业务A网段的直连路由消失的时候,目的网段是A的报文不要匹配默认路由,而是匹配黑洞路由,报文丢弃。
这样网络中就不会有路由环路,问题解决。
具体命令如下:
iproute-static192.168.0.024NULL0
iproute-static192.168.1.024NULL0
为了避免当业务B网段直连路由消失的时候,A部门也出现访问总部变慢的现象,所以也添加了一条对B网段的黑洞路由。
由于静态路由的管理距离(华为设备为Preference60)小于直连路由的管理距离(华为设备为Preference0)。
所以当业务A和B直连路由正常的时候,不会影响整个网络流量的正常转发。
只有当某个直连路由消失的时候,黑洞路由才回生效。
至此,该问题解决。