ネームサーバーは、ディレクトリサービスへのクエリに応答するためのネットワークサービスを実装するコンピュータアプリケーションです。ネームサーバーは、多くの場合人間が理解できるテキストベースの識別子を、システム内部の、多くの場合数値の識別子またはアドレス構成要素に変換します。このサービスは、サービスプロトコル要求への応答としてサーバーによって実行されます。
ネームサーバーの一例として、インターネットの中核となる名前空間であるドメインネームシステム(DNS)のサーバーコンポーネントが挙げられます。DNSサーバーの最も重要な機能は、人間が記憶できるドメイン名とホスト名を、インターネット上でルーティング可能 な数値のインターネットプロトコル(IP)アドレスに変換(解決)することです。
インターネットは、ドメイン名階層[ 1 ]と IP アドレス システム[ 2 ]という 2 つの主要な名前空間を維持しています。ドメイン ネーム システムは、ドメイン名前空間を維持し、これら 2 つの名前空間間の変換サービスを提供します。インターネット ネーム サーバーは、ドメイン ネーム システムを実装しています。[ 3 ]ドメイン ネーム システムの最上位階層は、Internet Corporation for Assigned Names and Numbers (ICANN)からの委任によって維持されているルート ネーム サーバーによって処理されます。世界中にある DNS サーバーはドメイン名を IP アドレスに変換し、ユーザーが特定のドメイン経由でアクセスできるサーバーを制御できるようにします。ルートの下では、インターネット リソースはドメインの階層に編成され、それぞれのレジストラとドメイン名保有者によって管理されています。DNS ネーム サーバーは、ドメイン名のアドレス (A、AAAA) レコード、ネーム サーバー (NS) レコード、メール エクスチェンジャー (MX) レコードなどの DNS レコード (DNS レコード タイプの一覧も参照) を格納し、データベースに対するクエリに応答するサーバーです。
ネーム サーバーは通常、以下で説明するように、権威サーバーまたは再帰サーバーのいずれかになります。
現在では一般的ではありませんが、ネームサーバーは、一部のゾーンのクエリに対して権威ある回答を返すように設定され、他のすべてのゾーンに対してはキャッシュネームサーバーとして機能する場合、権威サーバーと再帰サーバーの両方として機能することができます。[ 4 ]
権威ネームサーバーは、ゾーン内の名前に関する問い合わせに回答を返す責任を負うネームサーバーです。権威専用ネームサーバーは、(管理者によって明示的に設定された)担当ドメイン名に関する問い合わせにのみ回答を返します。
権威ネームサーバーは、プライマリサーバーまたはセカンダリサーバーのいずれかになります。ゾーンのプライマリサーバーは、そのゾーン内のすべてのレコードの最終版を保存するサーバーです。これは、SOA(Start-of-Authority)リソースレコードで識別されます。ゾーンのセカンダリサーバーは、自動更新メカニズムを使用して、ゾーンのプライマリサーバーのデータベースと同一のコピーを維持します。このようなメカニズムの例としては、DNSゾーン転送やファイル転送プロトコルなどがあります。DNSは、ゾーンの内容が変更された場合、ゾーンのプライマリサーバーがそのゾーンのすべての既知のセカンダリサーバーに通知できるメカニズムを提供します。ゾーンの内容は、管理者が手動で設定するか、ダイナミックDNSを使用して管理されます。[ 5 ]
すべてのドメイン名は、1つ以上の権威ネームサーバーによって管理されるゾーンに存在します。ゾーンの権威ネームサーバーの完全修飾ドメイン名は、そのゾーンのNSレコードにリストされています。あるゾーンのサーバーが親ゾーンの権威ネームサーバーを持っていない場合、親ゾーンのサーバーには、そのゾーンの委任を設定する必要があります。[ 6 ]
ドメインがドメイン名レジストラに登録されると、ゾーン管理者はそのドメインを含むゾーンに対して権限を持つネームサーバ(通常は冗長性のため少なくとも2台[ 7 ] )のリストを提供する。レジストラはこれらのサーバの名前を、そのゾーンを含むトップレベルドメインのドメインレジストリに提供する。ドメインレジストリはそれを受けて、そのトップレベルドメインの権限を持つネームサーバを、そのゾーンの各サーバに委任して構成する。あるゾーンのネームサーバの完全修飾ドメイン名がそのゾーン内に存在する場合、ゾーン管理者はそのネームサーバのIPアドレスを提供する。IPアドレスは親ゾーンにグルーレコードとしてインストールされる。そうでない場合、委任はそのゾーンのNSレコードのリストから構成される。[ 8 ]
ネームサーバーは、自身が権威を持つ名前に対するクエリへの応答において権威回答(AA)ビットを設定することで、その応答が権威を持つことを示します。権威を持たない回答を提供するネームサーバー(例えば、親ゾーンのネームサーバー)は、AAビットを設定しません。[ 3 ]
再帰リゾルバ(再帰ネーム サーバーと呼ばれることもあります) は、スタブリゾルバを使用しているクライアントからの再帰クエリ (以下に定義) を受け入れ、以前の結果のキャッシュから、または 1 つ以上の権限のあるサーバーに問い合わせることによって、それらのクエリを解決する DNS ネーム サーバーです。
ネームサーバーがDNSキャッシュにホストのエントリを持っていないためクエリに応答できない場合、階層の上位にあるネームサーバーに再帰的にクエリを実行することがあります。[ 9 ]これは再帰クエリまたは再帰ルックアップと呼ばれます。再帰クエリを提供するサーバーは再帰ネームサーバーまたは再帰DNSと呼ばれ、 recdnsと略されることもあります。[ 10 ]
原則として、権威ネームサーバーはインターネットの運用に十分です。しかし、権威ネームサーバーのみが稼働している場合、すべてのDNSクエリはドメインネームシステムのルートゾーンへの再帰クエリから開始する必要があり、各ユーザーシステムは再帰処理が可能なリゾルバソフトウェアを実装する必要があります。
キャッシュネームサーバー(DNSキャッシュ)は通常、再帰リゾルバーであり、各ドメイン名レコードの設定(TTL)で定められた期間、DNSクエリの結果を保存します。DNSキャッシュは、インターネット上のDNSトラフィックを削減し、権威ネームサーバー(特にルートネームサーバー)の負荷を軽減することで、DNSの効率を向上させます。また、クエリへの回答速度が向上するため、DNSを使用するエンドユーザーアプリケーションのパフォーマンスも向上します。
キャッシングネームサーバーは、多くの場合、再帰ネームサーバーでもあります。つまり、受信したDNSクエリに応答するために必要なすべての手順を実行します。このため、ネームサーバーはDNSルートゾーンから順に、各権威ネームサーバーにクエリを実行します。クエリ対象のドメイン名を含むゾーンの権威サーバーに到達するまで、クエリは継続されます。権威サーバーはクエリへの回答を提供するか、回答できないと明確に通知し、キャッシングリゾルバはクエリを送信したクライアントにこの応答を返します。権威機能、解決機能、キャッシング機能は、DNSサーバーの実装にすべて組み込むことができますが、必ずしも必要ではありません。DNSサーバーは、これらの機能のいずれか1つだけを実装し、他の機能は実装しなくても構いません。 インターネットサービスプロバイダーは通常、顧客にキャッシングリゾルバを提供します。さらに、多くのホームネットワークルーターは、ローカルネットワークの効率を向上させるためにキャッシングリゾルバを実装しています。一部のシステムではnscd、「ネームサービスキャッシングデーモン」の略である を使用しています。[ 11 ]
再帰DNSサーバー(別名recdns)
ncsd [.....] は DNS ルックアップの結果をキャッシュしますが [...]、ファイルとファイル、およびネットワーク データベースの同等物からの情報にアクセスするライブラリ ルーチンもラップしpasswdますgroup。