目錄

簡介

必要條件

需求

採用元件

慣例

Ping 指令

延伸型ping指令

ping命令欄位說明

Traceroute 指令

延伸型traceroute指令

traceroute命令欄位說明

相關資訊

簡介

本檔案介紹如何使用擴充模組  ping  和擴展的  traceroute 指令。

必要條件

需求

本文檔需要事先瞭解 ping  和 traceroute 指令。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- Cisco IOS®軟體

- 所有思科系列路由器

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

慣例

如需檔案慣例的詳細資訊，請參閱思科技術提示慣例。

其 ping 指令

其 ping  (Packet InterNet Groper)指令是排解裝置可及性疑難問題的一種極常見方法。此指令使用兩個網際網路控制訊息通訊協定(ICMP)查詢訊息、ICMP回應要求和ICMP回應回覆來判斷遠端主機是否處於作用中狀態。其 ping  command還測量接收回應回覆所需的時間。

其 ping  指令首先將回應要求封包傳送到位址，然後等待回覆。其 ping  只有當ECHO REQUEST到達目的地，且目的地能夠將ECHO REPLY ping  在預定義的時間間隔內。

擴展的 ping 指令

當一個正常的 ping  命令從路由器傳送，ping的源地址是資料包用於退出路由器的介面的IP地址。如果擴展 ping  命令時，源IP地址可更改為路由器上的任何IP地址。擴展的 ping  用於執行更高級的主機可達性和網路連線檢查。擴展的 ping  命令僅在特權EXEC命令列中有效。正常 ping  可在使用者EXEC模式和特權EXEC模式下工作。要使用此功能，請輸入 ping  ，然後按Return。系統會提示您輸入本檔案ping命令欄位說明一節中提供的欄位。

其 ping 命令欄位說明

下表列出了 ping  命令欄位說明。這些欄位可使用擴展進行修改 ping  指令。

欄位

說明

協定[ip]:

提示輸入支援的協定。輸入appletalk、clns、ip、novell、apollo、vines、decnet或xns。預設為ip。

目標IP地址：

提示輸入您計畫ping的目標節點的IP地址或主機名。如果指定了除IP之外的受支援的協定，請在此處輸入該協定的相應地址。預設值為none。

重複計數[5]:

傳送到目標地址的ping資料包數。預設值為5。

資料包大小[100]:

ping資料包的大小（以位元組為單位）。預設值：100位元組。

超時（秒[2]）：

超時間隔。預設值： 2（秒）。只有在此時間間隔之前收到回應應答資料包時，ping才會宣告成功。

擴展命令[n]:

指定是否顯示一系列附加命令。預設值為no。

輸入ping [n]:

輸入ping模擬在指定輸入介面上接收的封包到達目標目的地。預設值為no。

（此選項的可用性與使用的軟體版本不同）

源地址或介面：

用作探測的源地址的路由器的介面或IP地址。路由器通常會選取要使用的出站介面的IP地址。也可以提到介面，但語法正確，如下所示：

Source address or interface: ethernet 0

註：這是擴展的 ping  指令。介面不能寫為e0。

DSCP值[0]:

指定區別服務代碼點(DSCP)。引入的DSCP值將放置在每個探測器中。預設值為0。（此選項的可用性與使用的軟體版本不同）

服務型別[0]:

指定服務型別(ToS)。請求的ToS會放置在每個探測中，但不能保證所有路由器都處理ToS。它是Internet服務品質選擇。預設值為0。

是否設定IP報頭中的DF位？[否]:

指定 Don't Fragment (DF)  將在ping資料包上設定位。如果指定為yes，則當此資料包必須經過具有較小最大傳輸單位(MTU)的網段時，DF選項不允許對此資料包進行分段，並且您收到來自要對此資料包進行分段的裝置的錯誤消息。這對於確定到達目的地的路徑中的最小MTU很有用。預設值為no。

是否驗證回複資料？[否]:

指定是否驗證回複資料。預設值為no。

資料模式[0xABCD]

指定資料模式。使用不同的資料模式進行故障排除 framing 錯誤和 clocking 串列線路問題。預設值為[0xABCD]。

Loose、Strict、Record、Timestamp、Verbose[無]:

IP報頭選項。此提示提供多個要選擇的選項。它們是：

- Verbose與任何其他選項一起被自動選中。

- 記錄是一個非常有用的選項，因為它顯示資料包通過的躍點（最多9個）的地址。

- Loose允許您在指定希望資料包通過的躍點的地址時影響路徑。

- 嚴格用於指定您希望資料包通過的躍點，但不允許訪問其他躍點。

- 時間戳用於測量到特定主機的往返時間。

此命令的Record選項和traceroute命令的區別在於Record選項不僅通知您回應請求(ping)到達目的地所經過的躍點，而且還通知您在返迴路徑上訪問的躍點。使用traceroute指令時，您不會取得回應回覆所經過的路徑的相關資訊。traceroute命令會針對所需欄位發出提示。

traceroute命令將請求的選項放在每個探測中。但是，無法保證所有路由器（或終端節點）都處理這些選項。預設值為none。

大小掃描範圍[n]:

允許您改變傳送的回應資料包的大小。這用於確定在通往目的地址的路徑沿途的節點上配置的MTU的最小大小。因此減少了由封包分段造成的效能問題。預設值為no。

!!!!!

各個驚歎號(!)表示收到回覆。句點(.)表示網路伺服器等待回覆時逾時。請參閱ping字元，瞭解其他字元的說明。

成功率為100%

成功回傳到路由器的資料包的百分比。低於80的百分比通常被認為有問題。

往返最小/平均/最大= 1/2/4毫秒

協定回應資料包的最小/平均/最大往返行程時間間隔（以毫秒為單位）。

在此圖中，主機1和主機2無法彼此ping通。您可以在路由器上解決此問題，以確定是否存在路由問題，或兩台主機之一是否未正確設定其預設網關。

主機1和主機2無法Ping

對於 ping從主機1到主機2，每台主機都需要將其預設網關指向其各自的LAN網段上的路由器，或者主機需要與使用路由協定的路由器交換網路資訊。如果其中一台主機的預設網關設定不正確，或者其路由表中沒有正確的路由，則它無法將資料包傳送到其地址解析協定(ARP)快取中沒有的目的地。也有可能主機無法彼此ping通，因為其中一個路由器沒有通往該主機的其ping資料包來源的子網的路由。

範例

以下是源自路由器A乙太網路0介面，且目的地為路由器B乙太網路介面的延伸型ping指令範例。如果此ping成功，則表示不存在路由問題。路由器A知道如何到達路由器B的乙太網，而路由器B知道如何到達路由器A的乙太網。此外，兩台主機均已正確設定其預設閘道。

如果擴展 ping路由器A發出的命令失敗，表示存在路由問題。三台路由器中的任意一台可能存在路由問題。路由器A可能丟失到達路由器B乙太網子網的路由，或者到達路由器C和路由器B之間的子網的路由。路由器B可能丟失到達路由器A的子網的路由，或者到達路由器C和路由器A之間的子網的路由；路由器C可能丟失到達路由器A或路由器B乙太網段子網的路由。您必須修正所有路由問題，然後主機1必須嘗試ping主機2。如果主機1仍無法ping通主機2，則需要檢查兩個預設網關。使用延伸ping指令檢查路由器A的乙太網路和路由器B的乙太網路之間的連線。

如果從路由器A對路由器B的乙太網介面執行普通ping，ping資料包的源地址將是傳出介面的地址，即serial 0介面(172.31.20.1)的地址。路由器B回覆ping封包時，會回覆來源位址（即172.31.20.1）。這樣，只測試路由器A的serial 0介面(172.31.20.1)和路由器B的乙太網介面(192.168.40.1)之間的連通性。

若要測試路由器A乙太網0(172.16.23.2)和路由器B乙太網0(192.168.40.1)之間的連通性，請使用擴展 ping 指令。使用擴展 ping中，您會獲得指定的源地址的選項 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 命令可用於發現資料包通往遠端目的地的路徑以及路由中斷的位置。

SWIFT的  traceroute 命令是記錄每個ICMP超出時間訊息的來源，以提供封包到達目的地所行經的路徑追蹤軌跡。

執行  traceroute 命令將使用者資料包通訊協定(UDP)資料包序列傳送到遠端主機上的無效連線埠位址(預設值33434)，每個資料包的存留時間(TTL)值會增加。

首先，傳送三個資料包，每個資料包的TTL欄位值都設為1。TTL值1會導致資料包在抵達路徑中的第一個路由器時立即逾時。然後此路由器會使用ICMP超出時間訊息加以回應，指出資料包已過期。

接下來，再傳送三條UDP消息，每條消息的TTL值都設定為2。這會導致通往目的地路徑中的第二個路由器傳回ICMP超出時間訊息。

此程式會一直持續，直到封包到達目的地以及產生該封包的系統 traceroute 從到達目的地的路徑中的每個路由器接收ICMP超出時間消息。由於這些資料包嘗試存取目的地主機上的無效連線埠(預設值33434)，因此主機會使用ICMP連線埠無法連線訊息加以回應，指出無法連線的連線埠。此事件向traceroute程式發出完成訊號。

注意：請確保尚未使用任何VLAN下的no ip unreachables來禁用ip unreachable命令。此命令可讓封包捨棄訊息無任何ICMP錯誤訊息。在這種情況下，traceroute不起作用。

延伸型traceroute指令

擴展的 traceroute 命令是 traceroute 指令。可以使用擴展traceroute命令檢視資料包到達目的地所經過的路徑。該命令也可用於同時檢查路由。這有助於您排除路由環路故障，或確定資料包丟失的位置(如果路由已丟失，或資料包被訪問控制清單(ACL)或防火牆阻止)。您可以使用延伸ping指令來判斷連線問題的型別，然後使用延伸traceroute指令來縮小問題發生的範圍。

超出時間錯誤消息表示中間通訊伺服器已看到並丟棄該資料包。目的地無法連線錯誤訊息表示目的地節點已收到探查並將其捨棄，因為它無法傳送封包。如果計時器在響應傳入前關閉，trace將列印星號(*)。發生以下任一情況時，命令將終止：

- 目的地應答

- 已超過最大TTL

- 使用者使用轉義序列中斷跟蹤

註：同時按Ctrl、Shift和6可以呼叫此轉義序列。

traceroute命令欄位說明

下表列出traceroute命令欄位說明：

欄位

說明

協定[ip]:

提示輸入支援的協定。輸入appletalk、clns、ip、novell、apollo、vines、decnet或xns。預設為ip。

目標IP地址

必須輸入主機名或IP地址。沒有預設值。

來源位址:

用作探測的源地址的路由器的介面或IP地址。路由器通常會選取要使用的出站介面的IP地址。

數字顯示[n]:

預設設定是同時顯示符號和數字；但是，可以隱藏符號顯示。

超時（秒[3]）：

等待探測資料包響應的秒數。預設值為3秒。

探測計數[3]:

在每個TTL級別傳送的探測數。預設計數為3。

最短生存時間[1]:

第一個探測器的TTL值。預設值為1，但可以將其設定為更高的值，以禁止顯示已知躍點。

最長生存時間[30]:

可以使用的最大TTL值。預設值為30。其  traceroute 當達到目的地或達到此值時，命令將終止。

埠號[33434]:

UDP探測消息使用的目標埠。預設值為33434。

Loose、Strict、Record、Timestamp、Verbose[無]:

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 命令在使用者執行模式和特權執行模式下都工作。

相關資訊

- TCP/IP路由協定技術頁

- IP 路由支援頁面

- 瞭解 Ping 命令和 Traceroute 命令

- 在作業系統上使用Traceroute命令

- 思科技術支援與下載