DNS レコードを変更したのに、まだ古い値が見えている人がいる?TTL とリゾルバーのキャッシュが「浸透」を生む仕組みと、世界中で確認する方法。
ドメインを新しいサーバーに向けたのに、ユーザーの半分はまだ古いサーバーにアクセスしている。この遅れは DNS の浸透(伝播)と呼ばれます。実際には何かが広がっているわけではなく、古い応答が世界中のキャッシュに残り、期限切れを待っているのです。
誰かがあなたのドメインにアクセスすると、その端末はフルサービスリゾルバー(ISP のもの、または 1.1.1.1 や 8.8.8.8 などのパブリック DNS)に問い合わせます。リゾルバーはあなたの権威 DNS サーバーに一度問い合わせ、そのレコードの TTL(Time To Live)が許す限り応答をキャッシュします。TTL が切れるまで、そのリゾルバーを使う全員が古いキャッシュの応答を受け取ります。
つまり、変更の最大遅延はおおよそそのレコードの以前の TTL です。TTL が 86400 秒のレコードはすべての場所で更新されるまで最大 1 日、TTL が 300 なら約 5 分です。
ドメインが使うネームサーバーを(レジストラで)変更すると TLD のサーバーが関わり、その NS レコードの TTL は 1〜2 日であることが一般的です。最大 48 時間を見込んでください。
DNS ルックアップは多くの国のリゾルバーから同時にレコードを照会するので、どの地点がすでに新しい値を返し、どこがまだ古い値を返しているかが分かります。A、AAAA、CNAME、MX、TXT、NS、SOA、PTR レコードを照会でき、特定のリゾルバーも指定できます。
変更後によく確認する項目:
自分のパソコンやブラウザも DNS をキャッシュしています。キャッシュを消去する(Windows は ipconfig /flushdns、多くの Linux は sudo resolvectl flush-caches、macOS は sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder)か、別のリゾルバーでテストしてください。その後、サイトチェックでサイト自体が新しいサーバーから応答しているか確認しましょう。