まえがきより抜粋

 ドメインネームシステム(DNS)についてあまり知らない読者もいることと思うが、インターネットを使うときはいつでも、DNSを使っているのである。電子メールを送ったり、World Wide Webをネットサーフィンしたりするときには、必ずDNSの世話になっている。

 人間にとっては、コンピュータを名前で覚える方が楽であることは、すぐにわかると思う。一方コンピュータにとっては、番号でアドレスをつけた方が扱いやすい。インターネットでは、この番号は32ビットの値、つまり0から約40億までの間の値、である*1。コンピュータは、番号を覚えるのに向いたメモリを十分に持っているのでこのような番号を簡単に覚えられるが、人間はそうはいかない。試しに、電話帳から10件の電話番号をランダムに選び、それらを覚えてみよう。簡単ではないだろう。さらに、電話帳のはじめの方に載っている表から市外局番をランダムに選び、電話番号の前につけて覚えてみよう。10件のインターネットアドレスを覚えることは、これと同じくらい難しいことなのである。

 これが、ドメインネームシステム(DNS)が必要な理由のひとつである。DNSは、人間が覚えやすいホスト名と、コンピュータが扱いやすいインターネットアドレスとの対応づけを行なう。実際には、DNSは、アドレスだけにとどまらず、インターネット上のホストに関する各種の情報を公表し、アクセスするための標準的なメカニズムを提供する。DNSは、電子メールをはじめ、telnetのような遠隔端末プログラム、ftpのようなファイル転送プログラム、そしてネットスケープ・ナビゲータ(Netscape Navigator)やマイクロソフト・インターネット・エクスプローラ(Microsoft Internet Explorer)のようなWebブラウザなど、ほとんどすべてのインターネットソフトウェアで利用されている。  DNSのもう1つの重要な働きは、ホスト情報をインターネット上の「どこからでも」アクセスできるようにすることである。ホストに関する情報を、特定のフォーマットで特定のコンピュータ上に保存しておいても、そのコンピュータのユーザの役にしか立たない。DNSは、ネットワーク上のどこからでも、遠くで管理されている情報を検索する手段を提供するのである。

 さらに、DNSを使えば、ホスト情報の管理を複数のサイトや組織に分散することができる。管理を分散すれば、中央のサイトにデータを提出したり、マスタデータベースのコピーを定期的に取ってきたりする必要がなくなる。ゾーンと呼ばれる自分の担当範囲のデータを、ネームサーバ上で最新の状態に保つだけでよい。ネームサーバは、ゾーンのデータをネットワーク上の他のネームサーバに提供してくれるのである。

 このように、ホスト情報のデータベースが分散しているため、可能性のある場所を探って、探しているデータのありかをつきとめることが必要になる。ドメインネームシステムでは、データベースの中からどのゾーンのデータでも見つけ出せる能力を、ネームサーバに持たせている。

 もちろん、DNSにもいくつかの問題はある。たとえば、データの冗長性を確保するために、あるゾーンのデータを複数のネームサーバに保管することができるが、この場合に、ゾーンデータのコピー間で不一致が起こる可能性がある。

 しかしながら、DNSに関する「最悪の問題」は、インターネット上でこれほど広く使われているにもかかわらず、その管理や運用に関するドキュメントがほとんど存在しないことである。ほとんどのインターネット管理者は、ベンダがとりあえず提供しているドキュメントと、インターネット上のDNS関連のメーリングリストやUsenetニュースグループから収集した情報でどうにかしているのが現状である。

 ドキュメントが存在しないということは、DNSがインターネットの屋台骨のひとつともいえる重要なサービスであるにもかかわらず、そのノウハウが(まるで門外不出の秘伝であるかのように)管理者から管理者へと口伝されてきたか、個々のプログラマや技術者が別々に学びとってきたということである。そのため新人のゾーン管理者は、先輩たちが犯した過ちを繰り返すことになる。

 本書の目的は、このような状況を改善することである。もちろん、読者の誰もがDNSの専門家になるために時間を費やせるわけでも、専門家になりたがっているわけでもないことは理解している。むしろ、ゾーンやネームサーバの管理だけではなく、システムの管理、ネットワークの構築、ソフトウェアの開発などに時間を割かなければならない人がほとんどだろう。よほどの大企業でもない限り、DNSの管理だけに1人の人間を専念させることはできないのである。本書では、1台のネームサーバで小さなゾーンを管理する場合にも、数百台のネームサーバを使っていくつもの国にまたがる巨大なゾーンを管理する場合にも、読者が必要でかつ十分な情報を得られるようにする。とりあえず必要な部分だけを読んで、後でまた必要になったときに続きを読めばよい。

 DNSは、2人の著者が必要になるくらいに大きなトピックであるが、できる限り実用的でわかりやすく紹介するよう努めた。1章と2章では、何とかやっていくのに十分な理論的な概要と実践的な内容を紹介し、その詳細については3章以降で解説する。前もってロードマップを示し、読者の仕事や興味に応じた読み進め方がわかるようにする。

 本書で実際のDNSソフトウェアについて述べるときには、ほとんどの場合にBIND(Berkeley Internet Name Domain)ソフトウェアに関してのみ記述する。BINDは、最も普及している(そして著者らが最もよく知っている)DNS仕様の実装である。また本書には、筆者らが実際にBINDを使ってゾーンを管理・運用した経験のエッセンスを盛り込むよう努めた(ちなみに筆者らが運用していたゾーンの1つは、かつてはインターネット上でも最大規模のゾーンの1つであったが、今では単なる昔話である)。さらに、実際に使った管理用のプログラムを可能な限り盛り込んだ。それらのプログラムの多くは、スピードと効率を向上させるために、Perlで書き換えたものである。

 本書が、初心者にとってはDNSとBINDに親しくなる助けとなり、すでにDNSについて知っている人にとってはその理解を深めるためのものとなり、DNSを知り尽くしている人にとっても貴重な知恵と経験を与えるものとなることを願っている。


書籍についてのお問い合わせは以下までお願いします。

株式会社オライリー・ジャパン

〒160-0003 東京都新宿区本塩町7番地6 四谷ワイズビル
e-mail:japan@oreilly.com


書籍の購入方法トップページへ戻る