2004年12月16日

DNSのキャッシュ

某サイトがアクセス不能になった。DNSの管理とWEBサーバの管理は別会社なのだが、先方はWEBサーバ管理会社を疑った。しかし、原因はDNSの期限切れだった。DNS管理会社に電話で連絡したら、すぐに復旧した。昔は1〜2週間は浸透せずダメだったような気がするが・・・。
昔は、正しい情報も、ダメな情報も、キャッシュで記憶している時間が同じだった。それが週レベルの時間になっていたため、一度ダメな情報がキャッシュされると、困ったことになっていた。よくやってしまうのが、設定前に念のためにnslookupしてしまうことである。たとえば、これから www.rukihena.com を設定しようとしたら、思わず nslookup www.rukihena.com と手が滑ってしまうのである。それにより、www.rukihena.com は存在しないよ、という情報が1週間の期限付きでキャッシュされてしまう。その後いくら正しい設定をしても、キャッシュが can't find とか答えてしまう。DNSの設定の難しさの原因はそこらへんにあると思う。
そこで、RFC2308 で、ダメキャッシュはもっと短い時間にするよう提唱された。1998年のことである。しかし、一度広まった設定例は多くの自宅鯖房にコピーされ、設定メモとしてWEBで公開され、都市伝説のように古い設定例のまま広まってしまっている。
また、DynamicDNSが普及して、ダメキャッシュも普通のキャッシュも短く設定するのが流行のようだ。意図的にキャッシュを短くすれば、かなり短時間のうちに復旧できるようになる。
昔に比べて桁違いに早くなった処理能力と回線速度を考えれば、キャッシュの時間を桁違いに短くしても、そう問題が起きる事は無いのだろう。

Posted by rukihena at 16:23:00
コメント