tracerouteは、TTLを1から順に増やしたプローブを送り、各ルーターがTTLを0にしたとき返すICMP Time Exceededを利用して経路上の応答点を表示します。Windowsのtracertは通常ICMP Echo、Linuxのtracerouteは既定でUDPを使う実装が多く、方式の違いでFW通過結果も変わります。
この記事はネットワークエンジニアの仕事内容の各論です。工程の全体像から確認したい場合はそちらへ。
tracerouteはなぜ経路を表示できる?
先に答えると、tracerouteは、TTLを1から順に増やしたプローブを送り、各ルーターがTTLを0にしたとき返すICMP Time Exceededを利用して経路上の応答点を表示します。Windowsのtracertは通常ICMP Echo、Linuxのtracerouteは既定でUDPを使う実装が多く、方式の違いでFW通過結果も変わります。
tracertとtracerouteは何が違う?
それぞれの役割と、実務で見るところを次の表に整理します。
| 項目 | 仕組み・役割 | 実務での判断 |
|---|---|---|
| TTL | ルーター通過ごとに1減少 | 0になったルーターが通常ICMP Time Exceededを返す |
| プローブ方式 | ICMP・UDP・TCP | OSとoptionで変わる |
| RTT | プローブ往復時間 | 片方向遅延や帯域を直接示さない |
| 表示IP | ICMPを返したインターフェース | 必ずしも転送インターフェースや装置名と一致しない |
PC --TTL=1--> R1 --TTL=2--> R2 --TTL=3--> R3 --TTL=4--> Server
ICMP ICMP ICMP destination reply
Time Exceeded Time Exceeded Time Exceeded
結果をどの順番で読む?
確認は「名前解決を無効化してIP表示を先に確認」から始め、「最後の応答点と宛先疎通を併記」まで進めます。「未応答ホップだけで障害断定しない」を確認できれば完了です。
| STEP | 実施内容 | 確認する結果 |
|---|---|---|
| 1 | 名前解決を無効化してIP表示を先に確認 | DNS遅延とネットワーク遅延を分ける |
| 2 | 送信元・宛先・プローブ方式を固定 | 再試験条件をそろえる |
| 3 | 期待経路をルーティングテーブルと照合 | 想定外のネクストホップを特定 |
| 4 | 最後の応答点と宛先疎通を併記 | 未応答ホップだけで障害断定しない |
# Windows
tracert -d 203.0.113.10
# Linux: UDP / ICMP / TCP 443
traceroute -n 203.0.113.10
traceroute -I -n 203.0.113.10
traceroute -T -p 443 -n 203.0.113.10
1 192.0.2.1 1.1 ms 0.9 ms 1.0 ms
2 198.51.100.1 4.2 ms 4.0 ms 4.1 ms
3 203.0.113.10 8.5 ms 8.3 ms 8.4 ms
アスタリスクが出たら何を確認する?
症状ごとの原因候補と、次に確認することを次の表にまとめます。正常時の出力と並べて差を見ます。
| 症状・誤り | 主な原因候補 | 次に確認すること |
|---|---|---|
| 途中だけ * * * | ICMP rate limit・フィルター・無応答 | 後続ホップと宛先が応答するか |
| 全方式が同じホップで停止 | 経路・ACL・戻り経路 | 両端の経路とポリシーログ |
| 名前表示だけ遅い | reverse DNS | -d/-nで再実行 |
| 毎回経路が変わる | ECMP・動的ルーティング | 複数回取得し正常時と比較 |
調査結果をどう証跡にする?
tracerouteの結果だけで障害装置を断定しません。送信元のルーティングテーブル、宛先サービスの疎通、FWログ、対向側の戻り経路を同じ時刻で集め、どの方式のプローブを使ったかも記録します。
- 対象機器・インターフェース・VRF/VLAN
- 取得日時・タイムゾーン・ソフトウェアバージョン
- 変更前後の同一コマンド出力
- 期待値・実測値・判定者
- 異常時の停止条件と切り戻し結果
この内容は、設計構築チャンネルの動画でも解説しています。
関連する記事
まとめ:TTL・プローブ方式・戻り経路を分けて結果を読む
要点は、TTL・プローブ方式・戻り経路を分けて結果を読むことです。途中のホップが応答しないことと、通信が届かないことは別なので、出力に注釈を付けて残します。
