1. 程式人生 > >traceroute 命令示例

traceroute 命令示例

用途

顯示 IP 資訊包至某個網路主機的路由。

語法

traceroute [ -m Max_ttl ] [ -n ] [ -p Port ] [ -q Nqueries ] [ -r ] [  -d  ] [  -g  gateway_addr ] [ -s SRC_Addr ] [  -t TypeOfService ] [ -f flow ] [ -v ] [  -w WaitTime Host [ PacketSize ]

描述

注意:traceroute 命令適用於網路測試、評估和管理。它應主要用於手動故障隔離。由於它對網路施加的負荷, traceroute 命令不應用於正常的操作中或自動指令碼。

traceroute 命令試圖跟蹤 IP 資訊包至某個因特網主機的路由,其具體方法是:先啟動具有小的最大存活時間值(Max_ttl 變數)的 UDP 探測資訊包,然後偵聽從閘道器開始一路上的 ICMP TIME_EXCEEDED 響應。探測以一個一跳躍位的 Max_ttl 值開始,該值一次增加一個跳躍值,直至返回 ICMP PORT_UNREACHABLE 訊息。ICMP PORT_UNREACHABLE 訊息可以指出主機已經被定位,或命令已經達到允許跟蹤的最大跳躍數目。

traceroute 命令在每一個 Max_ttl 設定上傳送三個探測值以記錄以下一些內容:

  • Max_ttl 值
  • 閘道器地址
  • 每次成功探測的往返時間

通過使用 -q 標誌,可以增加發送的探測數目。如果探測的回答來自不同的閘道器,那麼命令會顯示各個響應系統的地址。如果在 3 秒的超時時間間隔中沒有來自探測的應答,那麼會針對該探測顯示出 *(星號)。

如果 Max_ttl 值為一個跳躍或更小,那麼 traceroute 命令會在往返時間後顯示一個“!”(感嘆號)。一個跳躍或更小的最大存活時間值一般都指出了不同網路軟體處理 ICMP 應答的方式的不相容性。不相容性通常是通過將上次使用的 Max_ttl 值加倍並再次嘗試來解析的。

在往返註釋後,其他可能的註釋有:

專案 描述
!H 主機不可到達
!N 網路不可達
!P 協議不可達
!S 源路由失敗
!F 需要碎片

如果有許多探測都產生某一錯誤,那麼 traceroute 命令退出。

traceroute 命令唯一的強制性引數就是目標主機名稱或 IP 數字。traceroute 命令將根據輸出介面的最大傳輸單元(MTU)確定探測資訊包的長度。UDP 探測資訊包被設定為一個不可能的值,以防止目標主機的處理。

標誌

專案 描述
 -d   啟用套接字級別除錯。 
-f flow 在 IPv6 包頭設定流量標籤欄位。預設值為 0。
 -g gateway_addr   通過 IP 源路由選項,使出局包通過指定閘道器。使用此標誌之前,路由器必須啟用 IP 源路由。此標誌僅對 IPv6 地址可用。 
-m Max_ttl 設定用於輸出探測資訊包的最大存活時間(最大的跳躍數)。預設值為 30 個跳躍(TCP 連線也使用相同的預設值)。
-n 以數字方式而不以符號加數字的方式顯示跳躍地址。該標誌為在路徑上找到的每個閘道器儲存名稱伺服器的“地址到姓名”查詢。
-pPort 設定用於探測的基本 UDP 埠號。預設值為 33434。traceroute 命令取決於目標主機的開放式 UDP 埠範圍,base 至 base + nhops - 1。如果 UDP 埠不可用,那麼該選項可以用於選擇一個未曾使用的埠範圍。
-q Nqueries 指定 traceroute 命令在每個 Max_ttl 設定值處發出的探測數目。預設值為三次探測。
-r 忽略正常的路由表,並直接傳送探測資訊包至已連結網路上的主機。如果指定的主機不在直接連線的網路上,那麼返回一個錯誤。該選項可以用於通過 routed 守護程式路由表中未註冊的介面向本地主機發出 ping命令。
-s SRC_Addr 以數字格式將下一 IP 地址用作輸出探測資訊包的源地址。在具有不止一個 IP 地址的主機上,可以使用 -s 標誌強制將源地址轉變成與傳送探測包的介面的 IP 地址不同的地址。如果下一個 IP 地址不是機器介面地址之一,那麼返回一個錯誤且不傳送任何內容。
-t TypeOfService 將探測資訊包中的 TypeOfService 變數設定為 0 至 255 範圍內的一個十進位制整數。預設值為 0。該標誌可用於調查不同的服務型別是否產生了不同的路徑。有關更多資訊,請參閱Performance Tools Guide and Reference中的 TCP/IP 協議。有用的數值為 -t 16(低延遲)和 -t 8(高吞吐量)。
-v 接收除 TIME_EXCEEDED 和 PORT_UNREACHABLE 以外的資訊包(詳細輸出)。
-w WaitTime 設定等待探測響應的時間(以秒為單位)。 預設值為 3 秒。

引數

專案 描述
Host 通過主機名或 IP 數字指定目標主機。該引數是必要的。
PacketSize 指定探測資料報長度。預設資訊包大小可以通過 traceroute 命令根據輸出介面的 MTU 來確定。

安全性

RBAC 使用者和可信 AIX 使用者注意:此命令可以執行特權操作。只有特權使用者才能執行特權操作。有關許可權與特權的更多資訊,請參閱安全性中的『特權命令資料庫』。要獲取與此命令相關聯的特權和許可權的列表,請參閱 lssecattr 命令或 getcmdattr 子命令。

示例

  1. 一個使用和輸出的樣本為:
    [yak 71]% traceroute nis.nsf.net.
    traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 56 byte packet
      1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
      2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
      3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
      4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms
      5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms
      6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms
      7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms
      8 129.140.70.13 (129.140.70.13) 99 ms 99 ms 80 ms
      9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms
    10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms
    11 nic.merit.edu (35.1.1.48) 239 ms 239 ms 239 ms
    由於第二個跳躍系統(lbl-csam.arpa)核心中的錯誤(向前轉發了零存活時間的資訊包),結果第二行和第三行相同。在第 6 到第 10 行中,不顯示主機名稱,因為美國國家科學基金會網路(NSFNet,129.140)不提供其節點的地址到名稱的轉換。
  2. 另外一個輸出樣本如下:
    [yak 72]% traceroute rip.Berkeley.EDU (128.32.131.22)
    traceroute to rip.Berkeley.EDU (128.32.131.22), 30 hops max
      1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
      2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms
      3 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 39 ms 19 ms
      4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms
      5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms
      6 csgw/Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms
      7 * * *
      8 * * *
      9 * * *
    10 * * *
    11 * * *
    12 * * *
    13 rip.Berkeley.EDU (128.32.131.22) 59 ms! 39 ms! 39 ms
    在本示例中,恰好“丟失”了 12 個閘道器跳躍的一半(13 是最後的目標)。但是,這些跳躍實際並不是閘道器。目標主機,一個執行 Sun OS3.5 的 Sun-3 工作站,將來自到達資料報的 ttl 用作其 ICMP 回覆的 ttl,因此回覆會在返回路徑上發生超時。由於 ICMP 不是對 ICMP 傳送的,因此不會接收到任何通知。命令(感嘆號)每次往返時間只會指示某一型別軟體的不相容性問題。(其原因是在 traceroute 命令釋出一個兩倍路徑長的探測之後進行診斷。目標主機實際只是在 7 個跳躍以外。)