世界地図とDNSサーバをイメージし、DNS変更が世界中に伝播していく様子を表した画像

DNS伝播を理解する:Webサイトの読み込み時間を短縮する秘訣

(更新:
著者: Ahona Rudra
翻訳: 東條 百々朱

この記事はPowerDMARCのブログ記事 How Long Does DNS Propagation Take? Tips and Checks の翻訳です。
Spelldataは、PowerDMARCの日本代理店です。
この記事は、PowerDMARCの許可を得て、翻訳しています。


主なポイント

  1. DNS変更が反映されるまでの時間は、利用する地域やISPのキャッシュ状況など、さまざまな要因によって異なります。
  2. DNS変更前にTTL(Time to Live)を短く設定すると、変更内容がより早く反映されやすくなります。
  3. ISPのキャッシュ運用やDNSインフラの状況は、DNS更新が反映される速度に大きく影響します。
  4. DNS変更が反映されたかどうかは、コマンドラインやオンラインツールを利用して確認できます。
  5. DNS構成が複雑になるほど反映に時間がかかる場合があるため、DNS設定はできるだけシンプルに保つことが重要です。

DNSレコードを変更した後、「DNSの変更はどのくらいで反映されるのだろう」と疑問に思う方も多いでしょう。
実際の反映時間は、ローカルDNSキャッシュやDNSリゾルバのキャッシュ状況、設定されているTTL(Time to Live)など、さまざまな要因によって異なります。
特に重要なのは、DNS変更の反映時間は地域やネットワーク環境によって異なるという点です。

これは、古いレコードが世界中の無数の独立したDNSリゾルバのキャッシュに残り続け、各リゾルバは自分がキャッシュしているコピーが失効した時点で初めて新しいレコードを取得するためです。
そのため、反映にかかる時間は、レコードのTTL設定やISPのキャッシュ更新ポリシといった要因によって決まります。

一般的には、DNS変更が反映されるまで数分から48時間程度かかり、場合によっては72時間ほど必要になることもあります。

では、なぜこれほど差が生じるのでしょうか。
本記事では、DNS伝播に影響する主な要因と、反映状況を確認する方法について詳しく解説します。

DNS伝播とは?

DNS伝播とは、世界中のキャッシュリゾルバがそれぞれ古いキャッシュレコードを失効させ、新しいレコードを取得することで、DNSの変更内容がインターネット全体で見えるようになるまでの時間を指します。

DNSは世界中に分散したサーバとリゾルバによって構成されているため、変更内容が即座に反映されるわけではありません。
そのため、キャッシュの仕組みや、各サーバがレコードを更新するタイミングの違いにより、変更内容が世界中へ反映されるまで一定の時間が必要になります。

DNS伝播にはどのくらい時間がかかりますか?

多くの場合、DNS変更は24〜48時間以内にあらゆる場所で反映され、すべてのDNSリゾルバへ完全に反映されるまで72時間程度かかる場合もあります。
しかし、多くの人が意外に思う点があります。
その間、何かが実際に世界中へ「押し出されている」わけではありません。
変更したレコードをインターネット上のすべてのDNSサーバへ配信するような仕組みは、存在しません。

変更を保存した瞬間から、権威DNSサーバ(そのレコードの正式な情報を保持しているサーバ)は、新しい値を即座に返し始めます。
権威DNSサーバへ直接問い合わせた人は、すぐに正しい答えを得られます。

遅延が生じるのは、権威DNSサーバへ直接問い合わせない、それ以外のすべての人たちです。
ほとんどのデバイスは、権威DNSサーバと直接やり取りすることはありません。
代わりに、ISPのDNSサーバやGoogle Public DNS、Cloudflareといったキャッシュ型のリゾルバへ問い合わせます。
インターネットを高速に保つため、これらのリゾルバはレコードのコピーを保存し、そのレコードのTTL(Time to Live)が許す限り、そのコピーを使い回します。
このタイマーが切れるまで、リゾルバは権威DNSサーバへ確認しに行くことなく、古い値を返し続けます。

世界中の無数のリゾルバは、それぞれ異なるタイミングでレコードをキャッシュしているため、TTLタイマーが切れるタイミングもそれぞれ異なります。
あるリゾルバは数分以内に新しいレコードを取得し、別のリゾルバは1時間後、また別のリゾルバは翌日になって取得する、といった具合です。
利用者側から見ると、これはあたかも変更が世界中へゆっくりと広がっていくように見えます。
しかし実際には、多数の独立したキャッシュが、それぞれ自分自身のスケジュールで失効しているだけです。

だからこそ、「伝播」とは実質的にTTLによって支配された待ち時間であり、変更前にTTLを短く設定しておくことが、反映を早める最も効果的な方法である理由でもあります。
これについては、以下で詳しく解説します。

DNS伝播時間に影響する要因

DNS変更が反映されるまでには通常24〜48時間程度かかりますが、状況によっては72時間近くかかることもあります。
その理由は、世界中のDNSネットワークで更新速度に影響を与えるさまざまな要因が存在するためです。
主な要因は次のとおりです。

1.TTL(Time to Live)の設定
TTLは、DNSレコードをDNSサーバがどのくらいキャッシュするかを示す値です。
TTLが長いほど古い情報が長く保持されるため、新しい情報が反映されるまで時間がかかります。
DNSレコードを変更する予定がある場合は、事前にTTLを短く設定しておくことで、変更後の反映時間を短縮できます。
2.インターネットサービスプロバイダ(ISP)
ISPは通信効率を高めるためにDNS情報をキャッシュしています。
ISPによってキャッシュの更新タイミングは異なるため、同じDNS変更でも利用しているISPによって反映速度に差が生じます。
3.DNSインフラとネットワーク負荷
利用者とDNSサーバとの距離やDNSサーバの負荷状況も、反映時間に影響します。
アクセスが集中しているDNSサーバやネットワーク負荷が高い環境では、更新内容が反映されるまで通常より時間がかかることがあります。
4.ローカルDNSキャッシュ
パソコンやスマートフォン、ルータ、企業ネットワークなどにはDNSキャッシュが保存されています。
このキャッシュが残っている場合、新しいDNS情報が公開されていても、古い情報が表示され続けることがあります。
必要に応じてDNSキャッシュを削除(フラッシュ)すると、新しい情報を取得しやすくなります。
5.クラウドDNSサービス
Google Cloud DNSやAmazon Route 53、Cloudflare DNSなどのクラウドDNSサービスでは、世界中のデータセンターへ高速にDNS情報を配信しています。
そのため、多くの場合は従来のDNSサービスより早く変更内容が反映されます。
ただし、利用するDNSリゾルバやキャッシュの状況によっては、反映まで時間がかかる場合もあります。

DNS伝播時間を短縮する方法

DNS変更をできるだけ早く反映させるには、次の方法が効果的です。

DNS変更が反映されたか早く確認する方法

世界中への反映が完了していなくても、ローカル環境では変更後のDNSレコードを早く確認できる場合があります。
主な方法は以下のとおりです。

DNS伝播の状況を確認する方法

DNSレコードを更新した後は、変更内容が正しく反映されたか確認することが重要です。
確認方法には、大きく分けて「手動で確認する方法」と「オンラインツールを利用する方法」の2つがあります。
なお、DNSの反映状況は地域や利用しているDNSリゾルバによって異なるため、場所によって結果が変わる場合があります。

手動で確認する方法

コマンドラインを利用してDNSレコードを確認できます。

Windows
コマンドプロンプトを開き、次のコマンドを実行します。

nslookup <ドメイン名>
更新されたIPアドレスやDNSレコードが表示されます。
macOS / Linux
ターミナルで次のいずれかのコマンドを実行します。

dig <ドメイン名>
または

host <ドメイン名>
まだDNS伝播が完了していない場合は、利用するDNSサーバによって異なる結果が表示されることがあります。

オンラインツールを利用する方法

コマンド操作を行いたくない場合は、DNS伝播確認ツールを利用すると便利です。
代表的なサービスには以下があります。

PowerDMARCでも、高度なDNS管理機能とあわせてDNS伝播状況を確認できます。
これらのサービスでは、世界各地のDNSリゾルバからDNSレコードを照会するため、自分のネットワーク以外でも変更内容が反映されているか確認できます。

DNS伝播時によくある問題

DNSサーバとWebサーバ間で正常に名前解決が行えない場合、Webサイトへアクセスできなかったり、DNSエラーが発生したりすることがあります。
主な原因は次のとおりです。

  1. サーバのIPアドレスがDNSレコードへ登録されていない
  2. サーバのIPアドレスを変更したものの、DNSレコードがまだ更新されていない
  3. サーバが停止している、またはネットワークから到達できない状態になっている

DNSタイムアウトも比較的よく発生する問題です。
多くの場合、DNSサーバが名前解決要求へ正常に応答できないことが原因となります。

DNSタイムアウトの対処方法

まずは、ルータやモデムが正しく設定されているか確認してください。
問題が解決しない場合は、ISPへ問い合わせ、DNS設定に問題がないか確認してもらうことをおすすめします。

また、デバイス側のDNS設定を変更し、Google Public DNSやCloudflare DNSなどのパブリックDNSを利用することで改善する場合もあります。
それでも解決しない場合は、端末側の設定やファームウェアが古いことが原因となっている可能性があります。
OSやネットワーク機器を最新の状態へ更新し、再度確認してください。

まとめ

DNS伝播とは、世界中の無数のキャッシュリゾルバが、それぞれ独立したタイミングで古いレコードを失効させ、新しいレコードを取得していくことで、変更内容がインターネット全体で見えるようになる現象です。
権威DNSサーバ自体は変更を即座に反映しますが、各リゾルバがTTLに従ってその古いコピーを保持し続けるため、通常は24〜48時間程度、場合によっては最大72時間ほどかけて、結果として世界中へ反映されたように見えるまでの時間が生じます。
これは何らかの仕組みが能動的に変更を配信しているのではなく、無数の独立したキャッシュがそれぞれのスケジュールで失効しているだけの、DNSの正常な動作です。

反映をスムーズに進めるには、事前にTTLを短く設定しておくことが最も効果的です。
そのほか、必要に応じてDNSキャッシュを削除し、DNS構成をできるだけシンプルに保つことも有効です。
また、パブリックDNSリゾルバやオンラインのDNS伝播確認ツールを利用することで、世界各地での反映状況を効率よく確認できます。
DNS変更を行う際は事前に十分な計画を立て、PowerDMARCのような信頼できるDNS管理・監視ツールを活用することで、ダウンタイムを最小限に抑えながら、安全かつ効率的にDNSを運用できます。

よくある質問(FAQ)

DNS更新とTTL(Time to Live)の関係は何ですか?
TTL(Time to Live)は、DNSレコードをDNSサーバがどのくらいの期間キャッシュするかを示す値です。
IPアドレスの変更や新しいホスト名の追加など、DNSレコードを更新した際には、TTLの値によって古い情報が破棄され、新しい情報へ切り替わるタイミングが決まります。
DMARCレコードでは、更新頻度と安定性のバランスを考慮し、TTLを1時間(3600秒)程度に設定することが一般的です。
DMARCレコードがDNSへ反映されるまでどのくらいかかりますか?
DMARCレコードの変更内容が完全に反映されるまでには、最大72時間程度かかる場合があります。
ただし、多くの場合は24時間以内に反映されます。

DMARCを設定する際は、TXTレコードの内容に誤りがないこと、正しいサブドメインへ登録されていること、さらにレポート送信設定(RUA/RUF)が適切に構成されていることを確認してください。
DMARCの運用や監視を効率化するには、PowerDMARCのDMARC分析ツールの利用がおすすめです。
DNS伝播はメール配信へ影響しますか?
はい、DNS伝播中はメールの送受信へ影響が及ぶ場合があります。
メールシステムはSPF、DKIM、DMARCなどのDNSレコードを参照して送信元を認証します。

そのため、DNS変更がまだ十分に反映されていない間は、メールが配信されなかったり、迷惑メールとして判定されたりする可能性があります。
場合によっては、正当なメールでも認証に失敗することがあります。
SMTPにDNSは必要ですか?
はい、SMTP(Simple Mail Transfer Protocol)にはDNSが不可欠です。
DNSがなければ、SMTPはメールサーバを特定したり、送信先ドメインの情報やメール認証レコードを確認したりすることができません。
Google Public DNSではどのくらいで更新が反映されますか?
TTLの設定にもよりますが、Google Public DNSでは、多くの場合、数分から数時間程度で変更内容が反映されます。
Cloudflare DNSではどのくらいで更新が反映されますか?
Cloudflare DNSは更新速度が非常に速く、多くの場合5分以内に変更内容が反映されます。
ただし、利用者側のDNSキャッシュやブラウザーキャッシュが残っている場合は、最新の情報が表示されるまで時間がかかることがあります。