DNSプロパゲーションとは、DNSの設定を変更したあと、その内容が世界中のサーバーに行き渡るまでの期間や、その伝わっていく現象のことです。「プロパゲーション(propagation)」は英語で「伝播(でんぱ)」を意味します。日本語では「DNSの浸透」と呼ばれることもあります。
イメージとしては、DNSプロパゲーションは引っ越しの住所変更が各方面に伝わるまでの時間です。転居届を出しても、友人や取引先の手元にある住所録がすぐ書き換わるわけではありません。古い住所録を見ている人は、しばらく旧住所に郵便を送り続けてしまいます。
そのため設定変更の直後は、人によって新しい設定が見えたり、古い設定が見えたりするという不安定な状態が生じます。「自分では表示が変わったのに、同僚の画面ではまだ変わらない」といった現象は、これが原因です。
なぜ時間がかかるのか
原因は、DNSのキャッシュにあります。世界中のDNSサーバーは、一度調べた情報をしばらく手元に保存し、同じ問い合わせには保存済みの答えを返します。これによって応答が速くなる一方、保存期間が切れるまでは古い情報が使われ続けるのです。
この保存期間を決めているのがTTL(Time To Live)という設定値です。TTLが3600秒(1時間)なら、最大で1時間は古い情報が残り続ける可能性があります。
反映までの目安
変更内容や環境によって差がありますが、おおよその目安は次のとおりです。
| 変更内容 | 目安の時間 | 影響 |
|---|---|---|
| Aレコードの変更 | 数分〜数時間 | TTLに依存 |
| ネームサーバーの変更 | 数時間〜2日程度 | 影響が大きい |
| 新規レコードの追加 | 比較的短時間 | キャッシュが少ない |
影響を小さくする方法
もっとも効果的なのが、変更前にTTLを短く設定しておくことです。切り替えの数日前にTTLを300秒などに縮めておけば、実際の変更時には短時間で反映されます。作業が終わったら元の値に戻しておきましょう。
また、サーバーの移転では新旧どちらでも動く状態をしばらく維持するのが定石です。利用者がどちらを見ても問題が起きないようにしておけば、伝播中のトラブルを防げます。
確認の方法
反映状況は、専用の確認サイトを使うと分かりやすく調べられます。世界各地から見たときに新旧どちらの情報が返るかを一覧で表示してくれるため、伝播の進み具合を把握できます。慌てて設定を触り直すと状況が複雑になるため、時間をおいて様子を見ることが大切です。
なお「浸透」という表現は広く使われているものの、水がしみ込むように少しずつ広がるわけではありません。実際には、各サーバーのキャッシュの期限が切れたタイミングで個別に切り替わるだけです。この仕組みを理解しておくと、なぜ環境によって見え方が違うのかも納得できるでしょう。

コメント