DNSの伝播、TTL、そして即時反映されない理由
このガイドは英語から翻訳されています。リンク先の一部のページは英語のみです。
修正したレコードが1時間ほど古いままに見える理由と、正しい確認方法。
レコードを修正しました。新しいサイトが見える人もいれば、あなたにはまだ古いサイトが見えます。壊れているわけではありません。
「伝播」の正体はキャッシュ
ブロードキャストのような仕組みはありません。リゾルバがレコードを問い合わせると、そのレコードのTTLの間、回答をキャッシュします。TTLが切れるまでは、あなたも、そのリゾルバを使う全員も古い回答を受け取ります。「伝播」とは、それらのキャッシュが別々のタイミングで期限切れになることにすぎません。
TTLが調整つまみ
TTL 300秒(5分) — 数分で変更が反映されます。
TTL 3600秒(1時間) — 最大1時間は古い状態が残ります。
TTL 86400秒(1日) — 最大1日。
変更前に手軽に速くするには、あらかじめ余裕をもってTTLを下げ、変更を行い、その後で元に戻します。
確認するのはブラウザではなく真実
ブラウザやOSもDNSをキャッシュします。世界から見える状態を知るには、権威ネームサーバーに直接問い合わせます。
dig example.com A +short # your configured resolver
dig @1.1.1.1 example.com A +short # Cloudflare public resolver
dig @8.8.8.8 example.com A +short # Google public resolver
dig @ns1.yourhost.example example.com A +short # YOUR authoritative server (the source of truth)権威サーバーが正しい回答を返しているのに公開リゾルバが古い場合は、キャッシュが切れるのを待つだけです。権威サーバー自体が間違っている場合は、ゾーンを修正してください。
待つ間に自分のキャッシュを消去する
# Linux (systemd-resolved)
resolvectl flush-caches
# macOS
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
# Windows
ipconfig /flushdnsブラウザも独自のキャッシュを持っています。プライベートウィンドウや別のブラウザなら回避できます。
「自分には見えるのに他の人には見えない」チェックリスト
権威ネームサーバーに問い合わせる — そこでレコードは正しいですか?
apexとwwwの両方を確認する。
TTLと、レコードを変更してからの経過時間を確認する。
実際に有効なゾーンを編集したか確認する(旧レジストラのコピーではなく)。
同じタイプの競合する2つ目のレコードがないか探す。
関連記事