浸透いうな!

DNSの引越しをしたけどうまく切り替わらない。なかなか浸透しない。業者に問い合わせると「DNSの浸透には数日かかることもあります。お待ちください」と言われた。 、、、という話をよく聞きますが、「浸透」(伝播、伝搬、浸潤、反映などとも呼ばれる)ってなんでしょう? DNSの設定を変更するのは「浸透」という謎の現象に託す神頼みのような作業なのでしょうか。

2011.10.16 追記:「浸透」と言っている例

DNSの仕組み

まず、DNSの仕組みと、特にキャッシュの動作について解説します。...と思いましたが、とっても大変なので省略します。ただ、権威サーバに登録された情報が世界中のキャッシュサーバに配信されるなどという仕組みは DNS には存在しません。浸透という人はそう思っているようですが。(こんなふうに)

「浸透」という言葉で騙されていませんか?

事前に変更したいDNSのレコードのTTLを短くして、キャッシュの有効期限が過ぎたらすぐに切り替わってもよさそうなものですね。でもうまく切り替わらないという話をよく聞きます。そんなとき、したり顔で言われるのは、「世の中TTLに従わないDNSキャッシュサーバがたくさんあるのさ」という言葉です。でもTTLを無視して古いキャッシュを長く持ちつづけるキャッシュサーバがそんなにたくさんあるのでしょうか。具体例があればぜひ教えてください。
(やまやさんからコメント頂きました。情報感謝。困ったクライアントはありますねぇ。これはDNS運用サイドでは考慮しきれませんから、WWWサーバなりメールサーバなりそれぞれで対処するしかないでしょう。「DNSの浸透」とは別問題と考えています)

2014.3.23 追記: 「浸透おそい」の原因はブラウザでしょ (Firefox編) も参照のこと。

2018.10.15 追記: これはルートゾーンKSKロールオーバ時のデータです。TTL に従わないキャッシュサーバなんてそうそう存在しないってことを示していますね。

私の経験上、DNSの応答が期待通りにうまく切り替わらないのは、ほとんどの場合が設定ミス、運用ミスです。それを「浸透には時間がかかる」という言葉でごまかされているのです。以下にそれらの具体例をあげます。

浸透いうな(その0): キャッシュ、ネガティブキャッシュを理解せず間違った確認方法で、浸透いうな

論外だと思って書いていませんでしたが、追記しておきます。コンテンツサーバにゾーンデータが登録されたことを確認もしないうちからキャッシュサーバに問い合わせ、ネガティブキャッシュを喰らって浸透しないと悩んでいる人が結構いるようです。

また未だに TTL に従わないキャッシュサーバがいるという言説を見かけますが、実例を示してくれた人は皆無です。試しに、ISPのキャッシュDNSサーバはTTLを越えてキャッシュを保持するかテストしてみましたが、そういうものは見つかっていません。

浸透いうな(その1): キャッシュ兼用コンテンツサーバで、浸透いうな

DNSキャッシュサーバとDNSコンテンツサーバ(権威サーバ)を兼用してはいけません。兼用すると、そのキャッシュサーバの利用者はいつまでも削除を忘れたデータを見せつづけられるかもしれません。あなただけが古いデータを見ているなんてこともあるかもしれません。自分のドメインのNSとなっているサーバにどこか外部の名前を問い合わせてみましょう。答えが返ってきたら危ない実例

浸透いうな(その2): ゾーン転送のトラブルに気づかないまま、浸透いうな

ゾーン転送などによる権威サーバ間の同期がうまくいっていないと、スレーブのサーバのゾーンデータがexpireするまで(よくあるのは1週間)、あるいはそのマシンが廃棄されるまで(実話w) 古いデータが世界へまき散らされ続けます。各サーバの設定を確認しましょう。(詳細はあとで書く w )

浸透いうな(その3): まずいNS設定を残しておいて、浸透いうな ...これがたぶん浸透の正体!

この状況で「浸透」はおきるでしょうか?
あまり知られていないかもしれませんが、NSを変更する場合、これが意外と「浸透が遅い」と言われる現象の主犯かもしれません。放置された古いデータが、いつまでも世界のキャッシュサーバを古い状態のまま更新し続ける可能性があります。(実例1,実例2が観測できました)
追記: 「ghost domain names(幽霊ドメイン名)」脆弱性と名付けられました。

浸透いうな(その4): 適切な引越し手順を踏まないで、浸透いうな

以前ここに書いていた推奨方法は現在の多くの実装にある毒入れ脆弱性を前提としていたため削除しました。以下をどうぞ。(2017.1.21 改訂)

自サーバ(権威サーバ)だけ設定変更して、委譲元(レジストリ)に変更を依頼していなかったという初歩的なミスもよく目にします。



注:「浸透」と呼ばれる現象には権威サーバのデータ更新の問題、キャッシュサーバのキャッシュの更新の問題、場合によってはブラウザなどクライアント側のキャッシュ機構の更新の問題など、いろいろ複合的な現象を含んでいます。どういう局面での「浸透」と呼ばれる現象をさすのか、いろいろケースバイケース整理する必要があります。答えを求めるのではなく、仕組みを学び理解することをお勧めします。

2011.10.14追記: 引越のシミュレーション実験をしてみました。

2014.04.04追記: こちらのスライド「浸透いうな ~DNSセキュリティ概論~」もどうぞ

2016.03.28追記: なぜ浸透と言ってはいけないのか?もどうぞ

2018.01.16追記: 浸透とやらを待っている人は何を待っているのか?もどうぞ

2019.12.11追記: 浸透いうなシミュレーション (浸透などという現象がないことがわかるシミュレーション)


by 浸透いうなの会 会長 T.Suzuki / Reflection / 2011.01.15 (2011.02.03, 03.17, 10.16修正)
インターネット崩壊について考えるためのページはこちら / JPNIC不当課金裁判への支援ありがとうございました。