TTL(Time To Live)はIPv4 パケットが通過できるホップ数を制限する8-bit フィールドです。ルーターを1台通過するたびに1減り、0になったルーターはパケットを破棄して通常ICMP Time Exceededを返します。tracerouteはこの動作を使い、TTLを1ずつ増やして応答したホップを表示します。
⭕️ネットワークエンジニアが
障害切り分けで理解しておきたいこと
traceroute の仕組み何故tracerouteは経路がわかるのか
その仕組を理解していると切り分けが
すごく理解できる通信できないとき、
まず ping を打つ人は多い。
でも ping だけだと、
届くか
届かないかは分かっても、… pic.twitter.com/50k70AfZHW
— けんと@設計構築チャンネル (@yeiquer12) 2026年5月31日
TTLがルーターごとに減り、0でICMP Time Exceededが返るためtracerouteが経路を追えると説明したポスト。
TTLとは?
先に答えると、TTL(Time To Live)はIPv4 パケットが通過できるホップ数を制限する8-bit フィールドです。ルーターを1台通過するたびに1減り、0になったルーターはパケットを破棄して通常ICMP Time Exceededを返します。tracerouteはこの動作を使い、TTLを1ずつ増やして応答したホップを表示します。
TTLはルーターを通るとどう変わる?
IPv4 TTLは「8-bit ホップ limit」を担い、実務では「ルーターごとに最低1減少」を確認します。続く表で各要素の役割と判断点を比べます。
| 項目 | 仕組み・役割 | 実務での判断 |
|---|---|---|
| IPv4 TTL | 8-bit ホップ limit | ルーターごとに最低1減少 |
| IPv6 ホップ Limit | IPv6での同等フィールド | 時間ではなくホップ数 |
| ICMP Time Exceeded | TTL/ホップ Limit切れを通知 | フィルター時は*表示の可能性 |
| traceroute プローブ | TTL=1,2,3…で送信 | 各ホップの応答IPとRTT |
ルーターはパケットを転送するときTTLを1減らし、0になれば破棄してICMP Time Exceededを返します。tracerouteはTTLを1から増やしてプローブを送り、応答元IPをホップとして並べます。途中機器がICMPを返さない場合は*表示でも、後続ホップへ到達することがあります。
tracerouteはなぜ経路を表示できる?
実施順は「宛先へのルーティングテーブルを先に確認」から「ループ時は繰り返すホップと経路を両端確認」です。完了時には「ループ箇所」を確認します。
| STEP | 実施内容 | 確認する結果 |
|---|---|---|
| 1 | 宛先へのルーティングテーブルを先に確認 | 期待path |
| 2 | 名前解決なし・方式固定でtraceroute | 比較条件 |
| 3 | キャプチャでIP TTLとICMP タイプ/コードを確認 | wire上の動作 |
| 4 | ループ時は繰り返すホップと経路を両端確認 | ループ箇所 |
# Linux
traceroute -n 203.0.113.10
tcpdump -ni any 'icmp or host 203.0.113.10'
# Windows
tracert -d 203.0.113.10
# Cisco
show ip route 203.0.113.10
Internet Protocol Version 4
Time to Live: 1
Internet Control Message Protocol
Type: 11 (Time-to-live exceeded)
Code: 0 (Time to live exceeded in transit)
TTL切れと通信障害をどう分ける?
「同じホップが反復」の場合は「ルーティング ループ」を原因候補にし、次に「各ルーターの経路/ネクストホップ」を確認します。正常時との差を症状ごとに追います。
| 症状・誤り | 主な原因候補 | 次に確認すること |
|---|---|---|
| 同じホップが反復 | ルーティング ループ | 各ルーターの経路/ネクストホップ |
| 途中*だが宛先到達 | ICMP応答抑制 | サービス疎通と後続ホップ |
| 宛先前で停止 | ACL/経路/戻り経路 | プローブ方式変更 |
| TTLが極端に小さい | アプリケーション/OS設定 | パケットキャプチャと送信元 |
Wiresharkでどのフィールドを見る?
TTLを『パケットの寿命秒数』とは説明しません。初期値、実際のホップ数、戻りpathはOSとネットワークで変わるため、値からOSや距離を断定せず、ルーティングテーブルとキャプチャで確認します。
- 対象機器・インターフェース・VRF/VLAN
- 取得日時・タイムゾーン・software バージョン
- 変更前後の同一コマンド出力
- 期待値・実測値・判定者
- 異常時の停止条件と切り戻し結果
関連する仕組みを次に確認する
次の記事では、今回の確認を隣接するレイヤーや別の観測点へ広げます。
まとめ:TTL減算とICMP応答をパケット単位で追う
要点は、TTL減算とICMP応答をパケット単位で追うことです。構成図、設定、確認コマンド、正常時と異常時の結果を同じ条件で保存すると、第三者も判断を再現できます。
