ドメインの反映はなぜ時間がかかる?DNS反映の仕組みと待ち時間を短くする方法
ドメインの設定変更が「反映される」とはどういうことなのか、なぜ時間がかかるのかという仕組みを解説したうえで、反映状況の確認方法や、待ち時間を短くするための対策を紹介
目次
- 「反映」の正体は「古い情報の有効期限切れ」
- なぜキャッシュが使われるのか
- 反映に時間がかかる主な理由
- 1. TTL(キャッシュの有効期限)が残っている
- 2. ネームサーバー(NS)を変更した
- 3. 「存在しない」という情報もキャッシュされる
- 4. キャッシュは何段階にも存在する
- 5. TTLを守らないキャッシュサーバーもある
- 変更内容別の反映時間の目安
- 反映状況の確認方法
- 権威DNSサーバーに直接問い合わせる
- 公開DNSに問い合わせて比較する
- ドメインチェッカーなどのWebツールを使う
- 待ち時間を短くする方法
- 変更前にTTLを短くしておく
- 自分の環境のキャッシュをクリアする
- hostsファイルで先に動作確認する
- 焦って何度も設定を変更しない
- 「反映待ち」ではなく、設定ミスの可能性もある
- よくある質問
- 本当に48時間も待たないといけませんか?
- 世界中で同時に反映されますか?
- 反映中、サイトが見えなくなることはありますか?
- 反映されたかを確実に知る方法はありますか?
- まとめ
ドメインを取得してサイトを公開しようとしたとき、あるいはサーバーを移転してDNSの設定を変更したとき、「設定したのに、まだサイトが表示されない」「自分の環境では新しいサイトが見えるのに、友人の環境では古いサイトのまま」といった経験はないでしょうか。
よく「ドメインの反映には最大48時間かかります」と案内されますが、なぜそんなに時間がかかるのか、本当に48時間も待たなければならないのか、疑問に思う方は多いはずです。
この記事では、ドメインの設定変更が「反映される」とはどういうことなのか、なぜ時間がかかるのかという仕組みを解説したうえで、反映状況の確認方法や、待ち時間を短くするための対策を紹介します。
「反映」の正体は「古い情報の有効期限切れ」
まず大切なのは、「ドメインの反映」という言葉のイメージです。
「反映」と聞くと、変更した内容が世界中のサーバーに少しずつ配信されていくようなイメージを持つかもしれません。しかし、実際にはそうではありません。
DNSの設定を変更すると、その内容は、そのドメインを管理している権威DNSサーバー(ネームサーバー)にはすぐに反映されます。時間がかかるのは、世界中のDNSキャッシュサーバーが、変更前の古い情報を保存している(キャッシュしている)ため、その有効期限が切れるまで、古い情報が使われ続けるからです。
つまり、「反映を待つ」とは、実際には「各所に残っている古いキャッシュが消えるのを待つ」ことなのです。「DNSの浸透」と呼ばれることもありますが、実態は「古い情報が期限切れになっていく過程」だと考えると理解しやすくなります。
なぜキャッシュが使われるのか
DNSがキャッシュを使うのには、ちゃんとした理由があります。
インターネット上では、毎秒膨大な数のDNS問い合わせが発生しています。もし毎回、ルートサーバーや権威DNSサーバーまで問い合わせていたら、サーバーには大きな負荷がかかり、ページの表示も遅くなってしまいます。
そこで、一度調べた結果を一定時間だけ手元に保存しておき、同じ問い合わせがあればその保存した内容を使う仕組みが採用されています。これがDNSキャッシュです。キャッシュのおかげで、DNSは高速かつ安定して動作しています。
その反面、設定を変更しても、キャッシュが残っている間は古い情報が返されてしまう、という副作用があります。これが「反映に時間がかかる」現象の根本的な理由です。
反映に時間がかかる主な理由
1. TTL(キャッシュの有効期限)が残っている
DNSレコードには、TTL(Time To Live)という項目があり、キャッシュしてよい時間が秒単位で指定されています。
たとえば、TTLが3600(1時間)のAレコードを、キャッシュサーバーが取得したとします。その後に設定を変更しても、そのキャッシュサーバーは、取得から1時間が経過するまでは古い情報を返し続けます。
TTLが86400(24時間)に設定されていた場合は、最大で24時間、古い情報が使われる可能性があります。「反映に最大48時間」という案内は、TTLが長めに設定されている場合や、後述するネームサーバー変更の場合を想定したものです。
2. ネームサーバー(NS)を変更した
レコードの値ではなく、ドメインが使うネームサーバーそのものを変更した場合は、さらに時間がかかることがあります。
ネームサーバーの情報は、ドメインの上位にあたるレジストリ(.comや.jpなどを管理する組織)のDNSサーバーに登録されています。この情報も、キャッシュサーバーに保存されますが、そのTTLは、トップレベルドメインによって異なるものの、1日〜2日程度に設定されていることが多いのです。
このため、ネームサーバーを変更した直後は、世界中のキャッシュサーバーが古いネームサーバーに問い合わせを続けるため、反映に丸1日〜2日かかることがあります。Cloudflareなどの外部DNSサービスに切り替える場面で、よく起こる現象です。
3. 「存在しない」という情報もキャッシュされる
意外と見落とされがちなのが、「ネガティブキャッシュ」です。
新しくドメインやサブドメインを設定する前に、うっかりアクセスして「そんなドメインは存在しません(NXDOMAIN)」という結果を得てしまうと、その「存在しない」という情報も一定時間キャッシュされます。
その結果、レコードを追加した後でも、キャッシュが切れるまでは「存在しない」という応答が返され続けることがあります。サイトを公開する前に、何度もアクセスして動作確認をしていると、この現象にはまりやすくなります。
4. キャッシュは何段階にも存在する
キャッシュは、1か所だけではありません。私たちがサイトを開くまでには、複数の場所にキャッシュが存在します。
| キャッシュの場所 | 内容 |
|---|---|
| ブラウザ | ブラウザ自身が、一定時間DNSの結果を保持している |
| OS(パソコン・スマートフォン) | OSが名前解決の結果を保存している |
| ルーター | 家庭や会社のルーターが、DNSの応答を保持していることがある |
| プロバイダ(ISP)などのDNSサーバー | 多くの利用者からの問い合わせをまとめてキャッシュしている |
| 公開DNS(Google Public DNSなど) | 世界中のユーザーが利用する大規模なキャッシュサーバー |
これらのうち、どこか1か所でも古い情報を持っていれば、その環境では古いサイトが表示され続けます。「自分の環境では見えるのに、他の人は見えない」(あるいはその逆)といった食い違いが起こるのは、それぞれが別のキャッシュを参照しているためです。
5. TTLを守らないキャッシュサーバーもある
ほとんどのキャッシュサーバーはTTLに従って動作しますが、中には、独自の運用ルールで、設定されたTTLより長く情報を保持したり、極端に短いTTLを一定時間まで引き延ばしたりするものもあります。このような場合、こちらの設定では制御できないため、反映が想定より遅れることがあります。
変更内容別の反映時間の目安
変更の種類によって、反映にかかる時間の目安は異なります。
| 変更内容 | 反映の目安 | 主な要因 |
|---|---|---|
| 新しいドメインの取得直後 | 数分〜数時間 | レジストリへの登録と、ネームサーバー情報の浸透 |
| A・CNAME・MXなどのレコード追加・変更 | 設定したTTL程度(数分〜数時間) | 変更前のレコードのTTL |
| ネームサーバー(NS)の変更 | 数時間〜48時間程度 | 上位のNS情報のTTL |
| 存在しなかったホスト名にレコードを追加 | 数分〜数時間 | ネガティブキャッシュ |
あくまで目安であり、実際にはこれより早く反映されることも珍しくありません。「最大48時間」というのは、最悪のケースを想定した案内だと考えるとよいでしょう。
反映状況の確認方法
反映されたかどうかを確認するには、キャッシュの影響を受けにくい方法で調べるのがコツです。
権威DNSサーバーに直接問い合わせる
まず、設定が正しく登録されているかを、ネームサーバーに直接問い合わせて確認します。
dig example.com NS +short
上記で確認したネームサーバー名を指定して、次のように問い合わせます。
dig @ns1.example-dns.com example.com A +short
ここで期待どおりの値が返ってくれば、設定自体は正しく登録されており、あとはキャッシュの期限切れを待つだけの状態です。
公開DNSに問い合わせて比較する
次に、Google Public DNSやCloudflareの公開DNSに問い合わせ、世界中でどの程度反映が進んでいるかを見ます。
dig @8.8.8.8 example.com A +short
dig @1.1.1.1 example.com A +short
Windowsの場合は、nslookup example.com 8.8.8.8 のように、DNSサーバーを指定して調べられます。
ドメインチェッカーなどのWebツールを使う
世界各地のDNSサーバーから同時に問い合わせを行い、結果を一覧で確認できるWebツールを使えば、地域ごとの反映状況を一目で把握できます。コマンドが苦手な方は、ドメインチェッカーなどのツールを活用するのが手軽です。
待ち時間を短くする方法
DNSのキャッシュは世界中に分散しているため、自分の操作で完全に即時反映させることはできません。しかし、次のような対策で、待ち時間を減らしたり、影響を小さくしたりすることは可能です。
変更前にTTLを短くしておく
最も効果的なのが、変更予定の少なくとも元のTTLの時間より前に、TTLを短く(たとえば300秒に)変更しておく方法です。
たとえば、現在のTTLが86400秒(24時間)なら、変更の24時間以上前にTTLを300秒へ下げておきます。そうすれば、実際にIPアドレスなどを変更した時点では、世界中のキャッシュが短い期間で更新される状態になっています。
なお、TTLを変更した「後」では、すでに世界中に保存されている古いキャッシュには影響しないため、ここは注意が必要です。移転作業の際は、必ず事前に準備しておきましょう。
自分の環境のキャッシュをクリアする
自分の環境だけ古い情報が見えている場合は、手元のキャッシュを消すことで解決することがあります。
- Windows:コマンドプロンプトで
ipconfig /flushdnsを実行する - Mac:ターミナルで
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderを実行する - ブラウザを完全に終了して開き直す、または別のブラウザで開いてみる
- 別のネットワーク(スマートフォンのモバイル回線など)から確認してみる
hostsファイルで先に動作確認する
DNSの反映を待たずに、新しいサーバーでサイトが正しく動くかを確認したい場合は、自分のパソコンのhostsファイルに、ドメイン名と新しいサーバーのIPアドレスを書き込む方法があります。これにより、自分の環境だけ新しいサーバーを見ることができるため、公開前のテストに便利です。確認が終わったら、hostsファイルの記述は必ず削除しておきましょう。
焦って何度も設定を変更しない
反映が遅いからといって、何度も設定を書き換えたり、ネームサーバーを頻繁に切り替えたりすると、かえってキャッシュが混在して状況がわかりにくくなります。正しく設定したうえで、確認しながら待つのが基本です。
「反映待ち」ではなく、設定ミスの可能性もある
「反映されない」と思っていても、実は反映待ちではなく、設定そのものに問題があることもあります。次の点を確認してみましょう。
- 権威DNSサーバーに直接問い合わせたときに、期待した値が返ってくるか
- ドメインのネームサーバーが、意図したDNSサービスを向いているか(DNSを設定した場所と、実際に使われているネームサーバーが違う、という間違いは非常に多いです)
- レコードの値(IPアドレスやホスト名)に入力ミスがないか
- 同じホスト名に、古いレコードや競合するレコード(CNAMEとAレコードの併用など)が残っていないか
- サーバー側で、そのドメイン名でのアクセスを受け付ける設定(バーチャルホストやSSL証明書の設定など)が完了しているか
権威DNSサーバーの時点で正しい値が返らない場合は、反映待ちではなく設定の見直しが必要です。
よくある質問
本当に48時間も待たないといけませんか?
いいえ、多くの場合、数分から数時間で反映されます。「48時間」は、ネームサーバーの変更など、最も時間がかかりうるケースを想定した、余裕を持たせた案内です。
世界中で同時に反映されますか?
いいえ、同時にはなりません。それぞれのキャッシュサーバーが、自分の保存している情報の期限が切れたタイミングで、順次新しい情報を取得するため、地域や利用しているプロバイダによって反映のタイミングがずれます。
反映中、サイトが見えなくなることはありますか?
同じ内容のサイトを、古いサーバーと新しいサーバーの両方で公開しておけば、キャッシュの状態にかかわらず、どちらの環境でもサイトを表示できます。サーバー移転のときは、古いサーバーをすぐに止めず、反映が十分に進むまで並行して稼働させるのが安全です。
反映されたかを確実に知る方法はありますか?
世界中すべてのキャッシュを確認することはできませんが、権威DNSサーバーで正しい値が返っていること、主要な公開DNS(Google、Cloudflareなど)でも新しい値が返ってくることを確認できれば、実用上は反映されたと判断してよいでしょう。
まとめ
ドメインの反映に時間がかかる理由と対策を整理します。
- 「反映」の正体は、世界中のDNSキャッシュに残る古い情報が、期限切れになるまでの待ち時間である
- 反映が遅れる主な原因は、TTL、ネームサーバー変更、ネガティブキャッシュ、複数段階のキャッシュ、TTLを守らないキャッシュサーバーである
- 「最大48時間」は最悪ケースの目安であり、多くの場合はもっと早く反映される
- 権威DNSサーバーに直接問い合わせれば、設定が正しく登録されているかを確認できる
- 移転や変更の前にTTLを短くしておくのが、最も効果的な対策である
- 古いサーバーは、反映が十分に進むまで止めずに並行して運用する
DNSの反映待ちは、インターネットの仕組み上避けられないものですが、仕組みを理解しておけば、必要以上に焦らずに対処できます。ドメインの設定変更を行ったときは、ドメインチェッカーなどのツールを活用して、反映状況を確認しながら落ち着いて進めましょう。