7.2 Domain Name Service (DNS)

ネットワーク層までの議論で見てきたように、通信の基本はIPアドレスです。 しかし、こうしたIPアドレスを覚えるのは人間にとっては中々難しいことです ので、名前をつけるという要求が当然芽生えました。こうした名前は、実は インターネットの初期においては、名前とIPアドレスの対応を書いたファイル を見ることによってなされました。このファイルはインターネット全体に (と言っても小さなコミュニティだったのですが)配られていました。しかし、 配布する先が多くなると、次第にこうした手間は大変なものとなっていき、 自動的なシステムが求められるようになったのです。こうして生まれたのが DNS です。

DNS の主な役割は、名前をIPに対応づけることですが、これを中央的な サーバに集中すると当然そのサーバの負荷が膨大になるので、うまく 分散することが求められました。そこで考えられた解決策が、名前自体 を分散的につけることでした。 そのために、名前に階層構造を導入します。この階層では、世界の始まり は .(ピリオッド)で始まります。そして、名前は右から左に 向かって、ピリオッドで区切られて階層を降りていきます。最初の始まりは、 ピリオッドで始まりますが、これは省略可能になっています。例えば、 wakhok.ac.jp という名前は、右側のピリオッドが省略されているので、 本当は wakhok.ac.jp. です。そして 、右から順に以下のような階層になっています。

.(ピリオッド) jp ac wakhok

そして、DNSでは、世界の始まりを管理するDNSサーバはピリオッドであり、 そこは自分の真下の階層を管理するDNSサーバのみを知っています。 例えば、jp.com. などを管理するサーバを知っているのです。 もし、www.wakhok.ac.jp. を世界の始まりを管理するサーバに聞くと、 www.wakhok.ac.jp. を教えてくれる代わりに、jp. を管理する サーバを紹介してくれます。次に、jp. を管理するサーバに同じ 質問をすると、今度は ac.jp. を管理するサーバを紹介するという 具合に、次々と管理サーバを教えてくれます。そして最終的には、wakhok.ac.jp.を管理するサーバが紹介されるので、そこに質問すると www.wakhok.ac.jp. の IPアドレスを応えるという仕組みになっているのです。このような訳で、 DNSは実は世界でも有数に成功したツリー構造を持った 分散型のデータベースになっているのです。

このように、 DNS によって階層的に管理され、権威づけられた名前 (例えば www.wakhok.ac.jp) を FQDN (Full Qualified Domain Name) と言います。

DNSは以上のように質問に答えるだけではなく、自分の管理下のホストからの質問を 代わりに他のDNSに質問する役割を持っています。システム的には、DNSはどこからの 質問にも答えますが、自前でDNSシステムを検索するよりも、勝手に検索してくれる 方がクライアントの手間は少ないので、代理システムとしての側面も持っています。 但し、もよりのDNSのIPアドレスだけは手に入れなければなりません。通常、この もよりのDNSは、後に述べるDHCPからその情報を取得しますが、IPv6ではこれ が問題になる場合もあります。

DNSにはこの他に、IPアドレスから名前を引く方法や、最近では動的にIPに 対する名前を登録するなどの機能もあります。特に、前者については逆引きと も言われる機能ですが、DNSのツリー構造に無理やり当てはめるという実装 方法であるためにデータの設定方法に少し無理があります(特にCIDRで問題に なります)。 ちなみに、DNSは53番ポートを利用し、 DNSへの質問(queryと言う)には UDP を用います。

\epsfile{file=dns-query}



Noriyo Kanayama