天天看點

快速排除故障指令除了 ping 還有 tracert

Tracert簡介

Tracert是測試封包從發送端到目的地所經過的路由的方法。它能夠直覺展現封包在轉發的時候所經過的路徑。

Tracert基于ICMP協定來實作的。當網絡出現故障時,使用者可以使用Tracert确定出現故障的網絡節點。

Tracert實作
快速排除故障指令除了 ping 還有 tracert
過程

Tracert的實作如上圖1所示,Tracert的工作流程為:

(1)源端(SwitchA)向目的端(日志主機)發送一個UDP封包,TTL值為1,目的UDP端口号是大于30000的一個數,因為在大多數情況下,大于30000的UDP端口号是任何一個應用程式都不可能使用的端口号。

(2)第一跳(SwitchB)收到源端發出的UDP封包後,判斷出封包的目的IP位址不是本機IP位址,将TTL值減1後,判斷出TTL值等于0,則丢棄封包并向源端發送一個ICMP逾時(TimeExceeded)封包(該封包中含有第一跳的IP位址10.1.1.2),這樣源端就得到了SwitchB的位址。

(3)源端收到SwitchB的ICMP逾時封包後,再次向目的端發送一個UDP封包,TTL值為2。

(4)第二跳(SwitchC)收到源端發出的UDP封包後,回應一個ICMP逾時封包,這樣源端就得到了SwitchC的位址(10.1.2.2)。

(5)以上過程不斷進行,直到目的端收到源端發送的UDP封包後,判斷出目的IP位址是本機IP位址,則處理此封包。根據封包中的目的UDP端口号尋找占用此端口号的上層協定,因目的端沒有應用程式使用該UDP端口号,則向源端傳回一個ICMP端口不可達(DestinationUnreachable)封包(該封包含有目的端的IP位址10.1.3.2)。

(6)源端收到ICMP端口不可達封包後,判斷出UDP封包已經到達目的端,則停止Tracert程式,進而得到資料封包從源端到目的端所經曆的路徑(10.1.1.2;10.1.2.2;10.1.3.2)。

華為裝置支援的Tracert指令

華為裝置《指令參考》手冊提供了詳細的指令參數和使用方法。這裡隻列舉了常用的參數,并對參數進行解釋說明。

tracert[ -a source-ip-address | -f first-ttl | -m max-ttl | -p port | -qnqueries | -vpn-instance vpn-instance-name | -w timeout ] *host      

-a:指定封包的源位址。如果不指定源位址,将采用出接口的IP位址作為Tracert封包發送的源位址。

-f:指定初始TTL。當經過的跳數小于此參數值,由于TTL字段的值大于0,經過的這幾個節點不會傳回ICMP逾時封包給源主機。如果已經設定了max-ttl參數值,first-ttl的取值必須小于max-ttl。

-m:指定最大TTL。通常情況下,max-ttl的值被設定為經過站點的跳數。如果已經設定了first-ttl參數值,max-ttl的取值必須大于first-ttl。預設情況下,最大TTL為30。

-p:指定目的主機的UDP端口号。如果不指定目的主機的UDP端口号,Tracert指令使用大于32768的随機的端口作為目标裝置的接收封包端口。如果指定目的UDP端口号,需要避免采用對端已經開啟的端口号,否則會導緻Tracert失敗。

-q:指定每次發送的UDP探測資料封包的個數。當網絡品質不高時,可以增加發送探測資料封包的數目,保證探測封包能夠到達目的節點。預設情況下,每次發送三個UDP探測資料封包。

-w:等待響應封包的逾時時間。當發送資料封包到達某網關逾時,則輸出“* ”。如果網絡品質不高且速度很慢,建議增加發送資料封包的逾時時間。預設逾時時間為5000毫秒。

host:可以是IP位址或域名,如果是域名會首先進行DNS解析,并顯示解析後的IP位址。

電腦支援的Tracert指令

電腦上的Tracert功能與作業系統相關,這裡以Windows作業系統為例。這裡隻列舉了常用的參數,并對參數進行解釋說明。

tracert[ -d | -h maximum_hops | -j host-list | -w timeout ] *host      

-d:不解析主機名。

-h:指定最大TTL的數值。

-j:設定松散源位址路由清單。

-w:用于設定UDP封包的逾時時間,機關為毫秒。

host:指定目的主機的域名或IP位址。

Tracert示例

<SwitchA>tracert 10.26.0.115
traceroute to10.26.0.115(10.26.0.115), max hops: 30 ,packet length: 40,pressCTRL_C to break
1 10.3.112.1  10 ms  10 ms  10 ms
2 10.32.216.1 19 ms  19 ms  19 ms
4 10.32.136.2319 ms  39 ms  39 ms
5 * * *
6 * * *
7 * * *
8 10.26.0.115  69 ms  79 ms  79 ms      

繼續閱讀