DNS / Domain Name System
■ DNS。Domain Name System。 ホスト名とIPアドレスの相互変換をする機能。 またはその機能を実装した分散データベースシステム。 ポート番号53を使用し、TCPとUDPの両方で動作する。 DNSでは、組織や企業が自らのネットワーク内に ホスト情報データベースを集中管理するネームサーバを設けて、 それらを用いて効率よく名前解決を行う。 ただし、個々のネームサーバが保持するホスト名の情報は、 自ドメイン内のものに限られ、それ以外のホスト情報ついては、 他のネームサーバに問合せることにより解決する。 DNSを構成するネームサーバは、 世界中に無数に存在ずるが、これらは ルートネームサーバとローカルネームサーバに分類できる。 ■ ルートネームサーバ 最上位に位置するネームサーバ群。 ルートネームサーバは、世界中に13組存在しか存在しない。 13組すべてが同じ情報を同期保持し、負荷分散を行っている。 具体的には、IANA、欧州RIPE-NCC、米PSINet社、米VeriSign社(2台)、 米国防総省、米陸軍研究所、米NASA、米ISI、米ISC、米Maryland大学、 ノルウェーNORDUnet、日本WIDEが管理している。 一般のネームサーバは、 自分の管轄外のドメイン名について問合せを受けた場合、 何はともあれ最初にルートネームサーバに問合せることになっている。 このためルートネームサーバには、 世界中のネームサーバからのアクセスが集中することになる。 するとルートネームサーバは、 該当するトップレベルドメインを管理するネームサーバの情報を返答するので、 一般のネームサーバは今度はここに回答を求める。 ■ ローカルネームサーバ 一般のネームサーバ。 各組織、各企業に設置されるネームサーバ。 ローカルネームサーバは、 WWWやメールなど、多くのサービスの基盤となっている。 このためたいへん負荷が高く、仕様上冗長構成を採ることが決まっている。 したがってどのような企業や組織であっても、 独自ドメインを使用する限り、 プライマリ、セカンダリの2つのネームサーバを運用している。 (1) プライマリネームサーバ。 メインのネームサーバ。 ホスト情報データベースのマスターを管理している。 (2) セカンダリネームサーバ。 2台目以降のネームサーバ。 ホスト情報データベースのコピーを管理している。 ■ リゾルバ。Resolver。 上位アプリケーションの要求に従い、 ネームサーバに名前解決の問合せをするソフトウェアのこと。 通常はOSに実装されている。 リゾルバは、一度調べたドメイン名/IPアドレスは、 しばらくの間テーブルに保管(キャッシュ)しておく。 こうすることで応答の高速化を図ることができる。 ■ DNSの手順。 リゾルバがDNSを使って、 ホスト名からIPアドレスを解決する手順を、 順に追っていく。 (1) ユーザ(リゾルバ)は、 まずローカルネームサーバにアクセスして、名前解決を要求する。 (2) ローカルネームサーバは、 自身のキャッシュを参照して 検索対象ホストの情報が保持されているかどうかを確認し、 保持されていれば、この情報を回答する。 (3) もし検索対象ホストの情報が保持されていなければ、 ローカルネームサーバはルートネームサーバに問合せ、 ホストが所属するトップレベルドメインを管理する 下位ネームサーバのIPアドレスを教えてもらう。 (4) 次にローカルネームサーバは、 教えてもらったネームサーバにアクセスして、 ホストが所属するセカンドレベルドメインを管理する 下位ネームサーバのIPアドレスを教えてもらう。 (5) さらにローカルネームサーバは、 教えてもらったネームサーバにアクセスして、 ホストが所属する企業または組織の運営する ネームサーバのIPアドレスを教えてもらう。 (6) こうしてローカルネームサーバは、 教えてもらったネームサーバに順にアクセスして、 最終的には、正に宛先ホストを定義したネームサーバに到達する。 ここでようやくIPアドレスを解決することができ、 リゾルバに対してこれを回答する。 (7) ローカルネームサーバとリゾルバは、 一旦問い合わせた情報はしばらくの間キャッシュに保存する。 キャッシュは一定時間後には破棄される。 ■ 正引きと逆引き (1) 正引き ドメイン名から対応するIPアドレスを調べること。 DNSのメインの仕事。 これさえ動いていれば、大抵のケースで問題は起こらない。 (2) 逆引き IPアドレスから対応するドメイン名を調べる仕組み。 あまり使わない。 しかしWebサーバ等で、不正IPアドレスをはじくために、 アクセス元のIPアドレスを1つ1つ逆引きする場合がある。 ■ ゾーン転送。 プライマリとセカンダリの両ネームサーバの内容を同じに保つために、 セカンダリネームサーバが、プライマリネームサーバから、 定期的にゾーン情報を受け取ること。 セカンダリネームサーバでは、 一定期間ごとにプライマリネームサーバに接続し、 ゾーンデータの更新が必要かどうかを聞く。 もしゾーンデータが変更されていれば、 変更されているのが1レコードのみであっても、 全てのゾーン情報が転送される。 ゾーンデータには、ドメイン内の多くのホスト情報が記述されている。 これが第3者に流出することを防ぐため、 ゾーンデータの転送先は、セカンダリネームサーバに制限していることが多い。 以上。 2004/03/09 pm