扫一扫
关注微信公众号

通过Ping排除路由器故障(上)
2007-10-08   网络

在路由器的故障分析中,Ping命令是一个常见而实用的网络管理工具,用这种工具可以测试端到端的连通性,即检查源端到目的端网络是否通畅。Ping的原理很简单,就是从源端向目的端发出一定数量的网络包,然后从目的端返回这些包的响应,如果在一定的时间内源端收到响应,则程序返回从包发出到收到的时间间隔,根据时间间隔就可以统计网络的延迟。如果网络包的响应在一定时间间隔内没有收到,则程序认为包丢失,返回请求超时的结果。我们经常让Ping一次发一定数量的包,然后检查收到相应的包的数量,则可统计出端到端网络的丢包率,而丢包率是检验网络质量的重要参数。

在路由器上Ping返回符号的含义如下表所示:

符号 描述

! 收到一个响应

. 在等待时,网络服务器超时

U 目标无法到达,收到错误的PDU

Q 源消失(目标设备太忙)

M 数据无法分割

? 包类型未知

& 包的有效期过了

在路由器上无法Ping通一个地址的原因有很多种,譬如线路故障,对方路由器的接口没有起来,路由器的路由表中没有该地址的路由信息等等都会造成网络无法Ping通。

实例一:



Routerl#Ping 34.0.0.4

Type escape sequence to abort.

Sending 5,100-byte ICMP Echos to 34.0.0.4,timeout is 2 seconds:

……

Success rate is 0 percent(0/5)


在Routerl上无法Ping通Router4的接口,通过使用DEBUG命令来获得更多的信息,便于进一步的分析:

Routerl#debug ip packet

IP packet debugging is on

Routerl#Ping 34.0.O.4

Type escape sequence to abort.

Sending 5,100-byte ICMP Echos to 34.0.0.4。timeout is 2 seconds:

nbsp; 5d21h:IP:s=12.0.0.1(local),d=34.0.0.4,Len 100,unroutable.

5d21h:IP:s=12.0.0.1(local),d=34.0.0.4,Len 100,unroutable.

Success rate is 0 percent(0/5)

我们看到“unroutable”的消息,表明在Router1的路由表中不存在该地址的路由信息,Router1不知道该地址向何处转发,现增加一条默认路由到Router1中:

Router1# configure terminal

Enter configuration commands,one per line. End with CNTL/Z.

Router1(config)#ip route 0.0.0.0 0.0.0.0 Serial0/0

然后,在Router1上使用Ping:

Router1# Ping 34.0.0.4

Type escape sequence to abort.

Sending 5,100-byte ICMP Echos to 34.0.0.4,timeout is 2 seconds:

U.U.U

Success rate is 0 percent(0/5)

6d03h:IP:s=12.0.0.1(local),d=34.0.0.4(Serial0/0),Len 100,sending

6d03h:ICMP type:8,code=0

6d03h:IP:s=12.0.0.2(Serial0/0),d=12.0.0.1(Serial0/0),Len 56,rcvd 3

6d03h:ICMP type=3,code=l

……

再看看在Router2上收到了什么信息:

Router2#

21:56:04:IP:s=12.0.0.1(Serial1),d=34.0.0.4,Len 100.unroutable

21:56:04:ICMP type=8.code=0

21:56:04:IP:s=12.0.O.2(local),d=12.0.0.1(Serial1),Len 56,sending

21:56:04:ICMP type=3.code=l

从上面的信息可以看出Router1已经能正确地发送包到Router2,但好像Router2并不知道如何转发地址34.0.0.4,所以Router2发送了“unreachable”的消息给Router1。因此分别给Router2和Router3加上动态路由协议RIP:

Router2#

router rip

network 12.O.0.0

network 23.O.0.0

Router3#

router rip

network 23.0.0.0

network 34.0.0.0

然后,在Router1上PingRouter4的接口:

Router1#Ping 34.0.0.4

Type escape sequence to abort.

Sending 5.100-byte ICMP Echos to 34.0.0.4,timeout is 2 seconds:

5d21h:IP:s=12.0.0.1(local),d=34.0.0.4(Serial0/0),Len 100,sending.

5d21h:IP:s=12.0.0.1(local),d=34.0.0.4(Serial0/0),Len 100,sending.

……

Success rate is 0 percent(0/5)

现在情况看起来好点,Router1能发包到Router4,只是收不到任何从Router4返回的信息。看来Router4上也有问题:

Router4#

6d23h:IP:s=12.0.0.1(Serial0/0),d=34.0.0.4(Serial0/0),Len 100,rcvd3

6d23h:IP:s=34.0.0.4(local),d=12.0.0.1,Len 100,unroutable

……

    Router4收到了ICMP的包,但由于没有到12.0.0.1的路由信息,因此无法响应12.0.0.1所发过来的包。在Router4上增加一条默认路由:

Router4(config)#ip route 0.0.0.0 0.0.0.0 Serial0/0

这样问题得到了解决:


Router1#Ping 34.0.0.4

Type escape sequence to abort.

Sending 5.100-byte ICMP Echos t0 34.0.0.4,timeout is 2 seconds:

!!!!!

Success rate is 100 percent(5,5),round-trip min/avg/max=32/35/36ms

热词搜索:

上一篇:路由器IOS系统映像的故障分析与恢复(上)
下一篇:通过Ping排除路由器故障(下)

分享到: 收藏