DNS 名はルート付きの木構造を形成します。ドメインは、ある名前をルートとする部分木です。ゾーンは、その木構造のうち、権威データとして提供される管理単位です。したがって、ドメインとゾーンは同義ではありません。ゾーンは子部分木に委任を行い、その子部分木の権威レコードを保持しなくなることがあります。
委任と権威 #
親ゾーンは、その名前に NS レコードを公開することで child.example. を委任します。子ゾーンは自身の頂点 SOA レコードと NS レコードを公開します。リゾルバーが親ゾーンに対して、その委任境界より下のデータを要求すると、Authority セクションに子ゾーンの NS RRset を含む紹介応答を受け取ります。
NS ターゲットが委任された子ゾーン内にある場合、親ゾーンは Additional セクションにグルーレコードとして A レコードまたは AAAA レコードも提供します。グルーは、子のネームサーバーに接続する前にその名前を解決する必要があるという循環依存を解消します。リゾルバーは、グルーをターゲットのアドレスに関する権威データではなく、ブートストラップ用のアドレスデータとして扱わなければなりません。
権威サーバーは自身のゾーンデータから応答します。再帰リゾルバーは、キャッシュからクライアントに応答するか、反復クエリを実行します。スタブリゾルバーは委任をたどらず、設定された再帰リゾルバーに処理を依頼します。
応答の意味 #
クエリに対して、サーバーは回答、紹介、またはエラー応答を返すことができます。NXDOMAIN は、クエリされた名前が存在しないことを示します。空の回答を伴う NOERROR は、代わりに、その名前は存在するものの、クエリされたタイプのレコードを持たないことを意味する場合があります。これは一般に NODATA と呼ばれます。
CNAME は、その所有者名が別名であることを示します。別名は独立した権威データも同時に所有してはならないため、その所有者名には他のデータを共存させることができません。要求されたタイプ、別の別名、またはエラーを取得するまで CNAME ターゲットをたどります。DNAME は異なり、部分木全体に別名を付け、その所有者名より下の名前に対して合成 CNAME 処理を発生させます。
キャッシュと DNSSEC #
リゾルバーは TTL に従って RRset をキャッシュします。否定応答は SOA 情報に従ってキャッシュされます。DNSSEC により、検証を行うリゾルバーは、設定されたトラストアンカーから DS から DNSKEY へと連なる信頼の連鎖を通じて、肯定応答と否定応答を認証できます。NSEC または NSEC3 の証明は否定を認証します。NXDOMAIN のみの応答では認証できません。
設定されたオリジンとの曖昧さが問題となるゾーンファイルおよびプロトコル文書の例では、末尾のドットを付けた完全修飾名を使用してください。
パケットエンコーディングについては、DNS ワイヤーフォーマット を参照してください。サーバーの運用設定については、BIND 9 権威 DNS および再帰 DNS を参照してください。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)