tracerouteは、TTLを1から順に増やしたprobeを送り、各routerがTTLを0にしたとき返すICMP Time Exceededを利用して経路上の応答点を表示します。Windowsのtracertは通常ICMP Echo、Linuxのtracerouteは既定でUDPを使う実装が多く、方式の違いでFW通過結果も変わります。
tracerouteはなぜ経路を表示できる?
先に答えると、tracerouteは、TTLを1から順に増やしたprobeを送り、各routerがTTLを0にしたとき返すICMP Time Exceededを利用して経路上の応答点を表示します。Windowsのtracertは通常ICMP Echo、Linuxのtracerouteは既定でUDPを使う実装が多く、方式の違いでFW通過結果も変わります。
tracertとtracerouteは何が違う?
仕組みを構成上の位置と観測点に分けると、用語だけでなく実際のpacket・stateを説明できます。
| 項目 | 仕組み・役割 | 実務での判断 |
|---|---|---|
| TTL | router通過ごとに1減少 | 0になったrouterが通常ICMP Time Exceededを返す |
| probe方式 | ICMP・UDP・TCP | OSとoptionで変わる |
| RTT | probe往復時間 | 片方向遅延や帯域を直接示さない |
| 表示IP | ICMPを返したinterface | 必ずしも転送interfaceや装置名と一致しない |
PC --TTL=1--> R1 --TTL=2--> R2 --TTL=3--> R3 --TTL=4--> Server
ICMP ICMP ICMP destination reply
Time Exceeded Time Exceeded Time Exceeded
結果をどの順番で読む?
結果をどの順番で読む?では、対象と期待値を固定し、状態取得、実通信、変更後確認の順に進めます。commandは例であり、本番投入前に対象OSの公式資料と現行設定を確認してください。
| STEP | 実施内容 | 確認する結果 |
|---|---|---|
| 1 | 名前解決を無効化してIP表示を先に確認 | DNS遅延とnetwork遅延を分ける |
| 2 | 送信元・宛先・probe方式を固定 | 再試験条件をそろえる |
| 3 | 期待経路をrouting tableと照合 | 想定外のnext hopを特定 |
| 4 | 最後の応答点と宛先疎通を併記 | 未応答hopだけで障害断定しない |
# 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・filter・無応答 | 後続hopと宛先が応答するか |
| 全方式が同じhopで停止 | 経路・ACL・戻り経路 | 両端のrouteとpolicy log |
| 名前表示だけ遅い | reverse DNS | -d/-nで再実行 |
| 毎回経路が変わる | ECMP・dynamic routing | 複数回取得し正常時と比較 |
調査結果をどう証跡にする?
tracerouteの結果だけで障害装置を断定しません。送信元のrouting table、宛先serviceの疎通、FW log、対向側の戻り経路を同じ時刻で集め、どの方式のprobeを使ったかも記録します。
- 対象機器・interface・VRF/VLAN
- 取得日時・timezone・software version
- 変更前後の同一command出力
- 期待値・実測値・判定者
- 異常時の停止条件とrollback結果
関連する仕組みを次に確認する
定義だけで終わらせず、隣接する仕組みと障害切り分けへ進みます。
まとめ:TTL・probe方式・戻り経路を分けて結果を読む
TTL・probe方式・戻り経路を分けて結果を読むことが結論です。構成図、設定・command、正常時と異常時の結果を同じ条件で保存し、第三者が判断を再現できる状態にしてください。
