DNSのTTL解説:キャッシュと伝播
すべてのDNSレコードは秒単位の TTL(Time To Live) を持ちます。これは、リゾルバが権威サーバに再問い合わせするまで応答をどれだけキャッシュしてよいかを示します。TTLは、いわゆる「DNS伝播」の正体です。
キャッシュの仕組み
リゾルバが www.example.com → 203.0.113.10 をTTL 3600で取得すると、最大1時間そのキャッシュから応答します。TTLが切れるまでは、権威サーバ側でレコードを変更しても、まだキャッシュを持つクライアントには影響しません。「プッシュ」は無く、あるのは期限切れだけです。
TTLの選び方
| TTL | 適する用途 | トレードオフ |
|---|---|---|
| 300(5分) | 頻繁に変えるレコード、フェイルオーバー | 権威への問い合わせ増 |
| 3600(1時間) | 一般的なWebレコード | バランス型 |
| 86400(1日) | 安定レコード(MX, NS) | 変更が遅い |
移行の計画
- 数日前に、変更予定レコードのTTLを下げる(例: 300)。
- 旧い長いTTLが各所で切れるのを待つ。
- 変更を実施 — キャッシュは5分以内に切り替わる。
- 落ち着いたらTTLを再び上げて問い合わせ負荷を減らす。
「伝播に48時間かかる」は、ほぼ常に旧レコードのTTLが長く、先に下げ忘れたことを意味します。現在のレコードとTTLは当サイトの DNSルックアップ で確認できます。関連: DNSレコードの種類。
メモ: 否定応答(NXDOMAIN)もSOAのminimumに従ってキャッシュされます。存在しないレコードも残ることがあります。