1、静态路由导致环路的问题案例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
2、都无法上网。经过现场排查发现是部门A所连的二层交换机的上行链路网线损坏,部门A所连的二层交换机与分部路由器的链路物理损坏。具体故障如下图:部门A不能上网之后,部门B的员工反映上网开始变慢,平时的应用现在操作起来非常慢,有时候得等很长时间才有反应,在部门B使用PC来ping总部的业务网段地址时延比以前要大。1.3 问题分析在整个拓扑图中,按道理说原来4M的专线由部门A和部门B共同使用,现在部门A的业务中断了,4M的专线由部门B独享,从这个角度来分析,部门B访问总部应该比原来快才对,但是现在情况更好相反。这是为什么呢?具体分析如下图:部门业务中断前网络流量模型:部门A业务中断之后网络流量模型:1.
3、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接口)的包统计信息进行查看,查看之前先使用reset counters interface g0/0/0的命令分部路由器的上行接口g0/0/0统计信息清空。测试过程:1)为了定位部门B与总部业务通信变慢的原因,使用接口查看命令查看分部路由器上行接口的端口统计信息。
4、看为什么部门B访问总部的业务会变慢。首先使用部门B地址为192.168.1.1的PC来对总部测试PC 172.16.0.254的PC进行ping测试,模拟部门B访问总部业务网段。首先ping 10个包,然后看分部路由器上行口g0/0/0的接口统计信息,部门B的PC信息如下:在分部路由器的上行口g0/0/0信息统计如下:测试结果:从上诉测试过程和结果来看,在部门A业务中断的时候,部门B访问总部业务的时候,流量是正常的。那么究竟是什么原因会导致部门B访问总部业务变慢呢,我们接着继续进行定位测试。2)使用总部地址为172.16.0.254的测试PC ping部门B的测试PC 192.168.1.25
5、4,模拟总部访问部门B的流量。也是ping 10个包,然后看分部路由器上行口g0/0/0的接口统计信息,总部测试的PC信息如下:在分部路由器的上行口g0/0/0信息统计如下:测试结果:从上诉测试过程和结果来看,在部门A业务中断的时候,总部业务部门B的时候,流量也是正常的。我们接着继续进行定位测试。3)使用总部地址为172.16.0.254的测试PC ping部门A的测试PC 192.168.0.254,用来模拟总部业务访问部门A的业务流量。因为即使部门A业务中断了,但是总部的业务还是会像平时部门A业务没有中断的时候发起很多业务请求。因为总部的很多应用并不知道业务A已经中断,所以仍然会向目的网段
6、为部门A业务的IP地址段发起业务请求。总部测试的PC信息如下:在分部路由器的上行口g0/0/0信息统计如下:测试结果:从上诉测试过程和结果来看,在部门A业务中断的时候,总部业务访问部门A的时候,虽然总部只是ping了10个包,但是我们在路由器上看到统计的包个数竟然达到了640个。接口的报文的统计数量是实际ping包数量的64倍。这明显是有问题的,这就是导致部门B访问总部业务变慢的原因。那么我们来分析一下为什么会产生这种现象。1.5 原因分析由于在路由器上看到接口统计的报文数量要远大于实际发出的ping报文的数量,所以很容易让人怀疑到网络中存在环路,为了进一步验证这个可能性,使用总部地址为172
7、.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
8、的报文匹配到红圈标注的默认路由,下一跳地址为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的报文找不到具体路由,所
9、以就会匹配默认路由,下一跳指向10.0.0.1,这样就会和总部路由器形成路由环路。具体流量信息如下图:1.6 解决办法为了避免再次出现类似的问题,需要在分部路由器上配置黑洞路由来解决,目的就是当业务A网段的直连路由消失的时候,目的网段是A的报文不要匹配默认路由,而是匹配黑洞路由,报文丢弃。这样网络中就不会有路由环路,问题解决。具体命令如下:ip route-static 192.168.0.0 24 NULL 0ip route-static 192.168.1.0 24 NULL 0为了避免当业务B网段直连路由消失的时候,A部门也出现访问总部变慢的现象,所以也添加了一条对B网段的黑洞路由。由于静态路由的管理距离(华为设备为Preference 60)小于直连路由的管理距离(华为设备为Preference 0)。所以当业务A和B直连路由正常的时候,不会影响整个网络流量的正常转发。只有当某个直连路由消失的时候,黑洞路由才回生效。至此,该问题解决。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1