TTL てぃーてぃーえる
TTLTime to LiveDNSキャッシュキャッシュ有効期限DNS切り替えネットワーク
TTLについて教えて
簡単に言うとこんな感じ!
TTLはDNSの文脈では「キャッシュの有効期限」のこと。「このドメインの情報は3600秒(1時間)は再確認しなくていいよ」という指示なんだ。TTLを長くすると問い合わせが減って速いけど、サーバーを変えたときに古い情報が残りやすい。短くすると変更が素早く反映されるよ!
TTLとは
TTL(Time to Live)はDNSとネットワークパケットの両方の文脈で使われる概念です。
DNSのTTL:権威DNSサーバーが各レコードに設定する「キャッシュ有効時間(秒)」です。フルリゾルバ(キャッシュDNS)は応答を受けてTTLの時間だけキャッシュし、その間は権威サーバーへの再問い合わせをスキップします。TTLは通常3600(1時間)〜86400(1日)程度に設定されますが、変更直前は短縮することが推奨されます。
IPパケットのTTL:IPヘッダーに含まれる値で、パケットが経由できるルーターの最大ホップ数を示します。ルーターを1つ通過するたびに1ずつ減り、0になるとパケットが破棄され、送信元にICMPエラーが返ります。ルーティングループによるパケットの無限流れを防ぐ仕組みです。
DNSのTTL設計
| 設定値 | 用途・場面 |
|---|---|
| 60秒〜300秒 | 頻繁な変更が必要なサービス(CDN切り替え等) |
| 3600秒(1時間) | 一般的なWebサービス |
| 86400秒(1日) | 変更頻度が低いレコード |
| 削除・変更直前 | 3600秒以下に短縮してからレコード変更 |
歴史と背景
- 1983年:RFC 882/883でDNSの仕組みとTTLが定義
- 1987年:RFC 1035でTTLの動作が詳細規定
- 2000年代:CDN普及に伴い短いTTLの活用が一般的に
- 現在:ゼロダウンタイム切り替えのためにTTL運用が重視される
IPパケットのTTL
| OS | デフォルトTTL値 |
|---|---|
| Windows | 128 |
| Linux | 64 |
| macOS | 64 |
| ネットワーク機器 | 255 |
pingコマンドでの応答パケットのTTL値から、相手OSの種類を推測できます(セキュリティ観点では情報漏洩になる場合もあります)。
DNS変更時のTTL運用手順
- 変更の数日〜1週間前:TTLを300秒以下に短縮
- 変更当日:新しいIPアドレスでAレコードを更新
- TTLの時間経過後:世界中のキャッシュが新しいIPに更新される
- 変更確認後:TTLを元の長い値に戻す
関連する規格・RFC
| 規格 | 内容 |
|---|---|
| RFC 1035 | DNS TTLの基本仕様 |
| RFC 791 | IP TTLの定義(IPv4) |
| RFC 2460 | IPv6のHop Limit(TTL相当) |
関連用語
- DNS — DNSシステム全般
- DNS TTL設計 — TTL設計の詳細と実務パターン
- DNSプロパゲーション — DNSの変更が伝播する時間
- マネージドDNS — TTLを管理するDNSサービス