階層・委任・ゾーン
権威 DNS サーバーが答えられる範囲を決めているのがゾーンです。
「ドメイン」と「ゾーン」は日常の会話ではほぼ同じ意味で使われますが、DNS では指すものが違います。Unbound の local-zone、forward-zone、stub-zone はいずれもゾーン単位で設定するため、この違いは後の章の前提になります。
階層(ドメイン名は右から左へ階層を形成する)
Section titled “階層(ドメイン名は右から左へ階層を形成する)”www.example.com. のような名前は、ドットで区切られたラベルの並びです。階層は右端から始まります。右端の空のラベルがルートで、末尾のドットがそれを表します。
. ルートcom. TLDexample.com.www.example.com.名前解決は、この階層を右から左へ1段ずつたどって進みます。ルートの直下にある com. や jp. は TLD(Top Level Domain)と呼ばれます。
ルートまで書き切った名前を絶対ドメイン名(absolute domain name)、途中で打ち切った名前を相対ドメイン名(relative domain name)と呼びます。www.example.com. は絶対ドメイン名で、末尾のドットを落とした www.example.com はルートからの相対ドメイン名です1。
本書では、設定ファイルやゾーンの定義に絶対ドメイン名を書きます。一方、文章内で名前を挙げるときは、絶対か相対かが問題にならない限り example.com のように書きます。以降のページはこの書き方に従います。
「FQDN」という用語も広く使われますが、末尾のドットまで含む名前を指す場合と、TLD まで書いてあれば足りるとする場合があります2。たとえば SMTP の仕様は、やり取りに使うドメイン名を FQDN に限ると定める一方で、コマンドの構文はドメイン名を sub-domain *("." sub-domain) と定義しており、末尾のドットで終わる形を作れません3。ここの FQDN は、末尾のドットまで含む名前ではなく、指すものが文脈で変わるため、本書では「FQDN」という用語は使いません。
また、ラベルと名前には長さの制限があります。1つのラベルは63バイトまで、名前全体は、各ラベルの長さを表す1バイトずつを含めて255バイトまでです4。この上限は、第5章で local-data に名前を書くときに関係します。
委任(親が子の権威 DNS サーバーを指す)
Section titled “委任(親が子の権威 DNS サーバーを指す)”DNS は、階層を区切って管理を分担します。com の管理者が example.com 以下の情報まで持つのではなく、example.com の管理を別の管理者へ渡します。これが委任です。
委任は、親ゾーンに置かれた NS RR で表現されます。DNS が返す情報はリソースレコード(RR)という単位で表され、NS はそのうち「このゾーンの権威 DNS サーバーはこれである」を表す型です。型の一覧は本書で使う RRで扱います。
com の権威 DNS サーバーは example.com の NS RR を持ち、問い合わせを受けるとこれを委任応答として返します。
反対に、子は親への参照を持ちません。example.com 側に「親は com である」と書く場所はありません。委任は親ゾーンだけで表現されます。
ゾーン(委任で切れる管理の単位)
Section titled “ゾーン(委任で切れる管理の単位)”ゾーンは、1組の権威 DNS サーバーが実際に情報を持っている範囲です。範囲の切れ目をゾーンカットと呼びます5。
www.example.com と dev.example.com は、名前の階層では同格です。どちらも example.com の1つ下にある名前で、名前の形からどこのゾーンに入るかは決まりません。違いを作るのは、管理を分けたかどうかです。
www.example.comはexample.comの管理者が自分で答える。example.comゾーンの中にあるdev.example.comは別の担当者に任せる。example.comゾーンから切り離し、dev.example.comゾーンにする
後者のように委任すると、example.com と dev.example.com の間に境界ができます。これがゾーンカットです。このとき example.com ゾーンが持つのは dev.example.com の NS RR までで、dev.example.com 以下の情報は持ちません。委任しなければゾーンカットは生じず、dev.example.com の情報も example.com ゾーンの中にあります。
ゾーンの最上位の名前をゾーン頂点と呼びます。すべてのゾーンは、ゾーン頂点に SOA RR と NS RR を持ちます6。SOA は、そのゾーンの管理情報を持つ型です。
ドメインとゾーンの違い
Section titled “ドメインとゾーンの違い”2つの語は、次の点で異なります。
| ドメイン | ゾーン | |
|---|---|---|
| 指すもの | 名前空間の部分木 | 1組の権威 DNS サーバーが情報を持つ範囲 |
| 範囲の決まり方 | 名前の階層だけで決まる | 委任によって切れる |
| 例 | example.com 以下のすべての名前 |
example.com から、委任した先の手前まで |
example.com というドメインには dev.example.com も含まれますが、dev.example.com を委任していれば、example.com ゾーンにその情報は含まれません。ドメインとゾーンは範囲が一致するとは限りません。
この区別が、どの権威 DNS サーバーに聞けば答えが得られるかを決めます。次のページでは、ルートから順に委任をたどって目的の権威 DNS サーバーに到達するまでの流れを見ていきます。
-
RFC 9499 の 2. Names の Fully Qualified Domain Name (FQDN) の項 ↩
-
RFC 5321 の 2.3.5. Domain Names と 4.1.2. Command Argument Syntax ↩
-
RFC 1035 の 2.3.4. Size limits と 3.1. Name space definitions ↩