TTL(Time To Live) てぃーてぃーえる
Time To LivepingtracerouteルーティングパケットDNS TTL
TTLについて教えて
TTL(Time To Live)とは
TTL(Time To Live) とは、直訳すると「生存時間」。ネットワーク上を流れるデータ(パケット)が「どこまで転送されてよいか」を制限する仕組みです。パケットがルーター(経路上の中継機器)を1つ通過するたびにTTLの値が1ずつ減らされ、ゼロになったパケットはそこで廃棄されます。
これにより、宛先に届けられなかったパケットがネットワーク上を永遠にさまよい続ける「ループ問題」を防ぐことができます。インターネットの信頼性を支える、地味だけど欠かせない仕組みです。
TTLは文脈によって意味が少し変わります。IPパケットのTTL(転送回数の上限)と、DNSのTTL(キャッシュの有効期間)の2種類が特によく使われます。ネットワークの設定やトラブル対応の場面で頻繁に登場するので、両方の意味を押さえておくと実務で役立ちます。
TTLの2つの使われ方
| 文脈 | TTLの意味 | 単位 | 主な用途 |
|---|---|---|---|
| IPパケット | ルーターを通過できる残り回数 | 回(ホップ数) | パケットのループ防止 |
| DNS | キャッシュの有効期間 | 秒 | 名前解決結果の保持時間 |
IPパケットのTTLの動き方
パケットが出発するとき、OSによって初期値がセットされます。主要なOSの初期値は以下の通りです。
| OS | TTL初期値 | 特徴 |
|---|---|---|
| Windows | 128 | Windowsサーバー・PCに多い |
| Linux / Android | 64 | Webサーバーなどに多い |
| macOS / iOS | 64 | Appleデバイス |
| 古いUnix / ネットワーク機器 | 255 | ルーター・スイッチ類 |
ping コマンドの応答に表示される TTL 値を見ることで、「相手がWindowsかLinuxか」をざっくり推測する技が使われることもあります。
DNS TTLの覚え方
「TTL=キャッシュの鮮度管理」
スーパーの食品の「消費期限シール」と同じ。期限が切れたら再取得(ラベルを貼り直す)する。
- TTLを短くすると → DNSの変更がすぐ世界中に反映される(サーバー移行・障害対応に有利)
- TTLを長くすると → キャッシュが長持ちし、DNSサーバーへの問い合わせ回数が減る(負荷軽減)
歴史と背景
- 1981年 — RFC 791でIPv4が標準化され、TTLフィールドが定義される。当初は「秒数」で定義されていたが、実装上ほぼ「ホップ数」として扱われるようになった
- 1983年頃 — インターネットの規模拡大とともに、ルーティングループによるパケット増殖が現実の問題になり、TTLの重要性が高まる
- 1989年 —
tracerouteツールが登場。TTLを意図的に1から増やしていくことで経路上のルーターを可視化する手法として活用される - 1998年 — IPv6(RFC 2460)でTTLに相当するフィールドは 「Hop Limit(ホップリミット)」 と名称変更。概念は同一
- 2000年代〜 — クラウド・CDNの普及でDNS TTLの設定が運用上の重要課題に。「切り替え時はTTLを短くしておく」がインフラ担当者の常識に
TTLとpingコマンドの関係
ping コマンドや traceroute コマンドはTTLを使った代表的なネットワーク診断ツールです。
pingとTTLの関係
自分のPC ──→ ルーターA ──→ ルーターB ──→ 宛先サーバー
TTL=64 TTL=63 TTL=62 TTL=61(届く)
<返信>
TTL=61 TTL=62 TTL=63 TTL=64(元の値)
ping応答の TTL 値 = 相手側の初期TTL − 経由したルーター数
→ ping google.com で TTL=117 なら「128 − 117 = 11台のルーターを経由した」と読める。
tracerouteの仕組み(TTLの巧みな活用)
TTL切れ時の動作と活用場面
| シーン | TTLの動き | 実務上のポイント |
|---|---|---|
| ルーティングループ | TTLがゼロになったルーターがパケットを廃棄し、ICMPエラーを返す | 無限ループによるネットワーク障害を防ぐ |
| pingで疎通確認 | 応答のTTL値から経由ホップ数を推定できる | TTL=0なら届いていない=経路の問題を疑う |
| traceroute | TTLを1から増やして各ルーターの応答を収集 | どこで詰まっているかの切り分けに使う |
| DNSレコード変更 | TTLを短くしてから変更 → 変更後にTTLを戻す | サーバー移行・IP変更時の手順として定番 |
| CDN・クラウド | TTLを短く設定して素早い切り替えを実現 | 障害時のフェイルオーバーを速くする |
関連する規格・RFC
| 規格・RFC番号 | 内容 |
|---|---|
| RFC 791 | IPv4の定義。TTLフィールド(8ビット)の仕様を規定 |
| RFC 2460 | IPv6の定義。TTL相当の「Hop Limit」フィールドを規定 |
| RFC 1034 / 1035 | DNSの基本仕様。DNS TTLの概念を規定 |
| RFC 792 | ICMP(Internet Control Message Protocol)。TTL超過時の「Time Exceeded」メッセージを定義 |