ドメインの構造とDNS
冒頭で、「一台のPCが世界中のすべてのコンピュータとそのIPアドレスを記憶している必要がない」ということを書きました。
では、一台のPCがすべてを担う必要がないようにするためには、どうすればいいのでしょうか。
このツリー構造をもつドメインに合わせて、記憶・管理するべき内容を複数のサーバーで分散すればよいのです。
WWW.FSV.JP で例を示すなら、下記のようになります。
ルートサーバー(ルートDNSサーバー)
JPについて管理するサーバー(DNSサーバー)
FSV.JP について管理するサーバー(DNSサーバー)
このように複数のサーバーで分散するのです。
もっと具体的に説明しましょう。
私が会社のPCから WWW.FSV.JP がどこのIPアドレスなのかを問い合わせたいとします。
会社のPCはそのIPアドレスを知りませんから、どこかのDNSサーバーに問い合わせることになります。
仮に、社内にあるDNSサーバーに問い合わせることにしましょう。
このDNSサーバーは、いきなり FSV.JP について管理しているDNSサーバーに問い合わせることはしません。
もしそのような仕組みなら、他のドメイン ― たとえば WWW.FSV.JP ― について問い合わせを受けたときも FSV.JP について管理しているDNSサーバーを知っている必要があります。
つまり世界中のありとあらゆるDNSサーバーを記憶しておく必要がでてくるのです。
実はDNSサーバは「ルートDNSサーバー」という世界に13台しかないサーバーを知っているだけでよいのです。
どのDNSサーバーもこの「ルートDNSサーバー」だけはどこのIPアドレスにあるかを知っており、まずはそこに問い合わせることからはじめます。
WWW.FSV.JP についての問い合わせの流れ
<Step 1>
まずルートDNSサーバーに「JPドメインについて知っているサーバーのIPアドレスが知りたいんだけど・・・」と問い合わせます。
するとルートDNSサーバーは「JPを管理しているDNSサーバーなら知ってるから、これに聞いてみてよ」と答えてくれます。
<Step 2>
そして、JPについて管理しているDNSサーバに問い合わせます。
すると、このDNSサーバーは「FSV.JP を管理しているDNSサーバーがこれだよ」と答えます。
<Step 3>
次に FSV.JP について管理しているDNSサーバーに問い合わせます。
すると、このDNSサーバーは「WWW.FSV.JP のIPアドレスは 203.183.220.196 だよ」と答えてくれるのです。
こうやって管理するべき領域を分散することによってDNSという仕組みが成り立っています(これを権限の委譲といいます)。
この仕組みにより一台のPCに負荷が集中することなく、インターネット上に接続された世界中のコンピュータのIPアドレスを知ることができるのです。
|