次のような DNS 構成があります:
www.example.com 600 IN CNAME prod.myzone.l2.company.example
prod.myzone.l2.company.example 600 IN CNAME ssl-endpoint-12345.hostcorp.example
ssl-endpoint-12345.hostcorp.example 60 IN A 192.0.2.4
したがって、チェーンの最初の2つのCNAMEレコードのTTLは10分、最後のAレコードのTTLは1分です。
CNAMEは複数のエンドポイント間で地域的な負荷分散を行い、DNS プロバイダーが現在のエンドポイントが正常でないと判断した場合は自動的に更新されます。このため、 CNAME への変更をできるだけ早くprod.myzone.l2.company.example
伝播させたいと思います。prod.myzone.l2.company.example
変更時にクライアントに表示される全体的な TTL を削減したい場合prod.myzone.l2.company.example
、レコードの TTL を削減するだけで十分ですprod.myzone.l2.company.example
か、それともレコードの TTL も削減する必要がありますかwww.example.com
?
答え1
forレコードTTL
のCNAME
動作は、他のレコードと何ら変わりません。
上記を実行する再帰リゾルバを想像してみましょう。次に、キャッシュに次の内容を入力します。
www.example.com CNAME
600秒有効prod.myzone.l2.company.example CNAME
600秒有効ssl-endpoint-12345.hostcorp.example A
60秒間有効
後で誰かがssl-endpoint-12345.hostcorp.example A
直接クエリを実行する場合は、60 秒の TTL が適用されます。
しかし、クエリが に対して行われた場合www.example.com
、リゾルバはA
レコードではなく CNAME があることを認識し、上記のすべてを再利用します。
上記の 66 秒後 (例) は、www.example.com
まだリゾルバ キャッシュ内にありますが、ssl-endpoint-12345.hostcorp.example A
もう存在しなくなるため、リゾルバは新しい DNS クエリを実行してそのデータを取得し、キャッシュする必要があります。