First CH Apps / DNS伝播チェック
ドメインとレコード種別を入れると、サーバー側から複数の公開DNSリゾルバへ同時に同じ質問を投げ、回答が一致しているかを並べます。サーバー移転・ドメイン切り替えのあと「もう切り替わったか」を確認するための道具です。
見えるのは各リゾルバが今返している値だけです。一致していれば伝播は完了、割れていれば途中、全員が同じ「無い」を返すなら伝播ではなく設定側の問題です。
例: example.com(https:// 付きのURLやメールアドレスを貼っても、ドメイン部分だけを見ます)
切り替え先の値を入れると、それが見えているリゾルバの数を数えます(例: 192.0.2.10/空白・カンマ区切りで複数可)
①権威サーバーにそもそも目的のレコードが無い(作ったつもりで保存できていない・別のゾーンを編集した)②権威には入っているがリゾルバのキャッシュに古い値が残っている③権威サーバー同士(プライマリとセカンダリ)で内容が食い違っている。このページは①を「全員が同じ『無い』を返す」、②を「回答が割れている+TTLが残っている」、③を「SOA serial の不一致」として切り分けます。①と③はいくら待っても直りません。
リゾルバは一度引いた答えを TTL の秒数だけ持ち続けます。TTL が 86400 秒(24時間)のレコードを変更すると、最大で丸一日は古い値を返すリゾルバが残ります。切り替えの前日までに TTL を 300 秒程度へ下げ、切り替えが終わってから元に戻すのが定石です。表示している残りTTLは、そのリゾルバが今のキャッシュをあと何秒持つかです(問い合わせるたびに減り、0になると新しい値を引き直します)。
SOA の serial は「ゾーンの版番号」で、プライマリのネームサーバーで変更すると増え、セカンダリへ転送されます。当社の実例では、ConoHa のDNSで1台のネームサーバーだけ古い serial のままになり、どのネームサーバーに当たるかで答えが変わる状態が続きました。原因がキャッシュではなく権威側なので、TTL を待っても解消しません。DNSサービス側の同期を確認するか、レコードを保存し直して転送を起こしてください。
このページの回答が一致しているのに手元のブラウザだけ古いなら、キャッシュはあなたの端末側にあります。macOS は `sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder`、Windows は `ipconfig /flushdns` で消えます。ブラウザ(Chrome は chrome://net-internals/#dns)にも別のキャッシュがあり、社内DNSサーバーやルーターを経由している場合はそちらにも残ります。
切り替えたのに変わらない原因でよくあるのが、編集したホスト名の間違いです。www.example.com と example.com は別のレコードで、片方だけ変えても片方は古いままです。種別を CNAME にして引くと、A の裏に CNAME が挟まっていないかも確認できます(このページは A を引いたときに経由した CNAME も表示します)。
送るもの: 入力されたドメイン名と選んだ種別だけ。当社サーバー(Cloudflare Workers)が 5 社の公開DNS(DNS over HTTPS)へ、選んだ種別と SOA の2件ずつ=合計10件の問い合わせを行います。「期待する値」はサーバー内での突き合わせにのみ使い、外部へは送りません。
保存するもの: ありません。問い合わせはリクエストの中だけで完結し、ドメイン名も結果もデータベース(KV/D1)へ書き込みません。処理が終わった時点でメモリから消えます。アクセスログはCloudflareの標準の範囲のみです。
返すもの: 各リゾルバが返したレコードの値・残りTTL・SOA serial と、その比較結果だけです。ドメインの所有者情報(Whois)やサイトのコンテンツは取得しません。
注意: 引けるのは公開されているDNSレコードだけです。localhost・社内ドメイン(.internal・.local 等)・IPアドレスは受け付けません。問い合わせ先のリゾルバは固定で、利用者が指定することはできません。
POST /dns-propagation/api/check に JSON({"domain": "example.com", "type": "A"})またはフォームを送ると、同じ結果を JSON で返します(認証不要・保存なし)。