ドメイン
DNSの名前空間で、ある名前とその下に連なる名前をまとめた範囲である。名前はドットで区切ったラベルを並べて表し、右にあるものほど上位の階層を示す。Windowsの管理単位やLANの範囲を指す同じ語とは区別する。
イマシルちゃんの解説
インターネットでは、サーバを「www.example.co.jp」のような名前で呼ぶことが多いんだ。
点で区切った一つずつの部分をラベルと呼び、名前の階層を表しているよ。
jpの下にco.jp、その下にexample.co.jpがあるように、上の階層から順に枝分かれしていくの。
ある名前と、その下に連なる名前全部をまとめたDNSでの名前の範囲をドメインというんだ。
上の階層が下の階層に管理を任せられるから、世界中の名前を重ならないように分担して決められるんだよ。
管理を任せた先の名前も、元のドメインに含まれるよ。
この解説はわかりやすかったですか?
より深い解説
名前空間の一部としての定義
DNSは、世界中のホストやサービスの名前を一つの木構造で管理する。この木全体を名前空間と呼ぶ。RFC 1034は、ドメインを「ドメイン名で識別され、名前空間のうちその名前と、それより下にある部分から成るもの」と定めている。
つまりドメインは、木の一つの節点を頂点とする部分木である。そのドメインを指す名前がドメイン名である。例えば example.co.jp というドメインには、www.example.co.jp や mail.example.co.jp など、その下にある名前がすべて含まれる。
あるドメインの中に含まれるドメインをサブドメインと呼ぶ。例えば example.co.jp は co.jp に含まれ、co.jp は jp に含まれる。RFC 1034の定義では、ある名前は上位のどのドメインから見ても、その内側の名前として扱われる。
名前の書き方と階層
名前は、ドットで区切ったラベルを、下位から上位へ左から順に並べて書く。最上位には長さ0のラベルを持つルートがある。www.example.co.jp を階層ごとに分けると次のようになる。
| 階層 | ラベル | このラベルまでで表すドメイン |
|---|---|---|
| ルート | 長さ0のラベル | 名前空間全体 |
| トップレベル | jp | jp |
| 第2レベル | co | co.jp |
| 第3レベル | example | example.co.jp |
| 第4レベル | www | www.example.co.jp |
トップレベルドメインには、comやorgのような分野別のものと、jpのような国や地域別のものがある。詳しい分類はTLDの記事で扱う。jpの下のco.jpは、組織の種類ごとに分けた階層の例である。
ルートまでのすべてのラベルを省略せずに書いた名前をFQDNと呼ぶ。末尾にドットを付けて www.example.co.jp. と書くと、最後の空のラベルがルートを表していることがはっきりする。
名前には長さの制限がある。RFC 1034では、一つのラベルは63オクテットまで、名前全体はラベルの長さを表す値も含めて255オクテットまでである。また、同じ親を持つラベルどうしは重複できず、比較では英字の大文字と小文字を区別しない。
名前の範囲と管理の範囲
ドメインは名前の範囲を表す概念であり、どのサーバが情報を管理するかとは別である。権威DNSサーバが実際に管理する単位はゾーンと呼ぶ。
例えば example.co.jp を管理する組織が、営業部門用の sales.example.co.jp を別のDNSサーバに任せたとする。このとき親のゾーンに、子を管理するDNSサーバを示すNSレコードを登録する。これを権限委譲と呼ぶ。管理を任せた後も、sales.example.co.jp は example.co.jp ドメインの一部である。しかし example.co.jp のゾーンには、sales.example.co.jp より下の詳しい情報は含まれない。
| 観点 | ドメイン | ゾーン |
|---|---|---|
| 意味 | 名前空間の部分木 | 1つの管理主体が情報を持つ範囲 |
| 別のサーバに任せた下位の部分 | 含む | 含まない |
| 実体 | 名前の範囲 | ゾーンファイルなどの情報 |
この区別はRFC 1034の4.2節でも説明されている。ドメインは名前の上の区切りであり、ゾーンは管理の区切りである。
「ドメイン」が指す別の範囲
ネットワークでは、DNS以外にも「ドメイン」という語を使う。いずれも何かの範囲を表すが、範囲を決めるものが異なる。
| 用語 | 何の範囲か | 範囲を決めるもの | 関係する技術 |
|---|---|---|---|
| DNSのドメイン | 名前空間の部分木 | 名前の階層と委譲 | DNS |
| Active Directoryのドメイン | 利用者や端末を一元管理する範囲 | ADのサーバと管理構成 | 認証、ディレクトリ |
| ブロードキャストドメイン | ブロードキャストのフレームが届く範囲 | 論理的なLANの分割とルータ | データリンク層 |
| コリジョンドメイン | 信号の衝突が起き得る範囲 | 中継装置の種類と配置 | 半二重のCSMA/CD |
WindowsのActive Directory Domain Services(AD DS)では、AD DSを動かすサーバをドメインコントローラーと呼ぶ。ドメインは利用者アカウントやコンピュータを一元管理する単位であり、複数のドメインをまとめた最上位の単位をフォレストと呼ぶ。ADのドメインには corp.example.co.jp のようなDNS名を付け、ドメインを作るときにはDNSの基盤が必要になる。MicrosoftのAD DS概要は、新しいドメインの作成時にDNSの委譲が作られることも説明している。名前は似ていても、ADのドメインは管理と認証の範囲であり、DNSのドメインそのものではない。
ブロードキャストドメインとコリジョンドメインは、名前ではなくLANの範囲である。ブロードキャストドメインはVLANごとに分かれ、ルータはブロードキャストを別のネットワークへ中継しない。コリジョンドメインは、半二重のイーサネットで同時に送信した信号がぶつかる範囲である。リピータハブはすべてのポートを同じコリジョンドメインにまとめ、スイッチはポートごとに分ける。全二重で通信するポートでは衝突そのものが起きない。
使われる場面と注意点
DNSのドメインは、名前解決以外にもさまざまな設定の単位になる。メールアドレスの @ より後ろはドメイン名であり、宛先ドメインのMXレコードを引いてメールサーバを探す。SPFやDKIMなどの送信ドメイン認証も、送信元のドメインを単位にして正当性を確かめる。サーバ証明書も、証明する対象をドメイン名で指定する。
| 場面 | ドメインとの関係 | 注意点 |
|---|---|---|
| Webサーバの公開 | ドメイン名を権威DNSサーバに登録する | ドメインの登録期限が切れると名前解決できなくなる |
| メールの配送 | 宛先ドメインのMXレコードで受信サーバを決める | 送信ドメイン認証の設定もドメインごとに必要になる |
| 部門ごとの管理 | サブドメインを作り、必要なら別のDNSサーバへ委譲する | 親のゾーンのNSレコードと子のゾーンの情報をそろえる |
| 社内のAD | 社内用のDNS名でドメインを構成する | インターネットの名前と衝突しないように名前を選ぶ |
社内だけで使う名前を決めるときは、自組織が登録して管理しているドメインの下にサブドメインを作る方法がある。自組織が登録していない名前を使うと、後にその名前が外部で使われたとき、名前解決の結果が衝突するおそれがある。
午後での問われ方
午後問題では、ドメインそのものの定義より、ドメインの階層と管理の分担が設計の前提として問われやすい。
| 問われる場面 | 押さえるポイント |
|---|---|
| DNSサーバの構成 | どのドメインのゾーンをどのサーバが管理するか、委譲のためにどのレコードが必要かを読み取る |
| 名前解決の流れ | ルートからトップレベル、下位の階層へと問い合わせが進む理由を説明する |
| メールの設定 | 宛先ドメインに対応するMXレコードや、送信ドメイン認証の設定箇所を答える |
| 用語の区別 | ADのドメイン、ブロードキャストドメインなど、同じ語が指す範囲の違いを文脈から判断する |