コンピューターには、詳細情報を照会できるDNSサーバーのリストがあります。UNIXまたはLinuxシステムでは、これはに保存され/etc/resolv.conf
ます。Windowsでは、ネットワーク設定で構成できます。多くの場合、DNSサーバーは、デフォルトのドメイン、プロキシサーバーなどの他の設定とともに、DHCPサーバーによって提供されます。
使用するDNSサーバーの場所は重要ではありません。コンピューターにIPアドレスと動作するデフォルトルート(つまりping
、DNSサーバーが可能)があれば、DNSクエリを実行できるはずです。
DNSサーバーは「すべて」のドメインを知る必要はありません。彼らは、誰が「権限のある」かを知るだけでよく、「ルート」サーバーのセットからそれを学習します。各DNSサーバーには「ルート」サーバーのリストがあり、このリストはめったに変更されません。DNSサーバーの1つには18個のルートサーバーが構成されており、この構成は2年前にDNSサーバーをインストールしたときに行われました。その後、ルートサーバーのリストが変更された場合、気づいた。
私のDNSサーバーは、知らないドメインを解決するように求められると、ルートサーバーに対してクエリを実行し、そのドメインに対して他のDNSサーバーが権限を持っているかどうかを調べます。取得する応答には追加の「NS」レコードが含まれ、権限のないマークが付けられる場合があります。この場合、DNSサーバーは「チェーンをたどって」新しいサーバーに新しいクエリを作成する必要があることを認識します。最終的に、信頼できる情報を提供するDNSサーバーを見つけ、NSレコードだけではないクエリを作成できます。A(アドレス)とMX(メール交換)は、もちろん最も一般的な2つです。
COM、NET、ORG、CA、UKなどの各TLD(トップレベルドメイン)は、サブドメインの独自のレジストリを保持しています。(「サブドメイン」は別のドメイン内の任意のドメインであるため、「example.com」は「com」内のサブドメインであり、「com」は「。」、「ルート」内のサブドメインです。)各レジストリのルール管理対象のTLDにのみ適用されます。つまり、国コードTLDごとにまったく異なる基準セットがあり、「汎用」TLDは、異なるポリシーを持つ異なる組織によって管理されます。しかし、それらはすべて、コマンドラインから基本的なDNSクエリツールを使用して確認できるTLDのDNSサーバーを維持しています。
[ghoti@pc ~]$ host -t ns ca.
ca name server c.ca-servers.ca.
ca name server e.ca-servers.ca.
ca name server z.ca-servers.ca.
ca name server a.ca-servers.ca.
ca name server f.ca-servers.ca.
ca name server sns-pb.isc.org.
ca name server j.ca-servers.ca.
ca name server k.ca-servers.ca.
ca name server tld.isc-sns.net.
ca name server l.ca-servers.ca.
[ghoti@pc ~]$ host -t ns info
info name server c0.info.afilias-nst.info.
info name server d0.info.afilias-nst.org.
info name server b2.info.afilias-nst.org.
info name server b0.info.afilias-nst.org.
info name server a2.info.afilias-nst.info.
info name server a0.info.afilias-nst.info.
[ghoti@pc ~]$
レジストラ(多数ある)からドメインを購入すると、そのレジストラはドメインに関する情報をレジストリ(TLDごとに1つだけ)に送信します。TLD内の登録済みドメインのリストを維持し、この情報を他のサーバーに提供するDNSサーバーを維持することは、各レジストリの責任です。