网络设备排障怎么破?这五个命令申请出战!( 三 )


在PC机上或Windwos为平台的服务器上,Tracert命令的格式如下:
tracert [ -d ] [ -h maximum_hops ] [ -j host-list ] [ -w timeout ] host

  • -d 不解析主机名;
  • -h 指定最大TTL大小;
  • -j 设定松散源地址路由列表;
  • -w 用于设置UDP报文的超时时间,单位毫秒; 例如: 查看到目的主机10.15.50.1 中间所经过的前两个网关 。
C:>tracert -h 2 10.15.50.1
Tracing route to 10.15.50.1 over a maximum of 2 hops:
1 3 ms 2 ms 2 ms 10.110.40.1
2 5 ms 3 ms 2 ms 10.110.0.64
Trace complete.
5.使用Traceroute命令进行故障排除
案例一:使用Traceroute命令定位不当的网络配置点
(1) 现象描述
组网情况如下图所示:
图1-2 案例:使用Traceroute命令定位不当的网络配置点
网络设备排障怎么破?这五个命令申请出战!

文章插图
某校园网中,RouterB和RouterC同属于一个运行RIPv2路由协议的网络,主机4.0.0.2访问数据库服务器5.0.0.2,用户抱怨访问性能差 。
(2) 相关信息显示
在主机上ping 5.0.0.2显示如下:
C:Documents and Settingsc>ping -n 10 -l 1000 5.0.0.2
Pinging 5.0.0.2 with 1000 bytes of data:
Reply from 5.0.0.2: bytes=1000 time=552ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5735ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=551ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5734ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=549ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5634ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=555ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5738ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=455ms TTL=250
Reply from 5.0.0.2: bytes=1000 time=5811ms TTL=250
原因分析
上面的Ping显示出一个规律:奇数报文的返回时长短,而偶数报文返回时长很长(是奇数报文的10倍多) 。可以初步判断奇数报文和偶数报文是通过不同的路径传输的 。现在我们需要使用Traceroute命令来追踪这不同的路径 。在RouterC上,Traceroute远端RouterA的以太网接口5.0.0.1 。
RouterC(config)#traceroute
Target IP address or host: 5.0.0.1
Maximum number of hops to search for target [30]:10
Repeat count for each echo[3]:8
Wait timeout milliseconds for each reply [2000]:
Type esc/CTRL^c/CTRL^z/q to abort.
traceroute 5.0.0.1 ......
1 6 ms 4 ms 4 ms 4 ms 4 ms 4 ms 4 ms 4 ms 4.0.0.1
。。。。。。(中间省略)
5 20 ms 16 ms 15 ms 16 ms 16 ms 16 ms 16 ms 16 ms 3.0.0.2
6 30 ms 278 ms 25 ms 279 ms 25 ms 278 ms 25 ms 277 ms 5.0.0.1
RouterC(config)#
从上面的显示可看到,直至3.0.0.2,UDP探测报文的返回时长都基本一致,而到5.0.0.1时,则发生明显变化,呈现奇数报文时长短,偶数报文时长长的现象 。于是判断,问题发生在RouterB和RouterA之间 。
通过询问该段网络的管理员,得知这两路由器间有一主一备两串行链路,主链路为2.048Mbps(s0口之间),备份链路为128Kbps(s1口之间) 。网络管理员在此两路由器间配置了静态路由 。
RouterB上如下配置:
RouterB(config)# ip route 5.0.0.0 255.0.0.0 1.0.0.2
RouterB(config)# ip route 5.0.0.0 255.0.0.0 2.0.0.2
RouterA上如下配置:
RouterA(config)# ip route 0.0.0.0 0.0.0.0 1.0.0.1
RouterA(config)# ip route 0.0.0.0 0.0.0.0 2.0.0.1
于是问题就清楚了 。例如RouterB,由于管理员配置时没有给出静态路由的优先级,这两条路由项的管理距离就同为缺省值1,于是就同时出现在路由表中,实现的是负载分担,而不能达到主备的目的 。
(3) 处理过程
可以有两种处理方法:
  • 继续使用静态路由,进行配置更改 RouterB上进行如下更改:
RouterB(config)# ip route 5.0.0.0 255.0.0.0 1.0.0.2 (主链路仍使用缺省1)
RouterB(config)# ip route 5.0.0.0 255.0.0.0 2.0.0.2 100(备份链路的降低至100)
RouterA上进行如下更改:
RouterA(config)# ip route 0.0.0.0 0.0.0.0 1.0.0.1
RouterA(config)# ip route 0.0.0.0 0.0.0.0 2.0.0.1 100
这样,只有当主链路发生故障,备份链路的路由项才会出线在路由表中,从而接替主链路完成报文转发,实现主备目的 。
  • 在两路由器上运行动态路由协议,如OSPF,但不要运行RIP协议(因为RIP协议是仅以hop作为Metric的)
(4) 建议和总结
本案例的目的不是为了解释网络配置问题,而是用来展示Ping命令和Traceroute命令的相互配合来找到网络问题的发生点 。尤其在一个大的组网环境中,维护人员可能无法沿着路径逐机排查,此时,能够迅速定位出发生问题的线路或路由器就非常重要了 。


推荐阅读