DNS / Domain Name System
■ ドメイン名
インターネットに接続された企業や団体を
識別するための文字列のこと。
あるホストやサイト等が属するドメイン(領域)を表わす。
数字の羅列であるIPアドレスは人間にとって扱いにくいため、
別名として、アルファベット等を使うことができるようにした。
■ FQDN。Fully Qualified Domain Name。
完全修飾ドメイン名。
インターネットなどのTCP/IPネットワーク環境で、
ドメイン名、サブドメイン名、ホスト名のすべてを、
省略せずに記述した名前のこと。
たとえばwww.abc.co.jpはFQDNであるが、
ホスト名を省略したabc.co.jpはFQDNではない。
■ ドメイン名空間の構造
ドメイン名は、
組織や地域ごとに階層構造(ツリー構造)を持ち、
巨大な名前空間(ゾーン)を形成している。
具体的には、トップレベルドメイン、
セカンドレベルドメイン、サブドメインからなり、
各階層ごとに一意に名前を付けることで、
全体として名前が重複することを避けている。
(1) トップレベルドメイン
- gTLD。generic Top Level Domain。
com(営利企業)、org(非営利組織)、gov(米政府)…
- ccTLD。country codes Top Level Domain。
jp(日本)、uk(英国)、de(ドイツ)、…
(2) セカンドレベルドメイン
- 属性ドメイン
co(企業)、go(行政)、ne(ISP)、…
- 地域ドメイン
tokyo(東京)、hokkaido(北海道)、shizuoka(静岡)、…
- 汎用ドメイン
名前の付け方に制限はない。
漢字、ひらがななどを使用できる。
(3) サブドメイン
ユーザの個別の事情に応じて、
サブネット構成ごと、事業拠点ごとに自由に命名する。
■ ドメイン名空間の管理
ドメイン名の階層構造に準じて、
ドメイン名の管理も階層的に行なわれている。
(1) ICANN。
IPアドレス空間、ドメイン名空間の全体を、
最上位で統括管理している非営利組織。
トップレベルドメインを決めるのがこのICANNである。。
(2) レジストリ。Registry。
ICANNから特定のトップレベルドメインと
その配下のドメイン名空間の管理を委託された組織。
日本ではJPRSがレジストリになり、
jpドメインとセカンドレベルドメインを管理している。
(3) レジストラ。Registrar。
レジストリからドメイン登録業務の代行を任命された事業者。
ふつうは各国のISPや専門の業者がレジストラになり、
個々の企業や個人からの登録申請を処理する。
■ 名前解決。
ドメイン名は憶えやすく便利だが、
最終的に通信するには、相手のドメイン名が
どのIPアドレスに対応しているかの情報を得る必要がある。
この作業を名前解決(Name Resolusion)と呼び、
hostsファイルを使用する方法と、
DNS(Domain Name Systen)を使用する方法がある。
■ hosts ファイルによる方法
インターネットが広く普及する前、
インターネットがARPANETと呼ばれていた頃に使われた、
名前解決の方法。
各ホスト自身が、あらかじめ
ドメイン名とIPアドレスの対応付けを記したリストである
hosts.txtファイルを保持し、
通信するごとにこれを参照して、IPアドレスを解決するもの。
hosts.txtは、当時SRI-NIC(※)が管理していた。
SRI-NICは、各サイトの管理者からのメール通知により
都度エントリを更新、
ユーザは定期的に最新版をダウンロードする必要があった。
しかし、ホスト数が増大するにつれて、
この運用方式では継続が困難となり、
1984年に分散システムによるDNSが開発された。
※ SRI-NIC = SRI International Network Information Center
■ DNS。Domain Name System。
ホスト名とIPアドレスの相互変換をする機能。
またはその機能を実装した分散データベースシステム。
ポート番号53を使用し、TCPとUDPの両方で動作する。
DNSでは、組織や企業が自らのネットワーク内に
ホスト情報データベースを集中管理するネームサーバを設けて、
それらを用いて効率よく名前解決を行う。
ただし、個々のネームサーバが保持するホスト名の情報は、
自ドメイン内のものに限られ、それ以外のホスト情報ついては、
他のネームサーバに問合せることにより解決する。
DNSを構成するネームサーバは、
世界中に無数に存在ずるが、これらは
ルートネームサーバとローカルネームサーバに分類できる。
■ ルートネームサーバ
最上位に位置するネームサーバ群。
ルートネームサーバは、世界中に13組存在しか存在しない。
13組すべてが同じ情報を同期保持し、負荷分散を行っている。
具体的には、IANA、欧州RIPE-NCC、米PSINet社、米VeriSign社(2台)、
米国防総省、米陸軍研究所、米NASA、米ISI、米ISC、米Maryland大学、
ノルウェーNORDUnet、日本WIDEが管理している。
一般のネームサーバは、
自分の管轄外のドメイン名について問合せを受けた場合、
何はともあれ最初にルートネームサーバに問合せることになっている。
このためルートネームサーバには、
世界中のネームサーバからのアクセスが集中することになる。
するとルートネームサーバは、
該当するトップレベルドメインを管理するネームサーバの情報を返答するので、
一般のネームサーバは今度はここに回答を求める。
■ ローカルネームサーバ
一般のネームサーバ。
各組織、各企業に設置されるネームサーバ。
ローカルネームサーバは、
WWWやメールなど、多くのサービスの基盤となっている。
このためたいへん負荷が高く、仕様上冗長構成を採ることが決まっている。
したがってどのような企業や組織であっても、
独自ドメインを使用する限り、
プライマリ、セカンダリの2つのネームサーバを運用している。
(1) プライマリネームサーバ。
メインのネームサーバ。
ホスト情報データベースのマスターを管理している。
(2) セカンダリネームサーバ。
2台目以降のネームサーバ。
ホスト情報データベースのコピーを管理している。
■ リゾルバ。Resolver。
上位アプリケーションの要求に従い、
ネームサーバに名前解決の問合せをするソフトウェアのこと。
通常はOSに実装されている。
リゾルバは、一度調べたドメイン名/IPアドレスは、
しばらくの間テーブルに保管(キャッシュ)しておく。
こうすることで応答の高速化を図ることができる。
■ DNSの手順。
リゾルバがDNSを使って、
ホスト名からIPアドレスを解決する手順を、
順に追っていく。
(1) ユーザ(リゾルバ)は、
まずローカルネームサーバにアクセスして、名前解決を要求する。
(2) ローカルネームサーバは、
自身のキャッシュを参照して
検索対象ホストの情報が保持されているかどうかを確認し、
保持されていれば、この情報を回答する。
(3) もし検索対象ホストの情報が保持されていなければ、
ローカルネームサーバはルートネームサーバに問合せ、
ホストが所属するトップレベルドメインを管理する
下位ネームサーバのIPアドレスを教えてもらう。
(4) 次にローカルネームサーバは、
教えてもらったネームサーバにアクセスして、
ホストが所属するセカンドレベルドメインを管理する
下位ネームサーバのIPアドレスを教えてもらう。
(5) さらにローカルネームサーバは、
教えてもらったネームサーバにアクセスして、
ホストが所属する企業または組織の運営する
ネームサーバのIPアドレスを教えてもらう。
(6) こうしてローカルネームサーバは、
教えてもらったネームサーバに順にアクセスして、
最終的には、正に宛先ホストを定義したネームサーバに到達する。
ここでようやくIPアドレスを解決することができ、
リゾルバに対してこれを回答する。
(7) ローカルネームサーバとリゾルバは、
一旦問い合わせた情報はしばらくの間キャッシュに保存する。
キャッシュは一定時間後には破棄される。
■ 正引きと逆引き
(1) 正引き
ドメイン名から対応するIPアドレスを調べること。
DNSのメインの仕事。
これさえ動いていれば、大抵のケースで問題は起こらない。
(2) 逆引き
IPアドレスから対応するドメイン名を調べる仕組み。
あまり使わない。
しかしWebサーバ等で、不正IPアドレスをはじくために、
アクセス元のIPアドレスを1つ1つ逆引きする場合がある。
2004/03/09 pm