在路由器的故障分析中,Ping命令是一個常見而實用的網絡管理工具,用這種工具可以測試端到端的連通性,即檢查源端到目的端網絡是否通暢。Ping的原理很簡單,就是從源端向目的端發出一定數量的網絡包,然后從目的端返回這些包的響應,如果在一定的時間內源端收到響應,則程序返回從包發出到收到的時間間隔,根據時間間隔就可以統計網絡的延遲。如果網絡包的響應在一定時間間隔內沒有收到,則程序認為包丟失,返回請求超時的結果。我們經常讓Ping一次發一定數量的包,然后檢查收到相應的包的數量,則可統計出端到端網絡的丟包率,而丟包率是檢驗網絡質量的重要參數。
在路由器上Ping返回符號的含義如下表所示:
符號 描述
! 收到一個響應。
. 在等待時,網絡服務器超時。
U 目標無法到達,受到錯誤的PDU。
Q 源消失(目標設備太忙)。
M 數據無法分割。
? 包類型未知。
& 報的有效期過了。
在路由器上無法Ping通一個地址的原因有很多種,譬如線路故障,對方路由器的接口沒有起來,路由器的路由表中沒有該地址的路由信息等等都會造成網絡無法Ping通。
實例:
網絡結構如(圖1)示。
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
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返回的信息??磥鞷outer4上也有問題:
Router4#
6d23h: IP: s=12.0.0.1 (Serial0/0), d=34.0.0.4 (Serial0/0), Len 100, rcvd 3
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
這樣問題得到了解決:
【相關文章】
【責任編輯:
雪花 TEL:(010)68476606-8007】
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 100 percent (5/5), round-trip min/avg/max = 32/35/36 ms |