DNS

Domain Name Systemドメイン ネーム システムDNS)はインターネットを使った階層的な分散型データベースシステムである。1983年に情報科学研究所 (ISI) のポール・モカペトリスジョン・ポステルにより開発された。

現在ではおもにインターネット上のホスト名や、電子メールに使われるドメイン名とIPアドレスとの対応づけを管理するために使用されている。

インターネットに接続されているすべてのコンピュータは、固有のIPアドレスを持っている。たとえば、ウィキペディア日本語版のwebサーバの持つIPアドレスは2007年4月現在では "211.115.107.162" である。インターネット上のどんなコンピュータアクセスする際にも最終的にはそのコンピュータの IPアドレスを知る必要がある。しかし、IPアドレスは、3桁までの4つの数値の組み合わせ(IPv4の場合)からなっており、最大12桁の数字の羅列となり覚えにくい。このため、IPアドレスを人間が覚えやすい名前で扱うことができるような機構が考案された。

DNSの検索

DNSは、ホスト名(例えば"ja.wikipedia.org")の入力があるとDNSサーバ と呼ばれるコンピュータを参照し、そのホストのもつ IP アドレス(例えば"130.94.122.197")を検索するシステムである。例えるなら、DNSは氏名から電話番号を自動で調べる電話帳のようなものである。

たとえば ウェブブラウザ URI を入力してネットワークアクセスする際、ブラウザURIを解析して、アクセスすべきWebサーバホスト名を取り出し、後述のリゾルバAPIに渡す。リゾルバAPI(通常はOS内部での働き)は、Webサーバホスト名をDNSサーバに問い合わせて帰ってきたIPアドレスにより、ホスト名をIPアドレスに変換してブラウザに返す。ブラウザは、得られたIPアドレスを使用して、Webサーバとの通信を開始する。このようにしてブラウザインターネットアクセスする。

ホスト名から、そのホストアクセスするためのIPアドレスを得ることを、(ホスト名の)「解決」 (resolve) と呼び、これを行うためのクライアント側のしくみを「リゾルバ」という。

ただし現実の電話帳との違いは、この情報がインターネット上のいくつものコンピュータDNSサーバ)に分散して格納されているところにある。 インターネットには莫大な数のコンピュータが接続されており、これらのホスト名と IPアドレスは日々更新されつづけているため、インターネット上のすべてのホスト名を一台のコンピュータ集中管理することは現実的ではなかった。 そのためインターネット上のコンピュータをある単位で区分けして、それぞれのグループがもつデータグループごとのコンピュータに別々に管理させるようにした。これが DNS の基本的なアイデアである。このグループドメインと呼ぶ。各グループには英数字ハイフン ( - ) からなるラベルドメイン名)がつけられており、異なるドメインの情報は異なるコンピュータに格納される。

今でこそ DNS ホスト名とIPアドレスの対応づけに使用されるのがほとんどだが、もともとは電子メール配送方法コンピュータ機種名を登録するなどといった用途も考えられていた。

ドメイン名は階層的な構造をもっている。たとえば"ja.wikipedia.org" というホスト名は"ja"、 "wikipedia"、 "org"という 3つの階層に区切ることができる。ja.wikipedia.org というホストは"wikipedia.org" ドメインに所属しており、このドメインはさらに "org" ドメインに所属している、といった具合である。ドメイン名は一個の巨大な木構造をなしているといっていい。この構造をドメイン名前空間 (Domain Name Space) と呼ぶ。ドメイン名前空間は頂点に "."(root) ノードをもち、そこから .com, .org, .jp などの各トップレベルドメイン (TLD) が分かれている。

ドメインゾーンと呼ばれる管轄に分けて管理されている。ゾーンドメイン名前空間上のある一部分に相当し、それぞれのゾーンは独立したDNSコンテンツサーバと呼ばれるコンピュータによって管理されている(ドメイン名の委譲)。DNSコンテンツサーバは、管理しているゾーンホスト名とIPアドレスの組を記述したデータベースをもっており、クライアントマシン(あるいはDNSキャッシュサーバ)からの要求に応じて、あるホスト名に対応するIPアドレスを返す。DNSクライアントルートサーバからいくつものDNSサーバをたどっていき、最終的なホスト名のIPアドレスを得る(DNS再帰検索)。

DNSのDNSの再帰検索

具体的な例として、ja.wikipedia.org というホスト名の IPアドレスを検索することを考えると、再帰検索は、トップレベルドメインルートサーバに問い合わせることからはじまる。ja.wikipedia.org というホスト名は wikipedia.org ドメインに属し、またwikipedia.orgドメインはorgドメインに属するため、クライアントは最初にorgドメインDNSサーバネームサーバ)のIPアドレスを得なければならない。

まず、クライアントは適当なルートサーバをひとつ選ぶ。ここでは A.ROOT-SERVERS.NET (198.41.0.4) としよう。現在 ルートサーバ に登録されている org ドメインネームサーバは 9つあり、そのうちのひとつはa7.nstld.com (192.5.6.36) である。

つぎにクライアントは、このネームサーバに wikipedia.org ドメインネームサーバの IPアドレスを問い合わせる。するとそのネームサーバホスト名は dns34.register.com (216.21.226.87) であることがわかる。

最後に、このネームサーバにja.wikipedia.orgのIPアドレスを問い合わせる。するとこのサーバは最終的な答130.94.122.197を返す。こうして目的とするホスト名のIPアドレスを検索できる。

DNSの役割

DNSはふだんほとんどの人が意識しない透過的なシステムだが、その役割は非常に重要である。あるドメインを管理しているDNSサーバダウンすると、そのドメイン内のホストをさす URL メールアドレス が使えなくなるため、たとえネットワークがつながっていてもそのドメインには事実上ほとんどアクセスできなくなる。またDNS偽装が行われると、通常のインターネットを盗聴するよりもはるかに簡単に情報を盗聴・偽装することができる。そのため、たいていの重要な DNSサーバ二重化されていることが多い。

◇出典: フリー百科事典ウィキペディア(Wikipedia)『DNS』より
取得日:2008-12-13

DNSの関連サイト

DNS 関連サイトをもっと見る

↑ページの上にもどる