吉川 洋太郎

ラック コンピュータセキュリティ研究所

 インターネットやイントラネットといった,TCP/IPネットワークの利用には不可欠なDNS(Domain Name System:ドメイン・ネーム・システム)。ホスト名を問い合わせると,そのホストのIPアドレスを返してくれます(これを「名前解決」といいます)。また,その逆も可能です。

 そのため,数字の羅列であるIPアドレス(例えば,“211.2.246.25”)を覚えていなくても,意味がある文字列で構成されるホスト名(例えば,“itpro.nikkeibp.co.jp”)を覚えていれば,そのホストへアクセスできます。

 今や当たり前のように利用しているDNSですが,TCP/IPネットワークが構築されたときから,存在するわけではありません。DNSが現在のように利用可能になるまでには,紆余曲折(うよきょくせつ)がありました。このコラムでは,5回にわたって,その歴史を紐(ひも)解いてみたいと思います。

HOSTSファイルで名前解決

 1970年代,今のインターネットの原型となったARPAnet(Advanced Research Projects Agency:米国国防総省高等研究計画局 *1)では,名前解決に「HOSTS.TXT」というテキスト・ファイルを利用していました。UNIX の「/etc/hosts」ファイルは,その名残といえるでしょう。また,Windows NTやWindows 2000にも,「%Systemroot%\System32\drivers\etc\hosts」などとして,残されています。

 HOSTS.TXTは次のようなフォーマットでした。

127.0.0.1	localhost
211.2.246.25	ITPRO-WWW

 HOSTS.TXTには,1行に「ホスト名」と「IPアドレス」の対が記載されています。現在UNIXなどで使用しているhostsファイルと,フォーマットはほぼ同じです。

 このファイルを自分のマシンに置いておけば,使用するアプリケーションがHOSTS.TXTに全文検索をかけて,指定したホスト名に対応するIPアドレスを読み込みます。そして,そのIPアドレスに接続しようとします。

 なお,ここで1点補足しておくと,現在ではスタンダードになっているTCP/IPですが,これも最初から使用されていたわけではありません。ARPAnetの成長の過程で開発されました。TCP/IP自体は1978年に標準化され,様々なテストを経て1983年の1月1日に正式移行,つまり,ARPAnetの正式なプロトコルになりました。

 ARPAnet上のすべてのホスト情報を収めた HOSTS.TXTは,Stanford Research Institute(SRI)のNetwork Information Center(NIC)によって管理されていました。ARPAnetに新しいホストが加わると,その情報を,NICがHOSTS.TXTに反映します。そして,最新のHOSTS.TXTを,「SRI-NIC」というホストに置きます。そのファイルが必要な人間--すなわち,ほかのホストと通信をするために,名前解決をしたいユーザー--は,SRI-NICから最新のHOSTS.TXTをFTP(File Transfer Protocol)で取得して,自分のホストに置いたのです。

 当初,ARPAnetには,わずか数百台のホストしかありませんでした。そのため,ネット上のホスト情報すべてを,1つのHOST.TXTファイルに記載しておくことが可能でした。しかし,ARPAnetが成長していくに従って,この方法は破綻をきたし始めたのです。

 ARPAnetが,現在のインターネットに近い形になった1983年には,ホスト数はおよそ数万台。SRI-NICのFTPサービスは完全な過負荷状態になっていました。HOSTS.TXTファイルが大きくなり過ぎてしまったのです。さらに,問題はそれだけではありませんでした(詳細については,次回)。そのため,事実上,HOSTS.TXTファイルによる名前解決は不可能になってしまいました。

*1 後に,DARPA(Defence Advanced Research Projects Agency)に名称変更