tracerouteコマンド入門
通信経路を追跡・可視化する
tracerouteは送信元から目的地までのネットワーク経路(ホップ)を表示し、各中継点での遅延を計測するコマンドです。どこで問題が発生しているかを特定できます。
こんな人向けの記事です
- ネットワークの遅延がどこで発生しているか知りたい人
- tracerouteの仕組みと結果の読み方を理解したい人
- ISPやサーバー側の問題を切り分けたい人
Step 1tracerouteの仕組み
tracerouteはTTL(Time To Live)の仕組みを利用しています。TTLはパケットの「寿命」で、ルーターを1台通過するごとに1ずつ減少し、0になるとパケットは破棄されます。
tracerouteはTTL=1からスタートし、1ずつ増やしながらパケットを送信します。各ルーターからの「Time Exceeded」メッセージを収集することで、経路上の全ルーターの情報と応答時間を取得できます。
ポイント: Windowsではtracert(ICMPプロトコル使用)、Mac/Linuxではtraceroute(デフォルトUDP使用)という名前です。プロトコルの違いにより結果が異なる場合があります。
Step 2基本的な使い方
ターミナル
# Mac/Linux
traceroute www.google.com
# Windows
tracert www.google.com
実行結果の例:
ターミナル
traceroute to www.google.com (142.250.207.68), 64 hops max, 52 byte packets
1 _gateway (192.168.1.1) 2.543 ms 1.542 ms 1.463 ms
2 111.222.333.444 (111.222.333.444) 11.421 ms 10.682 ms 11.213 ms
3 core1.example-isp.net (123.45.67.89) 12.271 ms 12.094 ms 12.639 ms
4 transit.another-isp.net (234.56.78.90) 15.843 ms 15.255 ms 14.797 ms
5 142.250.207.68 (142.250.207.68) 15.168 ms 14.762 ms 14.594 ms
Step 3結果の読み方
| 項目 | 意味 |
|---|---|
| ホップ番号(1, 2, 3...) | 経路上のルーターの順番 |
| ホスト名 / IPアドレス | 各ルーターの識別情報 |
| 応答時間(3回分) | 各ホップへの往復時間(ms)。値が急増する箇所が遅延ポイント |
| * * * | そのルーターからの応答がない(ICMPブロック等) |
注意: 「* * *」が表示されても最終目的地に到達できていれば問題ありません。セキュリティ上、応答を返さないルーターは多くあります。
Step 4主なオプション一覧
| 機能 | Windows (tracert) | Mac/Linux (traceroute) | 説明 |
|---|---|---|---|
| 最大ホップ数 | -h [数] | -m [数] | 追跡する最大ホップ数(デフォルト30) |
| タイムアウト | -w [ミリ秒] | -w [秒] | 応答の待機時間 |
| 逆引き無効 | -d | -n | 名前解決を省略して高速化 |
| プロトコル指定 | (ICMPのみ) | -I (ICMP), -T (TCP) | 使用プロトコルを変更 |
| IPv6 | -6 | -6 | IPv6で実行 |
Step 5実践的な使用例
名前解決を無効化して高速実行:
ターミナル
# Mac/Linux
traceroute -n www.google.com
# Windows
tracert -d www.google.com
ICMPプロトコルで実行(Linux):
ターミナル
# Windowsのtracertと同様のICMPプロトコル
traceroute -I www.google.com
# TCPで特定ポートへトレース(ファイアウォール回避に有効)
traceroute -T -p 80 www.google.com
ホップ数を増やして長い経路を表示:
ターミナル
# Mac/Linux
traceroute -m 50 www.google.com
# Windows
tracert -h 50 www.google.com
Step 6よくある問題と対処法
| 問題 | 原因と対処法 |
|---|---|
| 「* * *」が連続する | ルーターがICMPをブロック。Linuxでは -T でTCPを試す |
| 最終目的地に到達しない | 経路上でパケットがブロック。別プロトコルやポートを試す |
| 応答時間が途中で急増 | そのホップ付近でネットワーク混雑や障害の可能性 |
| 後のホップが前より速い | 異なる経路やルーター処理優先度の違いによる正常な現象 |
ポイント: tracerouteの結果は時間によって変化します。インターネットの経路は動的に変わるため、同じ目的地でも異なる結果が得られることがあります。より継続的な診断にはmtrコマンドも検討してください。