TTLの実際の選び方
DNS TTLを理解する:変更の反映に時間がかかる理由
すべてのDNSレコードには、秒単位で表されるTTL(time to live、生存時間)が付いています。これは、ドメインの権威ネームサーバーから、そのレコードを取得するすべてのリゾルバーへの指示です。「この答えは、この時間だけは、再び問い合わせずに使い回してよい」というものです。TTLが300秒であれば、ドメインを検索したばかりのリゾルバーは、その間にレコードが変わっても、5分間は再度問い合わせません。
TTLが調整しているトレードオフ
TTLが長いほど、DNSクエリは少なくなり、平均的な検索は速くなり(より多くのリクエストがキャッシュから応答されるため)、権威ネームサーバーの負荷も減ります。TTLが短いほど、レコードの変更は速く伝播しますが、その代わりクエリの頻度が増えます。普遍的に正しい値はありません。レコードがどのくらいの頻度で変更されると想定されるか、そして古い答えをどこまで許容できる状況かによって決まります。
変更中に実際に起きていること
DNSレコードを更新しても、変更がインターネット上のすべてのリゾルバーに押し出されるわけではありません。変わるのは、次に問い合わせを受けたときに権威ネームサーバーが答える内容だけです。古い答えをすでにキャッシュしているリゾルバーは、キャッシュされたコピーのTTLが切れるまで、それを返し続けます。同じドメインが、どのリゾルバーの、どのキャッシュが応答するかによって、一時的に異なるアドレスに解決されるのは、このためです。
- 計画的な移行の前に、1〜2日前もってTTLを下げておくのは、よくある実践的な方法です。そうすれば、最終的な切り替えが速く伝播します。
- 移行後は、通常、TTLを元の値に戻します。
- 最近変更がなく、TTLが長いレコードは、いざ変更したとき、世界中のキャッシュから完全に消えるまでに、そのTTLの全期間がかかることがあります。
実際にTTLを選ぶ
| TTL | 適したケース | トレードオフ |
|---|---|---|
| 60〜300秒 | 進行中の移行、負荷分散されたエンドポイント | 伝播は速いが、クエリ量がはるかに増える |
| 3,600秒(1時間) | ほとんどの通常のA/AAAA/CNAMEレコード | ときどき変更されるレコードに適した、妥当なバランス |
| 86,400秒(24時間) | MX、NS、そのほかめったに触らないレコード | クエリは少ないが、ここでの変更は完全に反映されるまで丸1日かかる |
否定の答えもキャッシュされますが、これは見落としやすい点です。ドメインが存在しない場合、NXDOMAIN応答自体がキャッシュされ、別の値によって管理されます(もともと存在しなかったレコードのTTLではなく、SOAレコードの最小TTLです)。新しく登録されたドメインが、その直後の短い間、名前解決されないように見えることがあるのは、登録が完了する前のNXDOMAINを、リゾルバーがすでにキャッシュしていたというだけの理由です。
TTLは要求であり、保証ではない
TTLは助言的なものであり、外部の何らかの権威によって強制されるものではないことを知っておく価値があります。リゾルバーは、技術的には、示されたTTLより長く答えをキャッシュすることも(クエリ量を減らすために、高負荷のときにそうするものもあります)、もっと早く破棄することもできます(メモリが不足しているリゾルバーは、キャッシュのエントリを早めに捨てることがあります)。圧倒的に大多数のケースでは、運用のしっかりした公開リゾルバーやISPのリゾルバーは、TTLを厳密に、予測どおりに守ります。ただ、これが、TTLに基づく伝播の見積もりが、契約上の厳密な保証ではなく、信頼できる経験則にとどまる理由です。古いTTLの期間を大きく過ぎても変更がまだ反映されない場合は、極端に積極的に動作する中間のキャッシュが、頻度は低いものの実際にある説明の1つとして、頭に入れておく価値があります。
DNSの変更が公開されたことを確認する場合、1回の検索で分かるのは、1つのリゾルバーが現在何をキャッシュしているかだけです。数分間隔で検索を再実行するか、定期的なチェックをスケジュールするほうが、古いキャッシュされた答えをたまたま1回だけ拾って、それが最終的な結果だと思い込むよりも、変更が実際に伝播したかどうかをはるかに確実に確認できる方法です。
ドメインの公開DNSアドレスを調べたい場合は、Domain IP Lookupツールをお試しください。
このテーマの無料ツール
関連記事
並行して使われる2つのアドレス体系
IPv4
192.0.2.10
32ビット、約43億のアドレス、枯渇
IPv6
2606:4700::6810:84e5
128ビット、340澗のアドレス
AレコードとAAAAレコードの違い:IPv4とIPv6を解説
AレコードはIPv4アドレス、AAAAレコードはIPv6アドレスを返します。同じドメインに対する2つの独立したアドレス体系と、両方を確認すべき理由を解説します。
再帰的なDNS検索を1ホップずつ見る
ブラウザー
example.comを要求
リゾルバー
ISP / 1.1.1.1
ルート + TLD
.comの管理元は?
権威サーバー
正式な回答
この連鎖の各ホップはそれ自体がDNS検索で、結果はその後キャッシュされます
DNSとは?仕組みをやさしく解説
ドメインを入力してからブラウザーがサーバーに接続するまでの間に何が起きているのか、ドメインネームシステムの仕組みを平易な言葉で順を追って解説します。
「DNSサーバー」と呼ばれる3つの層
スタブリゾルバー
お使いのデバイス自体
再帰リゾルバー
ISP、ルーター、1.1.1.1
権威サーバー
ドメイン自身のDNS
ドメインのIPアドレス検索:結果の読み方
ドメインのIPアドレス検索の結果について、複数のアドレス、IPv4とIPv6のレコード、CDNのエッジ、逆引きによる特定の限界を詳しく解説します。