DNSサーバ
- Details
-
Written by Administrator
インターネットのコア技術の1つにDNS(Domain Name System)があります。 インターネット利用者は例えばメールであれば、"name@ドメイン名"といったアドレスによって簡単にメールのやりとりができていると思いますが、ここで使われている『ドメイン名』こそが、インターネットの可能性を広げてくれた基礎技術と云えます。 本章ではDNSサーバソフトの BIND(Berkeley Internet Name Domain)というソフトを使ったDNSサーバの構築について述べます。
1.DNSの動作の仕組み
DNSの出現以前から、すでに米国内を中心にインターネットは出現していました。(勿論、今のような高速で使いやすいネットワークではありませんでしたが..) このネットワークに使うIPアドレスは現在のようにドメイン名を使うものではなく、ホスト名とIPアドレスと対応させた hosts ファイルというテキストファイルにすべて記述していくといったものでした。 ホスト名は単に「mail-server」「ftp-server」といったようなワードでしかなく、これは例えば大学内だけといったような小さなエリア内だけのネットワークワークであればさほどは問題がありませんでしたが、ネットワークの規模が大きくなるにつれて、同じ名前が別の組織で使われていたりすると hosts ファイルの維持が難しくなっていくのは容易に想像できるかと思います。
勿論、それでも当初は hosts ファイルを集中的に管理する組織が一元管理するようにするなどして、なんとかやりくりしていましたが、そのうち人為的なミスやますます広がるネットワークに耐えられないことは自明でした。
そのような中で DNSは「ゾーン概念の導入による分散管理」「階層構造によるデータ管理の委任」という概念を取り入れることで、 hosts ファイルではない方法によるIPアドレスの管理を実現させたのです。 DNSの概念はそれ程難しいものでは無く、
- DNSのトップレベル(ルートという)を管理するトップレベルDNSのトップレベルサーバを構築する。 これはルートを表す記号であるドット(.)で表現する。
- ルートのDNSは一階層下(ゾーンという)のレベルのドメイン名を管理するDNSサーバを知っている。 例えばルートサーバは”jp"のゾーンを管理しているDNSサーバのIPアドレスを知ってる。
- 一階層下のレベルのDNSは自分より一つ下の階層のDNSサーバ(’例えば "co.jp.")を知っている。 以後、その下の階層のDNSは常に自分より1つ下の階層にあるDNSサーバのアドレスを知っている。というルールで構築される。
というように常にルートのDNSサーバから辿ればどの階層のDNSサーバの存在であっても求めることができるようになっています。
これによって、例えば"robata.org"を管理するDNSサーバを知りたいなら ".", "org", "robata"の順でそれぞれの階層の管理するDNAサーバを見つけ出す事ができるようになっています。 また、これによってゾーンが違っていれば同じホスト名が使われても構わないようになりました。
こうすることで、最終的に"robata.org."のDNSサーバにたどり着くことでそこに登録されている"www.robata.org"や"ms.robata.org"といった名前に対応したIPアドレスを知ることが出来る訳です。 DNSのルートサーバは全世界の13カ所(A~Mサーバ)に点在しており、それぞれの箇所で冗長化された構成とすることで大量のDNSリクエストに応えられるように構成されています。

(実は上図は少し説明をはしょってます。 実際にはクライアントPCから直接ルートDNSに検索する訳ではなくクライアントPCで設定されているDNSサーバを経由して検索が行われます)
【MS-DNSの外部ドメイン名/内部ドメイン名】 MSの資料などを読むと、DNSの設計で外部(公開用)DNSと内部(組織内)DNSでドメインを違う名前として構成する資料を良く目にします。(例: (外部) example.co.jp, (内部) example.local ) しかし、このようなドメイン設計は個人的には違和感を感じます。 本来ドメイン名は組織単位や地域を表現するもので外部であろうと内部であれと同じ組織や地域なら単一のドメイン名であるべきだと云うのが個人的な思いです。 上記のような場合、本来はすべて「example.co.jp」として設計するのが正しいと思うのですが如何でしょうか? どうしても外部と内部のドメイン名を分けるなら、外部を「public.example.co.jp」, 内部を「local.example.co.jp」というよな感じで設計するのがすっきりすると思うのですが。。。 それとも、MSの資料のような設計の方が論理的なのでしょうか? |
> 【DNSサーバの構築に続く】