この記事では、Linuxtracerouteコマンドについて知りたいことすべてと日常業務での使用方法について説明します。
Tracerouteは、パケットが別のホストに到達するまでにかかるルート(またはホップ)を出力するコマンドラインユーティリティです。ネットワーク診断に使用されます。その名前が示すように、tracerouteの主な目的は、IPネットワーク内の送信元から宛先までのIPルートをトレースし、管理者が接続の問題をより適切に解決できるようにすることです。 Tracerouteは、接続があるかどうかを通知するだけでなく、問題がどこにあるのか、なぜそれが発生するのかを正確に指摘します。
Tracerouteは、データが宛先に到達するためにたどるパスに関する完全な情報を提供します。たとえば、コンピュータ(ソース)がカリフォルニア州ロサンゼルスにあり、サーバーがニューヨーク(宛先)にある場合、tracerouteは、完全なパス、パス上の各ホップ(コンピューター、ルーター、または送信元と宛先の間にあるデバイス)、および移動と復帰にかかる時間を識別します。
ただし、インターネットでは、Tracerouteメッセージがさまざまな自律システムのルーターによってブロックされることが多く、Tracerouteが不正確になる場合があります。
Tracerouteの仕組み
Tracerouteは、最も一般的に、可変TTL(Time to Live)値を持つICMP(インターネット制御メッセージプロトコル)エコーパケットを使用します。精度を保証するために、各ホップは複数回照会され、各ホップの応答時間が計算されます。
Linuxのtracerouteコマンドは、TTLを操作することで機能します。 TTLの目的は、データがIPネットワークに存在する期間を制限することです。送信されるデータの各パケットには、TTL値が割り当てられます。データパケットが宛先デバイスに向かう途中でホップに到達すると、TTL値が1減少します。
ルーターがパケットのホップカウント値をゼロにデクリメントすると、ICMPの「timeexceeded」エラーメッセージがパケットの送信元IPアドレスに返送されます。それ以外の場合は、パケットが転送されます。
tracerouteツールは、TTLが1に設定された宛先IPにパケットを送信します。これにより、パケットが最初に到達したルーターは、「timeexceeded」というエラーを返します。エラーが返されると、tracerouteツールは最初のルーターのIDとラウンドトリップ時間を記録し、TTLをインクリメントして新しいパケットを送信し、最後のパケットが宛先IPに到達するか、2セットのパケットがドロップされるまでこのプロセスを繰り返します。
Linuxでtracerouteコマンドを使用する方法
簡単な例から始めましょう。 traceroute
を実行してみましょう www.google.com
のコマンド ドメイン。
traceroute www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.210 ms 0.268 ms 0.214 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.311 ms 0.317 ms 0.354 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 1.260 ms 2.320 ms 2.304 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 3.595 ms 2.464 ms 1.365 ms
5 108.170.240.129 (108.170.240.129) 2.636 ms 108.170.240.193 (108.170.240.193) 1.501 ms 108.170.240.129 (108.170.240.129) 2.620 ms
6 142.251.60.143 (142.251.60.143) 1.480 ms 1.499 ms 142.251.60.145 (142.251.60.145) 1.473 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.425 ms 1.622 ms 1.587 ms
最初の行は次の情報を提供します:
- 宛先(www.google.com)とそのIPアドレス(142.251.33.4)。
- ホップ数
traceroute
諦める前に試してみます(30ホップ)。 - 送信するUDPパケットのサイズ(60バイト)。
残りの出力には、パケットが通過したすべてのルーターが表示されます。各行には、ホストの名前とIPアドレスに関する情報が表示されます。次の3つの値は、特定のルーターのラウンドトリップ時間を表します。
この場合、www.google.comに接続するには、リクエストが7つの異なるルーターを経由する必要があります。出力では、最後のホスト( 142.251.33.4)がwww.googleの宛先ホストであることがわかります。 .comドメイン。
デバイス名を非表示にする
これまで見てきたように、デバイス名を含めると表示が乱雑になることがあります。データを見やすくするために、Linuxで-n
を指定してtracerouteコマンドを使用できます。 オプション。
traceroute -n www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 0.142 ms 0.224 ms 0.207 ms
2 69.174.3.1 0.306 ms 0.303 ms 0.323 ms
3 213.254.230.210 11.812 ms 11.784 ms 11.771 ms
4 199.229.230.118 6.516 ms 1.851 ms 4.416 ms
5 108.170.240.129 2.944 ms 108.170.240.193 2.009 ms 108.170.240.129 2.920 ms
6 142.251.60.143 1.928 ms 1.928 ms 1.933 ms
7 142.251.33.4 1.937 ms 1.922 ms 1.926 ms
Linuxtracerouteコマンドを使用した最大ホップ数の設定
-m
を追加する パラメータ最大ホップ数を指定できますtraceroute
プローブします:
traceroute -m 3 www.google.com
traceroute to www.google.com (142.251.33.4), 3 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.170 ms 0.187 ms 0.172 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.299 ms 0.300 ms 0.301 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.727 ms 2.753 ms 2.736 ms
これで、出力は最初の3台のルーターのみで構成されます。 -m
のデフォルト値 パラメータは30です。したがって、ホップ数が30を超える可能性がある場合は、必ず増やしてください。
ホップあたりのプローブパケット数の設定
デフォルトでは、traceroute
各ホップに3つのUDPパケットを送信します。 -q
を使用できます これを上下に調整するオプション。
traceroute
を高速化するには 次のように入力して、UDPプローブパケットの数を1つに減らします。
traceroute -q 1 www.google.com
traceroute to www.google.com (142.251.33.4), 30 hops max, 60 byte packets
1 63.133.178.109 (63.133.178.109) 0.160 ms
2 ae1.cr0-dal4.ip4.gtt.net (69.174.3.1) 0.272 ms
3 ae1.cr10-dal3.ip4.gtt.net (213.254.230.210) 2.190 ms
4 as15169.dal33.ip4.gtt.net (199.229.230.118) 1.853 ms
5 108.170.240.129 (108.170.240.129) 3.063 ms
6 142.251.60.145 (142.251.60.145) 1.993 ms
7 dfw25s44-in-f4.1e100.net (142.251.33.4) 1.952 ms
結論
Linuxのtraceroute
コマンドは、ネットワークルーティングの調査、接続速度の確認、またはボトルネックの特定に最適なツールです。これは、すべての一般的なLinuxディストリビューションで利用できます。このツールを使用するときは、この記事で説明されている方法を使用することがよくあります。
traceroute
の詳細 Linuxでコマンドを実行するには、そのマニュアルページを参照してください。