簡介
本文檔介紹如何使用擴展 和擴展 命令。pingtraceroute
必要條件
需求
本文檔要求預先瞭解 和 命令。pingtraceroute
採用元件
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
PCommanding 表
(資料包網際網路探測器,Packet InterNet Groper)指令是疑難排解裝置存取問題的一種極為常見的方法。ping它使用兩個網際網路控制消息協定(ICMP)查詢消息、ICMP回應請求和ICMP回應應答來確定遠端主機是否處於活動狀態。 指令也會測量接收回應答覆所花費的時間。ping
指令會先將回應要求封包傳送到位址,然後等待回覆。ping只有在回應要求到達目的地,且目的地能夠在預先定義的時間間隔內將回應答覆傳回 的來源時, 才算成功。pingping
Extended ing PCommand
當某個正常的 命令從路由器發出時,ping的源地址是資料包退出路由器所用介面的IP地址。ping如果使用了擴展 命令,則可將路由器上的源IP地址更改為任何IP地址。ping擴展 用於對主機可到達性和網路連線執行更高級的檢查。ping擴展 命令僅在特權EXEC命令列中有效。ping正常 模式在使用者執行模式和特權執行模式下均工作。ping要使用此功能,請在命令列中輸入 ,然後按Return鍵。ping系統會提示您輸入本文 Ping 指令欄位說明部分提供的欄位。
PCommanding 欄位說明
下表列出了 命令欄位的說明。ping可使用擴展 命令修改這些欄位。ping
|
欄位
|
說明
|
|
Protocol [ip]:
|
提示輸入支援的協定。輸入 appletalk、clns、ip、novell、apollo、vines、decnet 或 xns。預設為 ip。
|
|
Target IP address:
|
提示輸入您要 ping 之目的地節點的 IP 位址或主機名稱。如果您已指定 IP 以外的受支援通訊協定,請在此處輸入該通訊協定的適當位址。預設值為none。
|
|
Repeat count [5]:
|
傳送到目標地址的ping資料包數。預設值為 5。
|
|
Datagram size [100]:
|
Ping 封包的大小(位元組)。 預設值:100 位元組.
|
|
Timeout in seconds [2]:
|
超時間隔。預設值:2秒。 只有在此時間間隔之前收到回應應答資料包時,ping才會宣告成功。
|
|
Extended commands [n]:
|
指定是否顯示一系列附加命令。預設值為no。
|
|
輸入 Ping [n]:
|
輸入 Ping 可模擬在指定目標目的地輸入介面收到的封包。預設值為no。
(此選項的可用性與使用的軟體版本不同。)
|
|
Source address or interface:
|
用作探測源地址的路由器介面或IP地址。路由器通常會挑選要使用的出站介面的IP地址。也可以提到介面,但語法正確,如下所示:
Source address or interface: ethernet 0
這是擴展命令的部分輸ping出。介面不能寫入為 e0。
|
|
DSCP 值 [0]:
|
差異化服務代碼點 (DSCP)。 引入的DSCP值將放置在每個探測中。預設值為0。(此選項的可用性與使用的軟體版本不同。)
|
|
Type of service [0]:
|
指定服務型別(ToS)。 要求的 ToS 會放置在每個探查中,但是無法保證所有路由器都會處理該 ToS。它是Internet服務品質選擇。預設值為 0。
|
|
Set DF bit in IP header?[no]:
|
指定是否要在ping封包上設定位元 。 Don't Fragment (DF)如果指定 yes,DF 選項就不會允許此封包在必須透過具有較小最大傳輸單位 (MTU) 的區段時進行分段,而且您將從想要將封包分段的裝置收到一則錯誤訊息。這對於判斷到目的地之路徑中的最小 MTU 非常實用。預設值為no。
|
|
Validate reply data?[no]:
|
指定是否要驗證回覆資料。預設值為no。
|
|
Data pattern [0xABCD]
|
指定資料模式。使用不同的資料模式對串列線路上的 錯誤和 問題進行故障排除。framing clocking預設值為[0xABCD]。
|
|
Loose, Strict, Record, Timestamp, Verbose[none]:
|
IP 標頭選項。此提示提供多個要選取的選項。
它們是:
- Verbose與任何其他選項一起被自動選中。
- Record(記錄)是一個非常實用的選項,因為它會顯示封包經過之躍點(最多九個)的位址。
- Loose允許您在指定希望資料包通過的躍點的地址時影響路徑。
- Strict(嚴格)是用來指定您希望封包經過的躍點,但是不允許造訪其他躍點。
- Timestamp(時間戳記)是用來測量到特定主機的來回時間。
此命令的Record選項和traceroute命令之間的區別在於Record選項不僅通知您到達目的地所經歷的Echo請求(ping)的跳數,而且還通知您返迴路徑所經歷的跳數。使用traceroute命令時,無法獲取Echo應答所選取的路徑資訊。Traceroute 指令會發出需要您輸入必要欄位的提示。
Traceroute 指令會將要求的選項放在每個探查中。但是,無法保證所有路由器(或終端節點)都會處理這些選項。預設值為none。
|
|
Sweep range of sizes [n]:
|
允許您改變傳送的回應資料包的大小。這是用來判斷在前往目的地位址之路徑沿途節點上設定的 MTU 最小大小,因此會減少因封包分段造成的效能問題。預設值為no。
|
| !!!!! |
各個驚歎號(!)表示收到回覆。句點(.)表示網路伺服器在等待回覆時逾時。如需其他字元的說明,請參閱 ping 字元。
|
|
Success rate is 100 percent
|
成功回傳到路由器的資料包的百分比。任何低於 80% 的情形通常視為有問題。
|
|
round-trip min/avg/max = 1/2/4 ms
|
協定回應資料包的最小/平均/最大往返行程時間間隔(以毫秒為單位)。
|
在此圖中,主機 1 和主機 2 無法相互 ping。您可以在路由器上解決此問題,以確定是否存在路由問題,或兩台主機之一是否未正確設定其預設網關。
主機 1 和主機 2 無法使用 Ping
為使 從主機1到主機2的連線成功,每台主機需要將其預設網關指向其相應LAN網段上的路由器,或者該主機需要與使用路由協定的路由器交換網路資訊。ping如果任一主機未正確設定其預設閘道,或者其路由表中沒有正確的路由,它就無法將封包傳送到其位址解析通訊協定 (ARP) 快取中不存在的目的地。主機之間也可能無法互相 ping,因為其中一台路由器沒有路由能夠前往主機從中發出其 ping 封包的子網路。
範例
以下是源自路由器A乙太網路0介面,且目的地為路由器B乙太網路介面的延伸型ping指令範例。如果此 ping 成功,就表示沒有路由問題。路由器A知道如何到達路由器B的乙太網,路由器B知道如何到達路由器A的乙太網。此外,兩台主機的預設網關均已正確設定。
如果路由器A的擴展 命令失敗,則意味著存在路由問題。ping三個路由器中的任何一個都可能會有路由問題。路由器A可能丟失到達路由器B乙太網子網的路由,或者到達路由器C和路由器B之間的子網的路由。路由器B可能丟失到達路由器A的子網的路由,或者到達路由器C和路由器A之間的子網的路由;路由器C可能會丟失到達路由器A或路由器B乙太網段子網的路由。您必須糾正任何路由問題,然後主機1必須嘗試ping主機2。如果主機1仍無法ping通主機2,則需要檢查兩個預設網關。使用延伸ping指令檢查路由器A的乙太網路和路由器B的乙太網路之間的連線。
在從路由器 A 對路由器 B 乙太網路介面進行正常 ping 的情況下,ping 封包的來源位址會是傳出介面的位址,也就是序列 0 介面 (172.31.20.1) 的位址。 當路由器B回覆ping封包時,便會回覆來源位址(即172.31.20.1)。 這樣一來,就只會測試路由器 A 的序列 0 介面 (172.31.20.1) 和路由器 B 之乙太網路介面 (192.168.40.1) 之間的連線功能。
若要測試路由器A的乙太網路0(172.16.23.2)和路由器B的乙太網路0(192.168.40.1)之間的連線,請使用extended 命令。ping 使用extendedping,,您可以選擇指定資料包的源地ping址,如下所示:
RouterA>enable
RouterA#ping
Protocol [ip]:
Target IP address: 192.168.40.1
!--- The address to ping.
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 172.16.23.2
!---Ping packets are sourced from this address.
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.40.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 36/97/132 ms
!--- Ping is successful.
RouterA#
This is an example with extended commands and sweep details:
RouterA>enable
RouterA#ping
Protocol [ip]:
!--- The protocol name.
Target IP address: 192.168.40.1
!--- The address to ping.
Repeat count [5]: 10
!--- The number of ping packets that are sent to the destination address.
Datagram size [100]:
!--- The size of the ping packet in size. The default is 100 bytes.
Timeout in seconds [2]:
!--- The timeout interval. The ping is declared successful only if the
!--- ECHO REPLY packet is received before this interval.
Extended commands [n]: y
!--- You choose yes if you want extended command options
!--- (Loose Source Routing, Strict Source Routing, Record route and Timestamp).
Source address or interface: 172.16.23.2
!--- Ping packets are sourced from this address and must be the IP address
!--- or full interface name (for example, Serial0/1 or 172.16.23.2).
Type of service [0]:
!--- Specifies Type of Service (ToS).
Set DF bit in IP header? [no]:
!--- Specifies whether or not the Don’t Fragment (DF) bit is to be
!--- set on the ping packet.
Validate reply data? [no]:
!--- Specifies whether or not to validate reply data.
Data pattern [0xABCD]:
!--- Specifies the data pattern in the ping payload. Some physical links
!--- might exhibit data pattern dependent problems. For example, serial links
!--- with misconfigured line coding. Some useful data patterns to test
!--- include all 1s (0Xffff), all 0s (0x0000) and alternating
!--- ones and zeros (0Xaaaa).
Loose, Strict, Record, Timestamp, Verbose[none]:
!--- IP header options.
Sweep range of sizes [n]: y
!--- Choose yes if you want to vary the sizes on echo packets that are sent.
Sweep min size [36]:
Sweep max size [18024]:
Sweep interval [1]:
Sending 179890, [36..18024]-byte ICMP Echos to 192.168.40.1, timeout is 2 seconds:
!--- The count 179890 depends on the values of min sweep,
!--- max sweep, sweep interval and repeat count. Calculations are based on:
!--- 18024(high end of range) - 36(low end of range) = 17988(bytes in range)
!--- 17988(bytes in range) / 1(sweep interval) = 17988 (steps in range)
!--- 17988(bytes in range) + 1 (first value) = 17989(values to be tested)
!--- 17989(values to be tested) * 10(repeat count) = 179890 (pings to be sent)
!--- In order to decrease the value, increase the sweep interval or decrease
!--- the repeat count, or you can even decrease the difference between
!--- Minimum and Maximum sweep size. Based on the previous example, the
!--- number 17890 is an expected value and tries to ping 17890 times.
Packet sent with a source address of 172.16.23.2
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Success rate is 100 percent, round-trip min/avg/max = 1/2/4 ms
!--- Ping is successful.
RouterA#
Traceroute 指令
其中ping可用於驗證裝置之間的連線, 命令可用於發現資料包通往遠端目的地的路徑,以及路由中斷的路徑。traceroute
命令的目的是記錄每個ICMP「time exceeded」消息的來源,以跟蹤資料包為到達目的地所選擇的路徑。traceroute
執行 命令的裝置將使用者資料包協定(UDP)資料包序列傳送到遠端主機上的無效埠地址(預設33434),每個資料包的存活時間(TTL)值都增加。traceroute
首先,傳送三個資料包,每個資料包的TTL欄位值都設為1。TTL值1會導致資料包在抵達路徑中的第一個路由器時立即逾時。接著,此路由器會使用 ICMP 超出時間訊息來回應,表示該資料包已過期。
接下來,傳送三則UDP訊息,每則訊息的TTL值都設為2。這會導致前往目的地的路徑中的第二個路由器傳回ICMP超出時間訊息。
此程式會一直持續,直到封包到達目的地,且建立該程式的系統收到 從通往目的地的路徑中的每個路由器收到ICMP超出時間訊息。traceroute 由於這些資料包嘗試存取目的地主機上的無效連線埠(預設值33434),因此主機會使用ICMP連線埠無法連線訊息加以回應,指出無法連線的連線埠。此事件向traceroute程式發出完成訊號。
附註:請確保尚未在任何VLAN下使用no ip unreachables停用ip unreachable命令。此命令可讓封包捨棄訊息無任何ICMP錯誤訊息。在這種情況下,traceroute 就會無效。
延伸型traceroute指令
擴展 命令是 命令的變體。traceroute traceroute 可以使用擴展的trackers命令來檢視資料包到達目的地所經過的路徑。該命令也可用於同時檢查路由。這有助於您排除路由環路故障,或確定資料包丟失的位置(如果路由已丟失,或資料包被訪問控制清單或防火牆阻止)。 您可以使用延伸ping指令來判斷連線問題的型別,然後使用延伸traceroute指令來縮小問題發生的範圍。
超出時間的錯誤消息表示中間通訊伺服器已看到資料包並將其丟棄。目的地無法連線錯誤訊息表示目的地節點已接收探查並將其捨棄,因為它無法傳送該封包。如果計時器在回應進入前關閉,追蹤會列印星號(*)。
發生以下任一情況時,命令將終止:
- 目的地應答.
- 已超過最大TTL.
- 使用者使用轉義序列中斷跟蹤.
附註: 同時按Ctrl+Shift 和6時,可以呼叫此轉義序列。
traceroute命令欄位說明
下表列出 traceroute 指令欄位說明:
|
欄位
|
說明
|
|
Protocol [ip]:
|
提示輸入支援的協定。輸入 appletalk、clns、ip、novell、apollo、vines、decnet 或 xns。預設為 ip。
|
|
目標 IP 位址
|
必須輸入主機名或IP地址。沒有預設值。
|
|
來源位址:
|
用作探測源地址的路由器介面或IP地址。路由器通常會挑選要使用的出站介面的IP地址。
|
|
Numeric display [n]:
|
預設設定是同時顯示符號和數字;但是,可以隱含符號顯示。
|
|
Timeout in seconds [3]:
|
等待回應探查封包的秒數。預設值為 3 秒。
|
|
Probe count [3]:
|
在每個TTL級別傳送的探測數。預設數量為 3。
|
|
Minimum Time to Live [1]:
|
第一個探測器的TTL值。預設值為 1,但可以將其設定為較高的值以停止顯示已知躍點。
|
|
Maximum Time to Live [30]:
|
可以使用的最大 TTL 值。預設值為30。當traceroute 到達目標或達到此值時,命令終止。
|
|
Port Number [33434]:
|
UDP 探查訊息所使用的目的地連接埠。預設值為 33434。
|
|
Loose, Strict, Record, Timestamp, Verbose[none]:
|
IP 標頭選項。可以指定任意組合。命令將提示輸入必填欄位。traceroute 命令traceroute 將請求的選項置於每個探測中;但是,無法保證所有路由器(或終端節點)都會處理這些選項。
|
範例
RouterA>enable
RouterA#traceroute
Protocol [ip]:
Target IP address: 192.168.40.2
!--- The address to which the path is traced.
Source address: 172.16.23.2
Numeric display [n]:
Timeout in seconds [3]:
Probe count [3]:
Minimum Time to Live [1]:
Maximum Time to Live [30]:
Port Number [33434]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Type escape sequence to abort.
Tracing the route to 192.168.40.2
1 172.31.20.2 16 msec 16 msec 16 msec
2 172.20.10.2 28 msec 28 msec 32 msec
3 192.168.40.2 32 msec 28 msec *
!--- The traceroute is successful.
RouterA#
附註:擴展命traceroute 令只能在特權EXEC模式下執行,而普通traceroute 命令在使用者模式和特權EXEC模式下均工作。
相關資訊