Linux用のTracerouteコマンド

知っておくべきこと

  • The唯一のパラメータあなたでなければなりませんtracerouteコマンドはホスト名やIPアドレスのdestination.
  • TTLが1でプローブを起動し、ICMPの「ポートに到達できない」となるか、試行の最大値に達するまで1つずつ増やします。

This記事カバーtraceroute情報に適用Linux機含むコマンドスイッチ説明プラス方法についての情報を解釈する結果。 TracerouteはWindowsで異なって使用される.

How Traceroute Works

Tracerouteコマンドは、情報のパケットがソースから宛先までの移動をマッピングします。 Tracerouteの1つの用途は、ネットワーク全体でデータ損失が発生した時期を特定することです。これは、ダウンしているノードを示す可能性があります。

Because各ホップレコード反映新規サーバーまたはルーター間発信PCと意図されたターゲット、を検討結果の影響がtracerouteスキャン識別スローポイントネットワーク。

Tracerouteでのトラブルシューティング

ネットワークトラフィックがたどる特定のルートを評価する (またはパケットを破棄する悪党ゲートウェイを見つける) には、いくつかのトラブルシューティングの課題があります。 TracerouteはIPプロトコルを使用します生きる時間フィールドを使用して、宛先ホストへのパスに沿った各ゲートウェイからICMP TIME_EXCEEDED応答を求めます。

Tracerouteコマンドを実行するときに含める必要がある唯一のパラメーターは、宛先のホスト名またはIPアドレスです。

Traceroute構文とスイッチ

UbuntuのTraceroute構文。

Tracerouteは、次の一般的な構文に従います。

traceroute [ -dFInrvx ] [ -f first_ttl ] [ -g gateway ] [ -i iface ] [ -m max_ttl ] [ -p port ] [ -q nqueries ] [ -s src_addr ] [ -t tos ] [ -w waittime ] [ -z pausemsecs ] host [ packetlen ]  

Youによるパフォーマンスやコマンドの出力を変更することができ指定1以上のオプションのスイッチ。

Tracerouteコマンドスイッチ
スイッチ 解説
- f 最初の送信プローブパケットで使用される最初の実行時間を設定します。
-F 「断片化しない」ビットを設定します。
- d Enableソケットレベルデバッグ。
-G ルーズソースルートゲートウェイ (最大8個) を指定します。
-I 送信プローブパケットの送信元IPアドレスを取得するネットワークインターフェイスを指定します。 これは通常、マルチホームのホストでのみ有用です。 (Seeを-Sこれを行う別の方法のフラグ。)
-I の代わりにICMP ECHOを使用するUDP datagrams.
-M 送信プローブパケットで使用される最大実行時間 (最大ホップ数) を設定します。 デフォルトは30ホップです (TCP接続に使用されるのと同じデフォルト)。
-N ホップアドレスを象徴的および数値的ではなく数値的に印刷します (パス上にある各ゲートウェイの名前決定を保存します)。
-P プローブで使用するベースUDPポート番号を設定します (デフォルトは33434)。 Tracerouteは、UDPポートで何も聞いていないことを望んでいますベースベースnhops - 1宛先ホストで (したがって、ルートトレースを終了するためにICMP PORT_UNREACHABLEメッセージが返されます)。 デフォルト範囲のポートで何かがリスニングしている場合、このオプションを使用して未使用のポート範囲を選択できます。
-R 通常のルーティングテーブルをバイパスし、接続されたネットワーク上のホストに直接送信します。 ホストが直接接続されたネットワーク上にない場合、エラーが返されます。 Thisオプションpingローカルホストに使用することができるインタフェース持っていないルートそれを通して (、後にインタフェースしたルーティング(8C))。
-S 送信プローブパケットのソースアドレスとして、次のIPアドレス (通常はホスト名ではなくIP番号として与えられます) を使用します。 Onマルチホームホスト (これらの複数とIPアドレス) 、このオプションを強制的に使用することができソースアドレスに何かがIP以外のアドレスインタフェースプローブパケット送信。 IfをIPアドレスはこのマシンのインタフェースの1アドレス誤差が返され何も送信されます。 (を参照してください-Iこれを行う別の方法のフラグ。)
-T 設定します。タイプのサービスプローブパケットで次の値 (デフォルトゼロ) になります。 値は0から255の範囲の10進整数でなければなりません。 Thisオプション異なる場合参照するために使用することができますタイプのサービス結果異なるパス。 (4.4bsdを実行していない場合、telnetやftpなどの通常のネットワークサービスではTOSを制御できないため、これは学術的なものである可能性があります。) TOSのすべての値が合法または意味のあるものではありません。定義については、IP仕様を参照してください。 有用な値はおそらく'-T  16'(低遅延) と'-T  8'(高スループット)。
-V Verbose出力。 TIMe_EXCEEDEDおよびUNREACHABLE以外の受信したICMPパケットが一覧表示されます。
- w Set時間 (秒) 待つ応答にプローブ (デフォルト5秒。)。
- x IPのトグルチェックサム。 通常、これにより、tracerouteがIPチェックサムを計算できなくなります。 場合によっては、オペレーティングシステム送信パケットの一部を上書きできますが、チェックサムを再計算できません。したがって、場合によっては、デフォルトはチェックサムを計算せず、- xそれらを計算します。 ICMP ECHOプローブを使用する場合、通常は最後のホップにチェックサムが必要です (-I) 、したがって、ICMPを使用するときは常に計算されます。
-Z プローブ間で一時停止する時間 (ミリ秒) を設定します (デフォルトは0)。 シスコのSolarisやルーターなどの一部のシステム、レート制限のicmpメッセージ。 これと共に使用するための良好な値は、500 (例えば、1/2秒) である。

結果の解釈

Tracerouteは、小さなTTLでUDPプローブパケットを起動し、ゲートウェイからのICMPの「時間超過」応答をリッスンすることにより、IPパケットがインターネットホストにたどるパスの概要を示します。 TTLが1でプローブを開始し、ICMPの「ポートに到達できない」 (パケットが宛先に到着したことを意味します) を取得するまで1ずつ増やすか、試行の最大値をヒットします。これはデフォルトで30ホップになり、-Mフラグです。

Tracerouteが実行されると、各TTL設定で3つのプローブを送信し、TTL、ゲートウェイのアドレス、および各プローブの往復時間を示す行をコンソールに印刷します。 プローブの回答が異なるゲートウェイから来る場合、各応答システムのアドレスが印刷されます。 Tracerouteが5秒以内に応答を受け取らない場合 (- wフラグ) 、そのプローブのアスタリスクを印刷します。

UDPプローブパケット処理が宛先ホストを圧倒するのを防ぐために、tracerouteは宛先ポートをデバイスが使用する可能性が低い値に設定します。 宛先のネットワークまたはサービスがそのポートを使用する場合は、-Pフラグです。

Traceroute結果の例

サンプルの使用と出力は、この例と同様の結果を返します。

[yak 71]% traceroute nis.nsf.net.
Tracerouteからnis.nsf.net (35.1.1.48) 、最大30ホップ、38バイトパケット
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行目は同じです。 この結果は、TTLがゼロのパケットを転送system-lbl-csam.arpa-thatセカンドホップのバギーカーネルに関連しています (4.3BSDの分散バージョンのバグ)。 NSFNet (129.140) はNSSのアドレスから名前への翻訳を提供していないため、パケットがクロスカントリーを通過しているパスを推測する必要があります。

サイレントゲートウェイの例

より興味深い例は次のとおりです。

[yak 72]% traceroute allspice.lcs.mit.edu.
Tracerouteからallspice.lcs.mit.edu (18.26.0.115) 、最大30ホップ
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms
6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms
8 129.140.70.13 (129.140.70.13) 80 ms 79 ms 99 ms
9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms
10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms
11 129.140.72.17 (129.140.72.17) 300 ms 239 ms
12 * * *
13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms
14 * * *
15 * * *
16 * * *
17 * * *
18 ALLSPICE.LCS.MIT.EDU (18.26.0.115) 339 ms 279 ms 279 ms

12、14、15、16、および17ホップ離れたゲートウェイは、ICMPの「時間超過」メッセージを送信しないか、TTLが小さすぎて送信できないことに注意してください。 14行目から17行目は、「時間超過」メッセージを送信しないMIT Cゲートウェイコードを実行しています。

上記の例のサイレントゲートウェイ12は、4.[23]BSDネットワークコードとその派生物のバグの結果である可能性があります。4.3コードを実行し、それ以前のマシンは、元のデータグラムに残っているTTLを使用して到達できないメッセージを送信します。 ゲートウェイの場合、残りのTTLはゼロであり、ICMPの「超過時間」は私たちに戻らないことが保証されています。

宛先システムSilent Gatewayの例

このバグの動作は、宛先システムに表示されると少し面白いです。

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。バークレー。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ミリ! 39ミリ! 39ミリ!

Noticeが12 "ゲートウェイ" が存在する (13は最終目的地) 、とそれらの後半欠落している。 実際に起こっていることは、という名前のサーバーです。Rip(Sun-3ランニングSun OS 3.5) を使用してからTTL到着グラムTTLとしてそのICMPでreply. So、返信タイムアウトにパス (無注意に送信されたので誰ICMPsはICMPsため送信) までプローブでTTLだ少なくとも倍で路長-つまり、ripは本当にわずか7ホップ。

A返信リターンが1のTTLでは手がかりこの問題が存在します。 Tracerouteプリント! を時間を後TTLは以下1。Sinceベンダーを出荷ロットの廃止された (DECのUltrix、Sun 3.x) または非標準 (HPUX) ソフトウェア、期待に参照してくださいこの問題頻繁世話ピッキングターゲットホストのあなた。

Other可能注釈後時間は! H! N、または! P(ホスト、ネットワーク、またはプロトコル到達不能) 、! S(ソースルート失敗した) 、! F-(断片化必要-RFC1191 Path MTU Discovery値が表示され) 、! X(通信administratively禁止) 、! V(ホスト優先違反) 、! C(優先カットオフ効果) 、または!(ICMP到達不能コード)。 These RFC1812によるコードが定義され、優先RFC1716. Ifほぼすべてのプローブ結果のいくつかの種類で到達不能ホスト、tracerouteあきらめます終了します。

Thisプログラムネットワークテストで使用するためのものです、測定、と管理。 Itする必要があり、主に手動故障分離。 Because負荷のそれは課すネットワーク、それの使用に賢明にtracerouteから操作や自動スクリプト。