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 応答をゲートウェイから listen することにより行います。 プローブは Max_ttl 値 1 ホップで始動され、ICMP PORT_UNREACHABLE メッセージが戻されるまで、その後一度に 1 ホップずつ増加されます。 ICMP PORT_UNREACHABLE メッセージは、ホストを見付けたという内容か、または、コマンドがトレースに与えられた最大ホップ数に到達したという内容のいずれかです。

traceroute コマンドは、Max_ttl の設定ごとに 3 つのプローブを送信し、以下について記録します。

  • Max_ttl
  • ゲートウェイのアドレス
  • 正常終了した各プローブの往復時間

送信するプローブの数は、-q フラグを使用して増やすことができます。 プローブの返答が異なったゲートウェイから入ってきた場合、コマンドはそれぞれの応答システムのアドレスを表示します。 3 秒間のタイムアウト時間内にプローブから応答がない場合は、該当するプローブに対し * (アスタリスク) を表示します。

traceroute コマンドは、Hops 値が 1 ホップ以下の場合に、往復時間の後に ! Max_ttl 値が 1 ホップ以下の場合は、往復時間の後に (感嘆符)。 1 ホップ以下の最大存続時間の値は通常、ICMP の応答方法における何らかの非互換性についての問題が、異なったネットワークのソフトウェアで処理されたことを表します。 この非互換性の問題は、普通は最後に使用した Max_ttl 値を倍にして再試行することにより解決できます。

往復表示の後に付けられるその他のコメントは以下のとおりです。

項目 説明
!高 ホスト到着不可能
!未完成 ネットワーク到着不可能
!P プロトコル到着不可能
!セ 送信元経路指定障害
!F フラグメント化が必要

プローブの過半数がエラーで終った場合は、traceroute コマンドは終了します。

traceroute コマンドに必要不可欠な唯一のパラメーターは、 宛先ホスト名か IP 番号だけです。 traceroute コマンドは、 発信インターフェースの最大伝送単位 (MTU) に基づいてプローブ・パケットの長さを判別します。 UDP のプローブ・パケットは、宛先ホストによって処理されるのを防ぐため、通常ではあり得ない値に設定されています。

フラグ

項目 説明
-d ソケット・レベルのデバッグを可能にします。
-f flow IPv6 パケット・ヘッダーのフロー・ラベル・フィールドを設定します。 デフォルト値は 0 です。
-g ゲートウェイ IP 発信元経路指定オプションで指定されたゲートウェイを経由して、発信パケットを送信します。 このフラグを使用するには、ご使用のルーターで IP 発信元経路指定が有効になっている必要があります。 このフラグは、IP バージョン 6 アドレスにのみ有効です。
-m 最大 ttl 出力プローブ・パケットに使用する最大存続時間 (ホップの最大数) を設定します。 デフォルトは、(TCP 接続に使用されるデフォルトと同じ) 30 ホップです。
-n ホップ・アドレスを、記号と数値ではなく、数値で表示します。 このフラグは、パス上で見付けた各ゲートウェイのネームサーバーのアドレス対名前の参照を保存します。
-p Port プローブに使用する基本 UDP ポート番号を設定します。 デフォルトでは 33434 です。 traceroute コマンドは、宛先ホストでの base から base + nhops - 1 のオープン UDP ポート範囲に依存します。 UDP ポートが使用できない場合、このオプションを使って未使用ポート範囲を選び出すことができます。
-q Nクエリーズ traceroute コマンドが各 Max_ttl 設定で送信するプローブの数を指定します。 デフォルトは 3 プローブです。
-r 通常の経路指定テーブルをバイパスし、プローブ・パケットを接続ネットワーク上のホストへ直接送信します。 指定したホストが直接接続したネットワーク上にない場合、エラーが戻されます。 このオプションを使い、routed デーモンの経路指定テーブルに登録されていないインターフェースを介して、ping コマンドをローカル・ホストに対して発行することができます。
-s ソースアドレス 数値形式で示された次の IP アドレスを出力プローブ・パケットの送信元アドレスとして使用します。 複数の IP アドレスのあるホストでは、-s フラグを使って送信元アドレスを強制的にプローブ・パケットが送信されるインターフェースの IP アドレス以外にすることができます。 次の IP アドレスがコンピューターのインターフェース・アドレスの 1 つでない場合は、エラーが戻され、何も送信されません。
-t TypeOfService プローブ・パケットの TypeOfService 変数を 0 から 255 の範囲の 10 進整数値に設定します。 デフォルトは 0 です。 このフラグを使用して、異なるサービス・タイプの結果が異なるパスになるかどうかを調査できます。 詳しくは、「 Performance Tools Guide and Reference」の「 TCP/IP Protocols 」を参照してください。 便利な値は、-t 16 (低遅延) と -t 8 (高スループット) です。
-v TIME_EXCEEDED および PORT_UNREACHABLE (詳細出力) 以外のパケットを受け取ります。
-w WaitTime プローブに対する応答待ち時間 (秒) を設定します。 デフォルトは 3 秒です。

パラメーター

項目 説明
Host 宛先ホストをホスト名または IP 番号で指定します。 このパラメーターは必須です。
PacketSize プローブのデータグラム長を指定します。 デフォルト・パケット・サイズは、 発信インターフェースの MTU に基づいて traceroute により判別されます。

セキュリティー

RBACユーザーおよびTrustedAIXユーザーに注意:このコマンドは特権操作を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティの特権コマンドデータベースを参照してください。 このコマンドに関連した特権および権限のリストについては、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
    2 行目と 3 行目は、2 番目のホップ・システム上のカーネルのバグ (lbl-csam.arpa) 存続時間がゼロのパケットを転送します。 ホスト名は、National Science Foundation Network (NSFNet) のため、6 行目から 10 行目までには印刷されません。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 コマンドがパス長の 2 倍の長さのプローブを出した後に診断されます。 宛先ホストは実際には単に 7 ホップ先でした。)