| 
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サーバにも直接問合せられることはめったにありません。
 
※ sample.co.jpの様に、国別のドメインレベルがある場合、DとEのプロセスの間に、もう一段階、クエリのプロセスがあります。
リゾルバ(DNSクライアント)は、TCP/IPパラメータで設定したDNSサーバ(通常はローカルネットワークのDNSサーバ、もしくはISPのDNSサーバ)に問い合わせます。@(再帰クエリ)
ローカルDNSサーバはインターネット上に13台のみのroot-serverの一台に問合せ、ターゲットのDNSサーバを管理しているトップレベルドメインのDNSサーバを解決します。A・B(反復クエリ)
次にトップレベルドメイン(GTLD)のサーバに問合せ、ツリー構造のトップレベルから一段下のレベルのDNSサーバを解決します。C・D(反復クエリ)
このような繰返しでターゲットホストを管理しているDNSサーバを解決しE・F(反復クエリ)、ターゲットホストの名前解決が可能になります。G(再帰クエリ)
 
ネームサーバに問合せるルーチン、及びクライアントをリゾルバ(resolver)と呼びます。DNS Domain Name SystemはDNSサーバとDNSクライアント(リゾルバ)からなる、クライアントサーバシステムです。
 
ネームサーバへの問い合わせには、ホスト名からIPアドレスを要求する「順(正)引き」とIPアドレスからコンピュータ名を要求する「逆引き」があります。
 |