質問: dnsサーバの同士はどのようにデータのやり取りをしてるのでしょうか? dnsサーバについての質問です。 最近dnsサーバ構築を行いまして、 少し疑問を持ちました。 以下のようなディレクトリ構造で、 それぞれのドメインにdnsサーバはありますよね。 .(ルート) | |-------| jp com | | |----|-----| co ne ac | |-----|-----| hoge foo hare | | | x www www 例えば、hoge社のxからfoo社のwwwのipアドレスを取る時に、hoge社のxは、以下の動きをしますよね。 1. x---> hoge社のdnsサーバに問い合わせ 2. hoge社のdnsは[.(ルート)]dnsに問い合わせ 3. [.(ルート)]のdnsからの照会を受けて、 hoge社のdnsは今度はcoのdnsに問い合わせる。 のようにトップドメインから問い合わせて行くと理解しました. それでは、coドメインにhare社が新しくdnsサーバを構築した場合を考えてみます。 すると、coドメインのdnsサーバはhareのdnsサーバを登録し、dnsサーバのプロセスを再起動かけているのでしょうか? 現在、盛んにdnsサーバが構築されている中で、 再起動を書けていたら大変じゃないかなぁと思いました. どっかで、dnsサーバを構築しても2,3日ほっとかないと、 他のdnsに認識されないみたいな事を聞いたのですが、 それというのはdnsサーバ同士で情報交換をする機構を持っているという事でしょうか? 長くなってしまってすいません。 よろしくお願いします.
回答: dnsの問い合わせの仕組みについては正しいと思います。 新たにdnsサーバが追加された場合に関しては、まず上位のdns(質問の例の場合はcoドメインのdns)のデータベースを更新(追加)します。 そしてその更新を反映させる為に、dnsサーバのプロセスを再起動してもいいですが、データベースのリロードを実行するコマンドが用意されていて、このコマンドを実行することでプロセスを再起動することなく新しい情報が更新されます。 他のdnsサーバの認識に時間がかかるのは、各dnsサーバがキャッシュを行っている為です。 過去に問い合わせた結果を記憶(キャッシュ)しておき、同じ問い合わせに対してその結果を返すことで、リプライ時間の短縮、他のdnsサーバの負担軽減を目的としています。 このキャッシュの保持時間は各dnsサーバで設定されています。