DNS 浸透とは?反映の確認方法と時間
目次
この記事でわかること
DNS の設定を変えたあと、「反映されるまで最大 24 時間かかります」と案内された経験を持つ Web 担当者は多いはずです。このとき使われる「DNS 浸透(propagation)」という言葉は、実は仕組みを正しく表していません。
この記事では、次のことがわかります。
- 「DNS 浸透」が誤解を招く俗称である理由
- 実際に起きていること(TTL とキャッシュ)の正しい理解
- 反映されたかを確実に確認する実務的な手順
- 変更前に反映を速くしておくテクニックと、遅いときの切り分け
仕組みを正しく理解すると、「いつ反映されるか」を待つのではなく、自分で計算し、確認できるようになります。
「DNS 浸透」は誤解を招く俗称
まず結論から。DNS の変更は、水が紙にしみ込むように世界へじわじわ「浸透」していくわけではありません。実際に起きているのは、各 DNS リゾルバ(問い合わせを代行するサーバー)が、古い値を一定時間だけ手元にキャッシュしている、ただそれだけです。
「浸透」というイメージだと、次のような誤解が生まれます。
- 変更した瞬間から、世界中のサーバーへ少しずつ情報が広がっていく
- だから全員に行き渡るまで待つしかない
- 待ち時間は運やタイミングで決まり、コントロールできない
どれも正しくありません。あなたの権威 DNS サーバー(そのドメインの正解を持つサーバー)は、変更した瞬間にすぐ新しい値を返します。情報が広がるのを待つ必要はありません。問題になるのは、世界中のリゾルバが「以前に問い合わせた古い答え」をいつまで覚えているか、という一点だけです。
この覚えている時間を決めているのが TTL です。つまり待ち時間は偶然ではなく、レコードに書かれた数値であらかじめ決まっています。
実際に起きていること:TTL とキャッシュ
DNS リゾルバは、多くの利用者からの問い合わせをさばくため、一度取得した答えを一定時間キャッシュ(一時保存)して使い回します。毎回権威サーバーに問い合わせると、負荷も応答時間も増えてしまうからです。
このキャッシュの有効期間を秒単位で指定するのが TTL(Time To Live)です。TTL が意味するのはただ一つ、「リゾルバはこの秒数を超えてキャッシュを使ってはならない」ということです。代表的な値を並べると次のとおりです。
- TTL 300 秒(5 分):短め。変更が近いときに使う
- TTL 3600 秒(1 時間):標準的な設定
- TTL 86400 秒(24 時間):長め。安定したレコード向け
ここから「DNS は反映に 24 時間かかる」という俗説の正体が見えてきます。変更前のレコードに TTL 86400 秒(24 時間)が設定されていた場合、すでに古い値をキャッシュしているリゾルバは、最大で 24 時間そのキャッシュを使い続けます。逆に言えば、まだ一度も問い合わせていないリゾルバや、キャッシュが切れたリゾルバは、即座に新しい値を取得します。
つまり「全員一律で 24 時間かかる」のではなく、「各リゾルバが、自分のキャッシュの残り時間ぶんだけ古い値を返し続ける」のが実態です。キャッシュは権威サーバーだけでなく、ブラウザ、OS、社内のネットワーク機器、プロバイダのリゾルバと、複数の層に存在します。これが「人によって見える結果が違う」現象の正体です。
反映されたかを確認する実務的な方法
「浸透待ち」と曖昧に待つのではなく、どこまで反映されたかを段階的に確認しましょう。順番が大切です。
手順 1:権威 DNS サーバーへ直接問い合わせる
最初に確認すべきは「正解そのもの」です。権威サーバーが新しい値を返していなければ、設定がそもそも保存されていないか、書き方を誤っています。キャッシュの問題以前です。
dig コマンドが使えるなら、対象ドメインの権威サーバーを指定して直接問い合わせます。ここで新しい値が返れば、設定自体は正しく完了しています。レコード種別ごとの確認手順は DNS レコード(SPF / DKIM / DMARC)の確認方法 で詳しく解説しています。
手順 2:複数のパブリック DNS で確認する
権威サーバーが正しいと確認できたら、次は世間のリゾルバがどう見えているかです。代表的なパブリック DNS を指定して、同じドメインを引き比べます。
dig @8.8.8.8 example.com (Google Public DNS)
dig @1.1.1.1 example.com (Cloudflare)
dig @9.9.9.9 example.com (Quad9)
返ってくる値が権威サーバーと一致していれば、そのリゾルバは反映済みです。古い値を返すリゾルバがあれば、まだキャッシュが切れていない(反映途中)とわかります。Windows なら nslookup example.com 8.8.8.8 のように、サーバーを後ろに指定して同じ確認ができます。
手順 3:オンラインチェッカーで世界の状況を見る
自分の環境からだけでは、海外を含む各地のリゾルバの状況まではわかりません。世界各地の拠点から一斉に問い合わせて結果を一覧表示するオンラインチェッカーを使うと、地域ごとの反映状況をまとめて把握できます。多くの拠点で新しい値が表示されていれば、ほぼ全体に行き渡ったと判断できます。
メール認証レコードのように反映の意味が複数あるケースは切り分けが要ります。具体例は DMARC は反映に何日かかる? で TTL の数値とあわせて解説しています。
速くする工夫と、遅いときの切り分け
変更前に TTL を短くしておく
反映を速くする最大のコツは、変更を予定したら「その前に」TTL を短くしておくことです。たとえば普段 TTL 3600 秒(1 時間)で運用しているレコードを、変更予定の数日前に TTL 300 秒(5 分)へ下げておきます。
すると、世界中のリゾルバが順次「5 分しか覚えてはいけない」という新しい指示を受け取ります。その状態で本番のレコード変更を行えば、古い値のキャッシュは最大でも 5 分で切れます。サーバー移転やメール設定の切り替えなど、ダウンタイムを避けたい作業ではこの事前準備が効きます。落ち着いたら TTL を元の値へ戻しておきましょう。
注意点として、TTL を下げる効果が出るのは「下げた TTL のレコード自体が、それ以前の TTL ぶんだけ行き渡ってから」です。直前に下げても、古い長い TTL のキャッシュが残っている間は意味がありません。余裕を持って下げておくのが鉄則です。
反映が遅いと感じたときの切り分け
待っても新しい値が見えないときは、次の順で原因を切り分けます。
- 権威サーバーは新しい値を返しているか:返していなければ設定ミス。キャッシュの問題ではありません
- 古い TTL は何秒だったか:変更前の TTL を確認すれば、最大待ち時間が計算できます。86400 秒(24 時間)なら最大 24 時間です
- 手元のキャッシュが残っていないか:自分の PC やブラウザ、社内ネットワークがキャッシュしている可能性があります。OS のキャッシュをクリアし、別回線(スマートフォンのモバイル回線など)からも確認します
- パブリック DNS では見えるか:手順 2 の引き比べで、外から見れば反映済みなのに自分だけ古い、という状況を見分けられます
この 4 点を順に見れば、「ただ待つしかない」状態から、「あと何分でキャッシュが切れる」と根拠を持って判断できる状態に変わります。
よくある質問
DNS の「浸透」とは何ですか?
「浸透」は誤解を招く俗称です。実際は各 DNS リゾルバが古い値を TTL の期間だけキャッシュしているだけで、情報が世界へじわじわ広がるわけではありません。権威サーバーは変更した瞬間に新しい値を返します。
DNS の変更が反映されるまでどれくらいかかりますか?
待ち時間は、変更前のレコードに設定されていた TTL で決まります。TTL が 86400 秒(24 時間)なら、古い値をキャッシュ済みのリゾルバは最大 24 時間そのキャッシュを使い続けます。
反映を速くするにはどうすればよいですか?
変更を予定したら、その数日前にあらかじめ TTL を短く(たとえば 300 秒)しておきます。すると本番変更後の古いキャッシュは最大でも数分で切れます。落ち着いたら TTL を元の値に戻します。
まとめ:待つのではなく、確認する
DNS は世界へ「浸透」していくのではなく、各リゾルバが TTL に従って古い値をキャッシュしているだけです。だから反映時間は偶然ではなく、TTL という数値で前もって決まっています。権威サーバー、複数のパブリック DNS、オンラインチェッカーの順で確認すれば、どこまで反映されたかを自分で見極められます。
とはいえ、TTL の設定やレコードの書き方を一つ間違えると、メールが届かなくなるなど業務に直結する事故につながります。自社ドメインの DNS 設定やメール認証が今どうなっているか不安な Web 担当者は、ドメイン番人の無料診断 でまとめてチェックしてみてください。設定の状態をツールが自動で確認し、改善すべき点を整理してお渡しします。