traceroute [ -m Max_ttl ] [ -n ] [ -p Port ] [ -q Nqueries ] [ -r ] [ -s SRC_Addr ] [ -t TypeOfService ] [ -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 つのプローブを送信し、以下について記録します。
送信するプローブの数は、-q フラグを使用して増やすことができます。プローブの返答が異なったゲートウェイから入ってきた場合、コマンドはそれぞれの応答システムのアドレスを表示します。 3 秒のタイムアウト時間内にプローブからの応答がない場合、そのプローブについて * (アスタリスク) が出力されます。
traceroute コマンドは、Max_ttl の値が 1 ホップ以下の場合に、往復時間の後に ! (感嘆符) を表示します。 1 ホップ以下の最大存続時間の値は通常、ICMP の応答方法における何らかの非互換性についての問題が、異なったネットワークのソフトウェアで処理されたことを表します。この非互換性の問題は、普通は最後に使用した Max_ttl 値を倍にして再試行することにより解決できます。
往復表示の後に付けられるその他のコメントは以下のとおりです。
!H | ホスト到着不可能 |
!N | ネットワーク到着不可能 |
!P | プロトコル到着不可能 |
!S | 送信元経路指定障害 |
!F | フラグメント化必要 |
プローブの過半数がエラーで終った場合は、traceroute コマンドは終了します。
traceroute コマンドに必要不可欠な唯一のパラメーターは、宛先ホスト名か IP 番号だけです。 traceroute コマンドは、発信インターフェースの最大伝送単位 (MTU) に基づいてプローブ・パケットの長さを判別します。 UDP のプローブ・パケットは、宛先ホストによって処理されるのを防ぐため、通常ではあり得ない値に設定されています。
Host | 宛先ホストをホスト名または IP 番号で指定します。このパラメーターは必須です。 |
PacketSize | プローブのデータグラム長を指定します。デフォルト・パケット・サイズは、発信インターフェースの MTU に基づいて traceroute により判別されます。 |
[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) 上のカーネルにバグがあることに起因しています。行番号 6 から 10 にはホスト名が表示されていませんが、これは National Science Foundation Network (NSFNet, 129.140) がこのノードのためのアドレス - 名前の変換を提供していないことによります。
[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 ホップ先でした。)