DNSのTTLとその設定
DNSサーバにはキャッシュ機構があり、一度問い合わせた名前に対する結果を一定時間キャッシュする。
この有効時間が「TTL」である。
DNSレコードを更新しても、各ネットワークのDNSサーバが個々にキャッシュした結果を持っていることがあるので、変更はすぐに世界中に反映されるわけではなく、少しずつ伝播していく。
このことを「DNSの伝播」とか「DNSの伝播期間」と言うそうだ。
DNSサーバでは、各ゾーンごとに$TTLを設定できる他、ゾーン内のSOAレコード中にもTTLを設定することができる。
- $TTL ... ゾーン全体のデフォルトTTL
- SOA TTL ... そのホスト名のネガティブキャッシュのTTL
ネガティブキャッシュとは、名前がなかったことのキャッシュである。
この値が大きい場合、新規に登録した名前が最悪の場合、設定した時間引けなくなる。
最近のBINDやdjbdnsでは、不適切に大きな値のネガティブキャッシュTTLは無効になるそうだ。
TTLをどう設定すべきか(BINDの場合)
- $TTL ... 1~3日
- SOA TTL ... 数10分程度