この広告は、90日以上更新していないブログに表示しています。
「後はDNS の浸透を待つだけ」とかよく聞きますが、DNS という技術に「浸透」という単語は存在しません。
それどころか、以下の点において、理工系の人間なら誰でも血圧が上がる「マイナスイオン」と同等です。お近くにいるDNS エンジニアの血圧が上がるので使うの止めましょう!*1
「DNS はインフラ」ならともかく、多少なりともDNS で飯食ってるエンジニアは使うのを止めよう!
DNS 関連RFC のどこにも浸透という単語は出てこないですし、浸透という単語の定義についてまともに解説してる Web ページがあったら教えてほしいです。
「DNS 浸透」でぐぐってるだけで血圧上がってきますよ、うわぁぁぁぁ!
定義がない用語なので「浸透」を使うのはやめよう!
巷でよく聞く「浸透」と言う単語は、以下に挙げる複数の問題を混同して扱っているので有害です。
この混同が既に蔓延していることが、「DNS がTTL きっかりに切り替わらないこと」を「浸透」と定義すればいいじゃない、という考えに私が否定的な理由です。
さらに、以下の例のように、人によって「浸透」の定義がズレてるのもマズさを加速させていると思います。*7
前二つの不勉強な連中はおいておくにしても、後ろ二つは論点が違えど問題点としては正しいので、議論がすれ違う原因のように見えます。さらに、上では省略しましたが、DNS NOTIFY がコケてるとか同様の現象を引き起こすオペミス・誤解は山ほどあるので、それらがさらに議論を発散させていきます。
誤解を招くので「浸透」はやめよう!
「DNS には浸透という概念は存在しない」とか良く聞きますが、個人的にはこの意見は間違っていると思います。「TTL を考慮せずDNS をキャッシュするアプリケーションの存在」により、正しいDNS オペレーションを行ったとしてもTTL きっかりにトラフィックが切り替わらず、じわじわと減っていく世界になってしまいました。
アプリケーションで無造作にDNS をキャッシュするのはやめよう!
また、正しく A/AAAA レコードを切り替えたのに古い IP アドレスへアクセスが続く、という現象に頭を打ち付ける回数が多いエンジニアでもっとも人数が多いのは、コンテンツプロバイダの運用エンジニアだと私は思います。しかし、ウェブブラウザをvim/emacs のごとく使うのでウェブブラウザの挙動について詳しく、なかなか切り替わらない現象を、DNS という仕組みを誤解せず、原因はアプリのDNS キャッシュであると正しく見抜いています。*8
と言うわけで、「アプリケーションでのTTL を無視したDNS キャッシュ」のみについて「浸透」と定義すりゃ、割としっくりくる気はします。かくいう私も、以前、ブラウザでのDNS キャッシュがなかなか抜けないことを指して「浸透」と言っていました。
しかし、このエントリを書くに当たって「浸透の定義」を調べるべく「DNS 浸透」でぐぐっていたら、言ってること三者三様で議論が錯綜し、頭痛がしてきて考えが変わりました。この言葉使っちゃいかん…。
誤解を招くので「浸透」はやめよう!
冒頭の言葉を*9正しく言い換えるなら、「後はアプリのキャッシュ切れを待つだけ」となります。
Web に限るなら「後はブラウザのDNS キャッシュ切れを待つだけ」ですね。
このアプリケーションでのキャッシュを除けば、DNS を正しくオペレーションすることでトラフィックはTTL 期間で減少し、カッチリ切り替わります。*10 A レコードの書き換えだけならそもそもオペミスの余地が無い。*11
せっかく、「アプリのDNS キャッシュが原因」と本質を見抜いているのだから、「浸透」などという気持ち悪い言葉を使わずに、「アプリのDNS キャッシュ」と言いましょう!*12
「浸透」という単語はとても良く燃えます。コメント欄やブコメを炎上させて頂ければさいわいです。
また、自分の知識に間違いなんぞいくらでもあるわーと思っている若者なので、間違いのご指摘なども辛辣な言葉で思う存分申して頂ければと思います。喜びます。
と言うかですね、エンジニアがうじゃうじゃいるところで「DNS の浸透」と発言すると、怖い人*14を召喚してしまう可能性が高いのでホントに止めてください。マジで。燃え燃えキュン。
私が書いたこのエントリ自体も、特定の視点からの議論です。他の方の意見も見てよく消化することをお薦めします。また、 geekpage さんの記事は、技術的背景なども説明してあるので、目を通したあとに再度このエントリを読むと理解が深まると思います。
*2:キャッシュサーバを多段にしても段数分だけ保持される最長時間が伸びたりはしません。1段目のキャッシュサーバがカウントダウン済みのTTL を返却するので、コンテンツサーバがTTL 600 なら 2段目のキャッシュも 600秒以内に切れます。 HTTP とは勝手が違うぞ!
*3:いわゆるブロードバンドルータと呼ばれる製品の一部はこれに該当する挙動をしますが、絶対数はすごく少ないです。取り合えず 1% 以下であるとは断言出来ます。
*4:JPRS の資料が分かりやすく正確なのでお読み下さい。http://jprs.jp/tech/material/iw2011-lunch-L1-01.pdf
*5:少なくともOpera は一度引いたレコードを起動中ずっとキャッシュし続けパージしません。chrome とかIE も怪しくない?
*6:DNS NOTIFY がコケてるとかオペミスのバリエーションはいくらでもあります
*7:独断と偏見に満ちています。先に謝りますごめんなさいごめんなさい!
*8:少なくとも私の観測範囲では。
*9:多くの場合において
*10:TTL 無視のブロードバンドルータは観測不能なほど少ないです!
*12:「マイナスイオン」じゃなくて「オゾン」とか言いましょう!
*13:単純なAレコードの切り替えに限る。ちゃんと理解してることは前提。バッタ本という素晴らしい本があるので前 2/3 ぐらい読破すれば OK さっ!
*14:僕も噛みます
引用をストックしました
引用するにはまずログインしてください
引用をストックできませんでした。再度お試しください
限定公開記事のため引用できません。