ネットワーク通信で問題が起きた際、「Ping は通らないが、どこで止まっているのか知りたい」という場面はよくあります。 そんなときに活躍するのが Traceroute(トレーサルート) です。 本記事では、Traceroute の仕組みや実行方法、結果の読み方についてわかりやすく解説します。
Traceroute とは?
Traceroute は、通信パケットが宛先に到達するまでの 経路(ルータの通過点) を調べるコマンドです。 途中のどの機器で通信が止まっているのか、遅延が発生しているのかを特定するのに利用されます。
Traceroute は OS により以下のような名称で提供されています。
- Windows:
tracert
- Linux / macOS:
traceroute
Traceroute の仕組み
Traceroute は、ICMP または UDP パケットを使い、TTL(Time To Live) を少しずつ増やして宛先までの経路を調べます。
- まず TTL=1 のパケットを送信 → 最初のルータで TTL が 0 となり「Time Exceeded」エラーを返す。
- 次に TTL=2 のパケットを送信 → 2番目のルータで TTL が 0 となり応答を返す。
- このように TTL を1ずつ増やしていき、宛先から「Echo Reply」などの応答が返れば到達成功。
この仕組みにより、宛先までのルータ(ホップ)を順番に特定できます。
Traceroute の実行方法
Windows の場合:
tracert 8.8.8.8
Linux / macOS の場合:
traceroute 8.8.8.8
例として Google Public DNS(8.8.8.8)までの経路を調べると、途中で通過したルータ(ホップ)と応答時間(ms)が表示されます。
Traceroute の結果の見方
Tracing route to 8.8.8.8 over a maximum of 30 hops
1 <1 ms <1 ms <1 ms 192.168.1.1
2 3 ms 3 ms 3 ms 203.0.113.1
3 10 ms 11 ms 12 ms 10.0.0.1
4 30 ms 31 ms 29 ms 8.8.8.8
Trace complete.
- ホップ数: 経路上のルータの通過回数(上の例では4ホップ)。
- 応答時間(ms): 1回の通信にかかった往復時間。値が大きいほど遅延。
- *(アスタリスク): 応答が返ってこなかったことを意味します(タイムアウト、ICMPブロックなど)。
よくある結果と原因
現象 | 原因の例 |
---|---|
途中で「* * *」が続く | 途中のルータが ICMP 応答を遮断している(ファイアウォールやISP仕様) |
途中で止まって先に進まない | ルーティングミス・経路断・NAT超えの通信不可など |
応答時間が極端に大きい | ネットワーク混雑・回線遅延・海外経路など |
Traceroute の応用
- 社内ネットワークで通信が止まっている箇所の特定
- 外部サーバへの経路や遅延の把握
- 複数経路の比較による回線品質調査
また、ISPやクラウド環境では mtr(My Traceroute)などのツールを使うと、リアルタイムで遅延やパケットロスを継続的に監視できます。
まとめ
- Traceroute は経路上のルータを特定し、通信がどこで止まっているかを調べるコマンド。
- TTL を利用して段階的に経路情報を取得する仕組み。
- 応答がない「*」は必ずしも障害ではなく、ICMP 応答を遮断しているだけの場合もある。
Ping と Traceroute を組み合わせることで、ネットワークトラブルの原因をより正確に突き止めることができます。