一つのディレクトリに同名のファイルを置くことはできませんが、ディレクトリが違えば同名のファイルが存在しても何の不都合もありません。ディレクトリ名を意識すればそれぞれのファイルを識別できるからです。
――― 膨大な数のホスト名を重複する事なく登録でき、特定のホスト名を混同することなく容易に識別可能にする。またホスト名の変化にも柔軟に対処でき管理も容易にする。―――
DNSは下図のような逆ツリー構造の管理領域(仮想空間)を採用する事で、こうしたことを可能としています。
分岐点や末端(黒丸で表示しています)をノードといいます。ノードには他のノードと識別できるような、最長63文字のテキスト ラベル(com, edu, jp等)を付けます。
この管理領域を
「ドメイン名空間」、または
「名前空間」と呼びます。
ドメイン名空間は組織や団体のカテゴリに応じて分割(分岐)することができます。
インターネットに接続(加入)しようとする組織・団体(個人でも可能)には、適切な位置で分割(分岐)したノードが割り当てられます。
割り当てられたノードとその下部の構成は、管理者の采配に(規則の範囲内で)任されます。各種サーバー類を設置する事はもちろん、各部署やカテゴリ別に新たな分岐を設ける事も可能です。
1つの分岐点に着目してその下部を眺めると、そこにも小さな逆ツリー構造があります。こうして部分的にピックアップしたツリー構造を
部分ツリーといいます。
部分ツリーが形成する領域を
ドメインと言い、部分ツリーの頂点に位置するノードからルートまでのノードのラベル名を列挙したものが
ドメイン名になります。
ドメインとは、
あるノードを頂点とする
部分ツリーが占有している領域(仮想空間)を指します。
ドメイン内部に存在するドメインの事を
サブドメインと呼びます(上位ドメインは親ドメインです)。サブドメインは自身が親ドメインとなってサブドメインを置くこともできます。
DNSは柔軟に分岐できる逆ツリー構造(ドメイン名空間)を採用することで、増大するホスト数に対応可能になりました。
また、ホストの指定にドメイン名を組み合わせる方法を採用した結果、ホスト名の重複が起きない構造になっています。
※ | DNSでは兄弟(親のノードが同じ)ノードに同じラベル名を付けることは禁止されています。
しかしノード異なれば同じ名称のラベルも存在可能なので、ホスト名が重複する危険性は大幅に減少します。
Linuxやwindowsが同一ディレクトリ(フォルダー)内では、2つのファイルに同じ名称を付けることができないというファイル名の規則と似ています。
|
全ホスト名をSRI-NICで一元管理していたHOSTS.TXT形式の失敗を踏まえ、DNSでは組織や団体のカテゴリに応じて分割した部分ツリー(ドメイン)に、その領域に関する権限と管理をその組織や団体に移譲する事にしました。これを委任といいます。
委任を受けた組織では自ドメイン内の管理を行いながら、部分ツリー内部をさらに細分化し(サブドメインを設け)て分割・委任することも可能です。委任したサブドメイン内の管理はサブドメイン側に移ります。
こうしてツリー構造を細分化し委任することで管理範囲は小さくなり、ドメイン名の重複が起きにくく変化にも即応できるシステムが可能となります。
管理しなければならない範囲を明確に(自ドメイン内に限定)し、それぞれが自ドメイン内の管理を徹底することでDNSの機能は維持されています。
※ | DNSは巨大な分散データベースといえます。 分割・委任された各組織が維持管理するデータベースの連携を、ネットワーク全体で利用しています。 |
ドメイン名は、ドメイン名空間(逆ツリー構造)という大きな広がりの中で、特定のノードの位置を表す住所のようなもので、次の形式で表記されます。
【 ドメイン名の書式 】
ノードからルート方向に辿ってラベル名を列挙し、ラベル名とラベル名の間をドット(.)で区切ります。
ホスト名という言葉は様々なシステムで使われています。ネットワーク上の通信可能な機器に付けられた名称が始まりですが、その意味する所はシステムごとに微妙に異なるようです。
インターネットにおけるホスト名はドメイン名の一種で、ドメイン名と同じ表記法が使われます。
ドメイン名とホスト名をまとめると、次のようになります。
- ドメイン
ドメイン名空間内の1つのノードに着目した時、そのノードを頂点とした部分ツリーが占有している領域をドメインと言います。
- ドメイン名
ドメインやノードを特定するための(書式が決められている)表記。
ドメイン名空間(逆ツリー構造)内におけるドメイン(あるいはノード)の位置を示す表記で、上述の【ドメイン名の書式】に従って記述されます。
- ホスト
ネットワークに接続されているサーバー、ルータ、パソコン、プリンタ等、他者と通信可能な機器をホストと言います。
インターネット(DNS)に限ればサーバー、ルータのことを指すと考えて差し支えないでしょう。
- ホスト名
ネットワークに接続された機器に付けられている名称をローカルホスト名といいます。
インターネットにおけるホスト名はホストに付けられたドメイン名の一種で、所属する親の「ドメイン名」と「ローカルホスト名」との組み合わせで表現されます。
このサイトの場合、親ドメイン名が wakwak.com、ローカルホスト名が park12 なので、ホスト名は park12.wakwak.com となります。
ホスト名とドメイン名はしばしば同じ意味で使われますが、両者には微妙な違いがあります。このサイトの park12.wakwak.com を例にすると次のようになります。
park12.wakwak.com | ホスト名であり、同時にドメイン名。 |
park12 | ローカルホスト名。 正規なホスト名(park12.wakwak.com)の省略形としても使われます。 |
wakwak.com | ホスト名であり、同時にドメイン名。
wakwak.com は park12.wakwak.com の親ドメイン名ですが、wakwakプロバイダのホームページを提供しているサーバーのホスト名でもあります。
|
com | ドメイン名。 |
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
ドメイン名の書式を忠実に守ってルートノードまでを記述すると、このサイトのドメイン(ホスト)名は次のようになります。
park12.wakwak.com.
表記の最後がドット(.)で終わっていますが、実際にはドットの後にルートノードのラベル(文字数ゼロの空ラベル)があるのです。こうした表記は
絶対ドメイン名と呼ばれます。
絶対ドメイン名は、完全に限定されたドメイン名( Fully Qualified Domain Name )とも呼ばれ、
FQDN と略します。
FQDNはDNSツリー構造内でのノードの位置を、ルートを起点とした絶対的な位置として表しています。しかし、このような厳密な書き方はほとんど使われず、最後のドットを省略した書き方が広く使われています。
FQDNはDNSサーバーの設定では必須の書き方です。
ドメイン内部に存在するドメインは、その(上位)ドメインのサブドメインです。
つまり(ルートドメインを除く)すべてのドメインは上位ドメインのサブドメインにあたります。
これは一つのドメインが複数ドメインのサブドメインにあたる場合もある事を示しています。
例えば下図のような構成のドメインがあったとします。
この時のドメインとサブ ドメインの関係は次のようになります。
project.ed.jpドメイン | ed.jpドメイン、jpドメイン両方のサブドメイン。 |
ed.jpドメイン | jpドメインのサブドメイン。 |