weblog of key_amb

主にIT関連の技術メモ

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分程度