連鎖 CNAME 構成では DNS TTL はどのように機能しますか?

連鎖 CNAME 構成では DNS TTL はどのように機能しますか?

次のような 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レコードTTLCNAME動作は、他のレコードと何ら変わりません。

上記を実行する再帰リゾルバを想像してみましょう。次に、キャッシュに次の内容を入力します。

  • www.example.com CNAME600秒有効
  • prod.myzone.l2.company.example CNAME600秒有効
  • ssl-endpoint-12345.hostcorp.example A60秒間有効

後で誰かがssl-endpoint-12345.hostcorp.example A直接クエリを実行する場合は、60 秒の TTL が適用されます。

しかし、クエリが に対して行われた場合www.example.com、リゾルバはAレコードではなく CNAME があることを認識し、上記のすべてを再利用します。

上記の 66 秒後 (例) は、www.example.comまだリゾルバ キャッシュ内にありますが、ssl-endpoint-12345.hostcorp.example Aもう存在しなくなるため、リゾルバは新しい DNS クエリを実行してそのデータを取得し、キャッシュする必要があります。

関連情報