DNS反映待ちか設定ミスかをdigで切り分ける

DNSを変更したあと、「反映待ちです」と言われることがあります。

たしかに待つしかないケースもあります。ただ、設定先を間違えているだけのこともあります。

なので、待つ前に dig でどこまで変わっているか見た方がよいです。

まずNSを見る

ドメインのネームサーバーを確認します。

dig NS example.com +short

Cloudflareへ移したなら、こういう返り方になっていればレジストラ側の変更は進んでいます。

amy.ns.cloudflare.com.
jeremy.ns.cloudflare.com.

ここがまだ旧DNSのままなら、Cloudflare側のDNSレコードをいくら直しても、外からは使われません。

CloudflareのFull setupでも、ドメインをCloudflareへ追加したあと、レジストラ側でネームサーバーを変更する流れになっています。

https://developers.cloudflare.com/dns/zone-setups/full-setup/setup/

権威DNSに直接聞く

Cloudflareのネームサーバーが分かっているなら、そこへ直接問い合わせます。

dig @amy.ns.cloudflare.com example.com A +short

ここで返る値が、Cloudflare側DNSの現在値です。

Cloudflare Pagesに向いている場合、トップドメインはCloudflareのIPが返ることがあります。

172.66.xx.xx
172.66.yy.yy

www はCNAMEでPagesのURLが返る形もあります。

dig @amy.ns.cloudflare.com www.example.com CNAME +short
example.pages.dev.

この時点で旧WordPressサーバーのIPが返るなら、反映待ちではなくCloudflare DNS側の設定が古いです。

1.1.1.1や8.8.8.8に聞く

次に一般のリゾルバへ聞きます。

dig @1.1.1.1 example.com A +short
dig @8.8.8.8 example.com A +short

Cloudflareの権威DNSでは新しい値、8.8.8.8 では古い値、ということがあります。

@amy.ns.cloudflare.com -> 172.66.xx.xx
@8.8.8.8              -> 85.131.206.24

この場合は、設定自体は変わっていて、一般リゾルバのキャッシュが残っていると考えられます。

少し待つ判断でよいです。

HTTPの向き先も見る

DNSだけでなく、実際にHTTPレスポンスも見ると分かりやすいです。

curl -I https://example.com/

旧WordPressが残っているなら、レスポンスヘッダーにWordPressっぽい情報が出ることがあります。

server: nginx
link: <https://example.com/wp-json/>; rel="https://api.w.org/"

Cloudflare Pages側なら、server: cloudflare やCloudflare系のヘッダーが見えることがあります。

もちろんヘッダーだけで完全判定はできませんが、切り分けの材料にはなります。

TTLも見る

dig はTTLも確認できます。

dig example.com A

出力の途中にある数字がTTLです。

example.com.  300  IN  A  172.66.xx.xx

この場合は300秒なので、キャッシュ側では最大5分程度残る可能性があります。

ただし、レジストラ変更や上位DNSの反映は、もう少し時間がかかることもあります。

切り分けの見方

実際には、この表で見ると判断しやすいです。

状態 見方
dig NS が旧DNS レジストラ側のNS変更待ち、または未設定
Cloudflare権威DNSが旧IP Cloudflare DNS側のレコードが古い
Cloudflare権威DNSは新IP、8.8.8.8は旧IP 一般リゾルバのキャッシュ待ち
DNSは新しいのにHTTPSが失敗 SSL証明書やPages Custom domain側を確認

DNSの基礎用語は DNSのNS、A、CNAME、TXTレコードをざっくり整理する に分けています。

まとめ

DNSで詰まったときは、いきなり全部を疑うより順番に見るのが早いです。

  • dig NS でネームサーバーを見る
  • dig @権威DNS でCloudflare側の現在値を見る
  • dig @1.1.1.1dig @8.8.8.8 で一般リゾルバを見る
  • curl -I で実際のHTTP応答を見る

これで「待つしかない」のか、「設定を直すべき」なのかをだいぶ分けられます。

関連記事

参考