概述
在路由器的故障分析中,Ping命令是一个常见而实用的网络管理工 具,用这种工具可以测试端到端的连通性,即检查源端到目的端网络是否通畅。 Ping的原理很简单,就是从源端向目的端发出一定数量的网络包,然后从目的端返回这些包的响应,如果在一定的时间内源端收到响应,则程序返回从包发出到 收到的时间间隔,根据时间间隔就可以统计网络的延迟。如果网络包的响应在一定时间间隔内没有收到,则程序认为包丢失,返回请求超时的结果。我们经常让 Ping一次发一定数量的包,然后检查收到相应的包的数量,则可统计出端到端网络的丢包率,而丢包率是检验网络质量的重要参数。
在路由器上Ping返回符号的含义如下表所示:
符号 描述
! 收到一个响应。
。 在等待时,网络服务器超时。
U 目标无法到达,受到错误的PDU.
Q 源消失(目标设备太忙)。
M 数据无法分割。
? 包类型未知。
& 报的有效期过了。
在路由器上无法Ping通一个地址的原因有很多种,譬如线路故障,对方路由器的接口没有起来,路由器的路由表中没有该地址的路由信息等等都会造成网络无法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:
Success rate is 0 percent (0/5)
在Router1上无法Ping通Router4的接口,通过使用DEBUG命令来获得更多的信息,便于进一步的分析:
Router1#debug ip packet
IP packet debugging is on
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, 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=1
再看看在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.0.2 (local), d=12.0.0.1 (Serial1), Len 56, sending
21:56:04: ICMP type=3, code=1
从上面的信息可以看出Router1已经能正确地发送包到Router2,但好象Router2并不知道如何转发地址34.0.0.4,所以 Router2发送了“unreachable”的消息给Router1.因此分别给Router2和Router3加上动态路由协议RIP:
Router2#
router rip
network 12.0.0.0
Router2#
router rip
network 12.0.0.0
network 23.0.0.0
Router3#
router rip
network 23.0.0.0
network 34.0.0.0
然后,在Router1上Ping Router4的接口:
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, rcvd 36d23h: 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.4Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 32/35/36 ms
转载于:https://blog.51cto.com/808348/827043
最后
以上就是无聊薯片为你收集整理的路由器故障可以通过Ping命令来排除的全部内容,希望文章能够帮你解决路由器故障可以通过Ping命令来排除所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复