簡介
本文說明如何使用延伸 和延伸 指令。ping
traceroute
必要條件
需求
本文需要具備 和 指令的預備知識。ping
traceroute
採用元件
本文中的資訊係根據以下軟體和硬體版本:
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
ing
命令
ping
(Packet InterNet Groper)指令是排解裝置可及性疑難問題的一種極常見方法。此指令使用兩個網際網路控制訊息通訊協定 (ICMP) 查詢訊息、ICMP 回應要求和 ICMP 回應答覆,以判斷遠端主機是否作用中。ping
命令還計算接收應答所花費的時間。
ping
命令首先向一個地址傳送一個回聲請求資料包,然後等待應答。只有在ECHO請求到達目的地,且目的地能夠在預定義的時間間隔內將ECHO應答返回到ping
源時,ping
才會成功。
Extended指ing
令
從路由器傳送正常的 指令時,ping 的來源位址是封包用來退出路由器的介面 IP 位址。ping
如果使用延伸 指令,則可以將來源 IP 位址變更為路由器上的任何 IP 位址。ping
延伸 是用來執行主機連線能力和網路連線的進階檢查。ping
延伸 指令僅適用於特許的 EXEC 指令行。ping
一般 適用於使用者 EXEC 模式和特許的 EXEC 模式。ping
若要使用此功能,請在指令行中輸入 並按下 Return 鍵。ping
系統會提示您輸入本文 Ping 指令欄位說明部分提供的欄位。
命令ing
欄位說明
下表列出 指令欄位說明。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。這是網際網路服務品質選擇。預設值為 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 選項不僅會告知您回應請求 (ping) 到達目的地所經過的躍點,也會告知您在傳回路徑上造訪過的躍點。使用 traceroute 指令時,您不會取得有關回應答覆所採用之路徑的資訊。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 封包的子網路。
範例
這是延伸 ping 指令的範例,源自路由器 A 乙太網路 0 介面且目的地為路由器 B 乙太網路介面。如果此 ping 成功,就表示沒有路由問題。路由器 A 知道如何到達路由器 B 的乙太網路,而路由器 B 知道如何到達路由器 A 的乙太網路。此外,兩個主機的預設閘道都已正確設定。
如果來自路由器 A 的延伸 指令失敗,就表示有路由問題。ping
三個路由器中的任何一個都可能會有路由問題。路由器 A 可能遺失到路由器 B 乙太網路的子網路路由,或者可能遺失到路由器 C 和路由器 B 之間的子網路路由。路由器 B 可能遺失到路由器 A 的子網路路由,或者缺少到路由器 C 和路由器 A 之間的子網路路由;而路由器 C 可能遺失到路由器 A 或路由器 B 乙太網路區段的子網路路由。您必須修正任何路由問題,然後主機 1 必須嘗試 ping 主機 2。如果主機 1 仍然無法 ping 主機 2,您就需要檢查兩個預設閘道。路由器 A 乙太網路和路由器 B 乙太網路之間的連線功能是使用延伸 ping 指令來檢查。
在從路由器 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
命令。使用擴展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
指令背後的目的是記錄每個 ICMP 超出時間訊息的來源,以提供封包到達目的地所行經的路徑追蹤軌跡。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 指令來縮小發生問題的範圍。
超出時間錯誤訊息表示中繼通訊伺服器已看到並捨棄該封包。目的地無法連線錯誤訊息表示目的地節點已接收探查並將其捨棄,因為它無法傳送該封包。如果計時器在回覆傳入之前關閉,trace 就會顯示一個星號 (*)。
發生以下任一情況時,指令就會終止:
- 目的地會回應。
- 已超過最大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模式下均適用。
相關資訊