Tracert(跟蹤路由)是路由跟蹤實用程式,用于确定 IP 資料報通路目标所采取的路徑。Tracert 指令用 IP 生存時間 (TTL) 字段和 ICMP 錯誤消息來确定從一個主機到網絡上其他主機的路由
Tracert 工作原理
通過向目标發送不同 IP 生存時間 (TTL) 值的“Internet 控制消息協定 (ICMP)”回應資料包,Tracert 診斷程式确定到目标所采取的路由。要求路徑上的每個路由器在轉發資料包之前至少将資料包上的 TTL 遞減 1。資料包上的 TTL 減為 0 時,路由器應該将“ICMP 已逾時”的消息發回源系統。
Tracert 先發送 TTL 為 1 的回應資料包,并在随後的每次發送過程将 TTL 遞增 1,直到目标響應或 TTL 達到最大值,進而确定路由。通過檢查中間路由器發回的“ICMP 已逾時”的消息确定路由。某些路由器不經詢問直接丢棄 TTL 過期的資料包,這在 Tracert 實用程式中看不到
Tracert 指令
按順序列印出傳回“ICMP 已逾時”消息的路徑中的近端路由器接口清單。如果使用 -d 選項,則 Tracert 實用程式不在每個 IP 位址上查詢 DNS。
在下例中,資料包必須通過兩個路由器(10.0.0.1 和 192.168.0.1)才能到達主機 172.16.0.99。主機的預設網關是 10.0.0.1,192.168.0.0 網絡上的路由器的 IP 位址是 192.168.0.1。
C:\>tracert 172.16.0.99 -d
Tracing route to 172.16.0.99 over a maximum of 30 hops
1 2s 3s 2s 10,0.0,1
2 75 ms 83 ms 88 ms 192.168.0.1
3 73 ms 79 ms 93 ms 172.16.0.99
Trace complete.
用 tracert 解決問題
可以使用 tracert 指令确定資料包在網絡上的停止位置。下例中,預設網關确定 192.168.10.99 主機沒有有效路徑。這可能是路由器配置的問題,或者是 192.168.10.0 網絡不存在(錯誤的 IP 位址)。
C:\>tracert 192.168.10.99
Tracing route to 192.168.10.99 over a maximum of 30 hops
1 10.0.0.1 reports:Destination net unreachable.
Tracert 實用程式對于解決大網絡問題非常有用,此時可以采取幾條路徑到達同一個點。
Tracert 指令行選項
Tracert 指令支援多種選項,如下表所示。
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
選項
描述
-d
指定不将 IP 位址解析到主機名稱。
-h maximum_hops
指定躍點數以跟蹤到稱為 target_name 的主機的路由。
-j host-list
指定 Tracert 實用程式資料包所采用路徑中的路由器接口清單。
-w timeout
等待 timeout 為每次回複所指定的毫秒數。
target_name
目标主機的名稱或 IP 位址。
當我們不能通過網絡通路目的裝置時,網絡管理者就需要判斷是哪裡出了問題。問題不僅僅會出現在最終目的裝置,也可能出現在轉發資料包的中間路由器。
有3種方式用來探測一個資料包從源點到目的地經過了哪些中轉路由器,這3種方式分别是:基于記錄路由選項的路由探測,基于UDP協定的路由探測,基于ICMP Echo Request的路由探測。三種方式都可以用來探測一個資料包到達目的裝置經過了哪些中間路由器,但實作的過程卻截然不同。