メインコンテンツまでスキップ

5. DNSサーバーとクライアント

このセクションでは、DNSクライアント、DNSサーバー、またはその両方として機能するシステムに使用される用語を定義します。

リゾルバ(Resolver): 「クライアントリクエストに応答してネームサーバーから情報を抽出する」プログラム。([RFC1034]のセクション2.4から引用)「リゾルバは、リゾルバのサービスを要求するプログラムと同じマシン上にありますが、他のホスト上のネームサーバーに相談する必要がある場合があります。」([RFC1034]のセクション5.1から引用)リゾルバは、名前、タイプ、およびクラスのクエリを実行し、応答を受け取ります。論理機能は「解決」と呼ばれます。実際には、この用語は通常、特定のタイプのリゾルバ(以下でいくつか定義されています)を指しており、用語の使用を理解することは、コンテキストを理解することに依存します。

スタブリゾルバ(Stub resolver): すべての解決を自分で実行できないリゾルバ。スタブリゾルバは一般に、実際の解決機能を引き受ける再帰リゾルバに依存します。スタブリゾルバは[RFC1034]のセクション5.3.1で議論されていますが、完全には定義されていません。[RFC1123]のセクション6.1.3.1で完全に定義されています。

反復モード(Iterative mode): DNSクエリを受信し、別のサーバーへの参照で応答するサーバーの解決モード。[RFC1034]のセクション2.3は、これを「サーバーはクライアントを別のサーバーに参照し、クライアントにクエリを続行させる」と説明しています。反復モードで動作するリゾルバは、「反復リゾルバ」と呼ばれることがあります。

再帰モード(Recursive mode): DNSクエリを受信し、ローカルキャッシュからこれらのクエリに応答するか、元のクエリの最終応答を取得するために他のサーバーにクエリを送信するサーバーの解決モード。[RFC1034]のセクション2.3は、これを「最初のサーバーは別のサーバーでクライアントのためにクエリを続行する」と説明しています。再帰モードで動作するサーバーは、ネームサーバー側(クエリに応答するもの)とリゾルバ側(解決機能を実行するもの)を持つと考えることができます。このモードで動作するシステムは一般に「再帰サーバー」と呼ばれます。「再帰リゾルバ」と呼ばれることもあります。厳密には、これらの違いは、一方が別の再帰サーバーにクエリを送信し、もう一方は送信しないということですが、実際には、クエリしているサーバーが再帰も実行するかどうかを事前に知ることはできません。両方の用語が互換的に使用されているのを観察できます。

完全リゾルバ(Full resolver): この用語は[RFC1035]で使用されていますが、そこでは定義されていません。RFC 1123は、[RFC1035]の「完全リゾルバ」で意図されていたものである可能性のある「フルサービスリゾルバ」を定義しています。この用語はどのRFCでも適切に定義されていません。

フルサービスリゾルバ(Full-service resolver): [RFC1123]のセクション6.1.3.1は、この用語を、キャッシュを持つ再帰モードで動作するリゾルバ(および他の要件を満たす)を意味すると定義しています。

プライミング(Priming): リゾルバのキャッシュに何もない前にクエリを送信する場所を決定するためにリゾルバが使用するメカニズム。プライミングは、ルートゾーンの権威サーバーのリストを含む構成設定から最も頻繁に行われます。

否定キャッシング(Negative caching): 「何かが存在しない、応答を与えることができない、または応答を与えないという知識の保存。」([RFC2308]のセクション1から引用)

権威サーバー(Authoritative server): 「ローカルな知識からDNSゾーンの内容を知っているサーバーであり、したがって他のサーバーにクエリする必要なくそのゾーンに関するクエリに応答できます。」([RFC2182]のセクション2から引用。)これは、応答ヘッダーのAAフラグが1に設定された状態で、応答するように構成されたゾーンに関する情報でDNSクエリに応答するシステムです。1つ以上のDNSゾーンに対して権威を持つサーバーです。親ゾーンがそのサーバーに権威を委任せずに、権威サーバーがクエリに応答することが可能であることに注意してください。権威サーバーは、通常はそれらから委任された子ゾーンへの「参照」も提供します。これらの参照は、AAビットが0に設定され、権威セクションと(必要に応じて)追加セクションに参照データが付属します。

権威専用サーバー(Authoritative-only server): 権威データのみを提供し、再帰の要求を無視するネームサーバー。「通常は独自のクエリを生成しません。代わりに、サービスするゾーンの情報を探している反復リゾルバからの非再帰クエリに応答します。」([RFC4697]のセクション2.4から引用)

ゾーン転送(Zone transfer): クライアントがゾーンのコピーを要求し、権威サーバーが必要な情報を送信する行為。(ゾーンの説明については、セクション6を参照してください。)ゾーン転送を行う2つの一般的な標準的な方法があります:完全なゾーンをコピーするAXFR(「権威転送」)メカニズム([RFC5936]で説明)と、変更されたゾーンの部分のみをコピーするIXFR(「増分転送」)メカニズム([RFC1995]で説明)。多くのシステムは、DNSプロトコルの外部で非標準的な方法でゾーン転送を使用します。

セカンダリサーバー(Secondary server): 「ゾーン転送を使用してゾーンを取得する権威サーバー」([RFC1996]のセクション2.1から引用)。[RFC2182]はセカンダリサーバーを詳細に説明しています。[RFC1996]などの初期のDNS RFCはこれを「スレーブ」と呼んでいましたが、現在の一般的な使用法は「セカンダリ」と呼ぶように移行しています。セカンダリサーバーは[RFC1034]でも議論されています。

スレーブサーバー(Slave server): セカンダリサーバーを参照してください。

プライマリサーバー(Primary server): 「1つ以上の[セカンダリ]サーバーのゾーン転送のソースとして構成された任意の権威サーバー」([RFC1996]のセクション2.1から引用)、またはより具体的には、「1つ以上の[セカンダリ]サーバーのAXFRまたはIXFRデータのソースとして構成された権威サーバー」([RFC2136]から引用)。[RFC1996]などの初期のDNS RFCはこれを「マスター」と呼んでいましたが、現在の一般的な使用法は「プライマリ」に移行しています。プライマリサーバーは[RFC1034]でも議論されています。

マスターサーバー(Master server): プライマリサーバーを参照してください。

プライマリマスター(Primary master): 「プライマリマスターはゾーンのSOA MNAMEフィールドに名前が付けられ、オプションでNS RRによって名前が付けられます。」([RFC1996]のセクション2.1から引用)。[RFC2136]は「プライマリマスター」を「AXFR/IXFR依存関係グラフのルートにあるマスターサーバー。プライマリマスターはゾーンのSOA MNAMEフィールドに名前が付けられ、オプションでNS RRによって名前が付けられます。定義上、ゾーンごとに1つのプライマリマスターサーバーのみが存在します。」と定義しています。プライマリマスターの概念は[RFC2136]によってのみ使用され、DNSの他の部分では古いと見なされています。

ステルスサーバー(Stealth server): これは「スレーブサーバーに似ていますが、ゾーンのNS RRにリストされていません。」([RFC1996]のセクション2.1から引用)

隠しマスター(Hidden master): ゾーン転送のマスターであるステルスサーバー。「この配置では、更新を処理するマスターネームサーバーは、インターネット上の一般的なホストには利用できません。NS RRsetにリストされていません。」([RFC6781]のセクション3.4.3から引用。)以前のRFC、[RFC4641]は、隠しマスターの名前がSOA RRのMNAMEフィールドに表示されると述べていましたが、一部のセットアップでは、名前はパブリックDNSにまったく表示されません。隠しマスターは、セカンダリまたはプライマリマスターのいずれかになることができます。

転送(Forwarding): RDビットを1に設定したDNSクエリを別のサーバーに送信してそのクエリを解決する1つのサーバーのプロセス。転送はDNSリゾルバの機能です。単にクエリを盲目的に中継するのとは異なります。

[RFC5625]は転送の特定の定義を与えていませんが、転送するシステムがサポートする必要がある機能を詳細に説明しています。転送するシステムは「DNSプロキシ」と呼ばれることがありますが、その用語はまだ定義されていません([RFC5625]でも)。

フォワーダー(Forwarder): [RFC2308]のセクション1は、フォワーダーを「権威ネームサーバーチェーンを直接使用する代わりにクエリを解決するために使用されるネームサーバー」として説明しています。[RFC2308]はさらに「フォワーダーは通常、インターネットへのより良いアクセスを持つか、多くのリゾルバ間で共有される可能性のあるより大きなキャッシュを維持します。」と述べています。その定義は、フォワーダーが通常権威サーバーのみをクエリすることを示唆しているようです。ただし、現在の使用では、フォワーダーはしばしばスタブリゾルバと再帰サーバーの間に立っています。[RFC2308]は、フォワーダーが反復専用であるか、フルサービスリゾルバであることができるかについて沈黙しています。

ポリシー実装リゾルバ(Policy-implementing resolver): マルウェアサイトや不適切なコンテンツへのアクセスを防ぐなど、ポリシー基準に基づいて返す応答の一部を変更する再帰モードで動作するリゾルバ。一般に、スタブリゾルバは、上流のリゾルバがそのようなポリシーを実装しているかどうか、または実装している場合、どのような変更が行われるかの正確なポリシーについて知りません。場合によっては、スタブリゾルバのユーザーが、ポリシーを実装するために使用することを明示的な意図を持ってポリシー実装リゾルバを選択しています。他の場合には、スタブリゾルバのユーザーに通知せずにポリシーが課されます。

オープンリゾルバ(Open resolver): 任意の(またはほぼ任意の)スタブリゾルバからのクエリを受け入れて処理するフルサービスリゾルバ。これは「パブリックリゾルバ」とも呼ばれることがありますが、「パブリックリゾルバ」という用語は、オープンであることが意図されているオープンリゾルバでより多く使用され、オープンになるように誤って構成されている可能性が高い大多数のオープンリゾルバとは対照的です。

ビュー(View): クエリの属性に応じて異なる応答を提供できるDNSサーバーの構成。通常、ビューはクエリのソースIPアドレスによって異なりますが、宛先IPアドレス、クエリのタイプ(AXFRなど)、再帰かどうかなどに基づくこともできます。ビューは、保護されたネットワークの「内側」からのクエリに、そのネットワークの「外側」へのクエリよりも多くの名前または異なるアドレスを提供するためによく使用されます。ビューはDNSの標準化された部分ではありませんが、サーバーソフトウェアで広く実装されています。

パッシブDNS(Passive DNS): サーバーからのDNS応答を保存することによって大量のDNSデータを収集するメカニズム。これらのシステムの一部は、応答に関連するDNSクエリも収集します。これはプライバシーの問題を引き起こす可能性があります。パッシブDNSデータベースは、過去のどの時点でどのレコードが利用可能であったかなど、DNSゾーンに関する歴史的な質問に答えるために使用できます。パッシブDNSデータベースは、名前だけでなく他のキーで保存されたレコードを検索できます。たとえば、「特定の値のAレコードを持つすべての名前を見つける」などです。

エニーキャスト(Anycast): 「特定のサービスアドレスを複数の離散的な自律的な場所で利用可能にする慣行。送信されたデータグラムは、いくつかの利用可能な場所の1つにルーティングされます。」([RFC4786]のセクション2から引用)