永尾 幸夫 NTTデータ関西テクシス ソリューションマーケティンググループ テクニカルサポート担当

ホスト名をサーバーで一元管理するDNS

 現在では,実際に名前解決にhostsファイルを使うことは少ない。TCP/IPネットワークの初期段階で,まだインターネットの規模が小さかったころは,ホスト名はネットワーク管理者によって,ただ一つのhostsファイルに登録され,各ホストに同じhostsファイルが配布されていた。しかし,ホストの数が増え始めると,hostsファイルの更新や配布の手間が大きくなってきた。hostsファイルの更新のたびに末端のホストまで配布されるのに時間がかかり,末端で更新が終了するころには次のホストが追加され,また更新しなければならないという事態になってきたのである*7

写真3●自分のパソコンのDNSサーバーを確認してみる
Windows95/98/Meでwinipcfgを動かし,「詳細」ボタンを押したところ
図1●インターネット上で使われる名前は,DNSで管理されている
 このため,各ホストでhostsファイルを持つのではなく,情報を一元管理するサーバーにホスト名とIPアドレスの情報を集積して管理させ,各ホストは必要に応じてサーバーに問い合わせることで名前解決を行う方法が考え出された。これが「DNS(Domain Name System)」であり,一元管理するサーバーを「DNSサーバー」と呼ぶ。また,DNSサーバーに問い合わせる各ホストは,「DNSクライアント」または「リゾルバ」と呼ばれる。

 自分のパソコンが問い合わせるDNSサーバーを確認するには,Windows95/98/MeであればMS-DOSプロンプト(もしくは「ファイル名を指定して実行」)から「winipcfg」と入力し,表示された画面で「詳細」ボタンを押せばよい(写真3[拡大表示])*8

 社内のDNSサーバーでは,社内サーバーのホスト名とIPアドレスの組み合わせ情報などが一元管理されている。さらに,Webサイトにアクセスするときに使うURL(Uniform Resource Locator)や電子メールのあて先に使うメール・アドレスなど,現在インターネット上で使われている名前も,すべてDNSで管理されている(図1[拡大表示])。DNSは,IPアドレスと同様にインターネットにおいて欠くことのできないシステムなのである。

「.」で区切られた単位で分割して管理

 ここで疑問に感じるかもしれない。「サーバーで一元管理するといっても,インターネット上には膨大な数のホストが存在し,日々増えている。それだけの数の名前情報を維持,更新するのは大変ではないか。また,サーバーに対する問い合わせのトラフィックも集中しないか」と。これらで問題が出ないのは,実はDNSは情報を分散して管理しているからだ。

図2●FQDN名は階層構造で図式化される(TLDなどは,注釈*9を参照)
 前述した名前解決の実験ではホスト名を単に「nikkeiopen」などと指定していたが,DNSでは「nikkeiopen.nikkeibp.co.jp」のような「FQDN(Fully Qualified Domain Name:完全修飾ドメイン名)」でホストを識別する。FQDNを左から見て,最初の「.」から右の部分を「ドメイン名」と呼ぶ。さらにドメイン名は幾つかの文字列を「.」で区切った形式を採っており,「.」で区切られた部分を「ドメイン」と呼ぶ。DNSではドメインごとに名前の管理が分割され,最終的にFQDNは,木を逆さまにしたような階層構造で図式化される(図2[拡大表示])。

 例えば「www.sample.co.jp」という名前(FQDN)のホストがあった場合,「www」というホスト名は「sample.co.jp」を管轄するDNSサーバーによって管理される。そして「sample」というドメインは「co.jp」を管轄するDNSサーバーによって,「co」というドメインは「jp」を管轄するDNSサーバーによって管理されるといった具合だ。これならば各DNSサーバーは,自分の所属する階層の名前だけを管理すればよい。つまり「sample.co.jp」というドメインを管轄しているDNSサーバーは「***.sample.co.jp」というFQDNのホストの名前とIPアドレスだけを管理すればよく,管理しなければならない情報の数が少なくなる。

 このように,ドメイン単位で分散管理を行うと,名前(FQDN)の重複も起こりにくくなる。例えば「www.sample.co.jp」と「www.test.co.jp」は全く別のホストの名前として扱われるため,ドメインが異なれば同じホスト名を付けることができるのである。

 なお,図2の逆木構造の頂点に位置するのは,「ルート・ドメイン」と呼ばれる空白の名前の特別なドメインである。ルート・ドメインを管轄するDNSサーバーは世界中に13存在し,そのIPアドレスは各DNSサーバーで情報をもっている。また,ドメイン名は,地名と同じで勝手に付与されるものではなく,権威のある機関が責任を持って管理,運営している*9。なお,ドメイン名で用いられる文字は,基本的に英数字およびハイフンだけで,大文字小文字の区別はない。