TCP/IPではコンピューターはお互いにIPアドレスで通信相手を確認します。しかし、ユーザーが一般的に使用するのは、URLとして入力する ホスト名+ドメイン名(FQDN:Fully Qualified Domain Name)です。
IPアドレスは単純な32ビット長のビット列("."ドットで区切られた4ブロックの0〜255からなる10進数で表現することが多い)なので、ほとんどの状況では、「どこのどのマシンか?」という特定が困難です。TCP/IPネットワークでは管理するネットワーク単位毎の組織名(ドメイン名)を用意し、ホスト名と組み合わせてユーザーにとって判りやすい系統的な管理の方法が考えられました。これがドメイン名空間とFQDNです。
(ここで言う「ドメイン」はWindows NTの「ドメイン」とは異なります。)
DNSサーバは、ホスト名(host name)とIPアドレスの対応付けを管理します。ネームサーバとも呼ばれます。
-
ユーザーはIPアドレスではなくホスト名でコンピューターをオペレーションできます。
-
DNSサーバはユーザーが入力したホスト名と対応したIPアドレスをコンピューターに返します。
-
コンピューター同士はIPアドレスで通信相手を確認します。
インターネットに公開されているDNSサーバはDNSサーバ自身がインターネット上の全ホストのエントリを管理する必要はなく、ドメイン名空間のツリー構造を利用し、自身が管理していないFQDNの名前解決クエリはターゲットのホストを管理しているDNSサーバに問合せる分散データベースシステムです。
名前解決をしたいホストを管理しているDNSサーバにも直接問合せられることはめったにありません。
-
リゾルバ(DNSクライアント)は、TCP/IPパラメータで設定したDNSサーバ(通常はローカルネットワークのDNSサーバ、もしくはISPのDNSサーバ)に問い合わせます。@(再帰クエリ)
-
ローカルDNSサーバはインターネット上に13台のみのroot-serverの一台に問合せ、ターゲットのDNSサーバを管理しているトップレベルドメインのDNSサーバを解決します。A・B(反復クエリ)
-
次にトップレベルドメイン(GTLD)のサーバに問合せ、ツリー構造のトップレベルから一段下のレベルのDNSサーバを解決します。C・D(反復クエリ)
-
このような繰返しでターゲットホストを管理しているDNSサーバを解決しE・F(反復クエリ)、ターゲットホストの名前解決が可能になります。G(再帰クエリ)
※ sample.co.jpの様に、国別のドメインレベルがある場合、DとEのプロセスの間に、もう一段階、クエリのプロセスがあります。
ネームサーバに問合せるルーチン、及びクライアントをリゾルバ(resolver)と呼びます。DNS Domain Name SystemはDNSサーバとDNSクライアント(リゾルバ)からなる、クライアントサーバシステムです。
ネームサーバへの問い合わせには、ホスト名からIPアドレスを要求する「順(正)引き」とIPアドレスからコンピュータ名を要求する「逆引き」があります。
|