トップ 検索 一覧 差分 ソース ヘルプ RSS ログイン

DNSの反映時間の例外

DNSの反映時間の例外

DNS関連の変更がネット全体に行き渡るまでの時間は、最大48時間とか72時間と説明されることが多いが、これには例外がある。当該ドメインを最終的に管轄するDNSサーバ自体が応答しない状態から回復する場合だ。

先日、猫科研究所の入っているサーバにて長時間(4日程度)の停止があった。そのときに某掲示板を見ていて知った情報を元に調査したメモ。

 名前解決失敗の原因とBINDの動作

あるドメインのDNSが引けなかった場合に、その原因には、当該ドメイン(ゾーン)を最終的に管轄するDNSサーバが…

  1. 応答を返したがその内容が「該当なし」の場合
  2. ダウンしているなどでDNSサーバ自体が「応答なし」の場合

が考えられる。

この時、DNSサーバによく使用されるBINDの8/9ではそれぞれのケースに対して以下のように動作する、らしい。

  1. 「該当なし」→該当なしのキャッシュ(ネガティブキャッシュ)を保持する
  2. 「応答なし」→何もキャッシュしない

後者のケースがキャッシュしないために例外ケースとなる。

 実際の動作例を考える

up-cat.netの場合、

  • 上位である.netの管理サーバへのup-cat.netの登録ミス(Lame Delegation)
  • up-cat.netを管轄するDNSサーバ自体のダウン

などにより「DNSサーバの応答なし」になった場合、クライアントマシンが直接問い合わせる先であるところのISPなどのDNSサーバ(キャッシュサーバ)には、ネガティブキャッシュは残らない

このとき、クライアントマシンでup-cat.netの名前解決を行おうとすると、その問い合わせは毎回up-cat.netを管轄するDNSサーバまで到達しようとしている(が、できないでいる)。結果としてup-cat.netのDNSサーバが回復すれば、即座に回復するはずだ。

このように、DNSサーバ自体がおかしい場合には、その回復は速やかに反映される。

 例外の例外

クライアントマシンから見た場合、上記の例外に当てはまるにも関わらず、即座に反映しないように見える場合がある。これは名前解決の問い合わせの経路上に「応答なし」を「該当なし」と同様にキャッシュしてしまうDNSサーバがある場合に発生する。具体例としては、

  • 家庭内において、BB回線+ルータ+DHCP等の標準的な構成で、ルータがDNSの一次問い合わせ先となっており、かつそのルータが「応答なし」をキャッシュする場合。
  • ISP等のDNSサーバ(キャッシュサーバ)が「応答なし」をキャッシュする場合。(BIND8/9ではないなど?)

といったケースが考えられる。

このために筆者の家庭内LANではルータのDNSサーバ機能は使用していない。ルータのDHCP機能設定で、ISP(@nifty)のDNSサーバのIPアドレスを直接配布するように設定している。幸いにも@niftyのDNSサーバは「応答なしをキャッシュしない」ようで、助かっている。

注意:このような設定は名前解決のたびにISPまで問い合わせが行くため、無駄なトラフィック増加と応答速度低下に繋がる。サーバを持たない一般の方には何の得もないので注意。また、家庭内のルータが「応答なし」をキャッシュしないのであればルータのDNSサーバ機能を使用していても問題はない。

参考:http://jprs.jp/tech/notice/2003-05-20-dnsqc-lame-delegation.html

最終更新時間:2008年06月11日 14時27分19秒