DNSの歴史とは?HOSTS.TXTからBIND誕生までの進化を理解する

DNSヒストリー

DNSの歴史とBINDの誕生

現在のインターネットでは、DNS(Domain Name System)は当たり前のように利用されています。

私たちはブラウザにURLを入力するだけでWebサイトへアクセスできますが、その裏ではDNSによる名前解決が行われています。

しかし、インターネットが誕生した当初からDNSが存在したわけではありません。

実はDNSが登場する前は、世界中のコンピュータが1つのテキストファイルを共有するという非常にシンプルな方法で名前管理を行っていました。

本記事では、DNSが誕生した背景や歴史、そして現在も広く利用されているBINDの誕生について解説します。

DNSが存在しなかった時代

1960年代から1970年代にかけて、インターネットの前身であるARPANETが運用されていました。

当時は接続されるコンピュータの数が少なく、ホスト名とIPアドレスの対応表を1つのファイルで管理できていました。

そのファイルがHOSTS.TXTです。

HOSTS.TXTとは

HOSTS.TXTは、ホスト名とIPアドレスを記載したテキストファイルです。

現在のhostsファイルの祖先とも言える存在です。

例えば次のような形式でした。

192.168.1.10 host1
192.168.1.20 host2
192.168.1.30 host3

利用者はこのファイルを定期的に取得し、自分のコンピュータへ保存していました。

HOSTS.TXTの管理方法

HOSTS.TXTは、当時のSRI-NIC(Stanford Research Institute Network Information Center)が管理していました。

ネットワーク管理者は新しいホストを登録したい場合、SRI-NICへ申請します。

承認されるとHOSTS.TXTへ追加されます。

その後、各ホストが最新版を取得します。

インターネットの成長と限界

ARPANETからインターネットへ発展するにつれて、接続されるホスト数は急激に増加しました。

その結果、HOSTS.TXTによる管理は限界を迎えます。

主な問題点は次の通りです。

  • ファイルサイズの肥大化
  • 更新作業の負荷増大
  • 単一管理によるボトルネック
  • 反映遅延

ホスト数が数千、数万と増えるにつれて運用が困難になりました。

分散管理の必要性

インターネットは世界中へ広がり続けていました。

中央集権型のHOSTS.TXTでは対応できなくなります。

そこで求められたのが分散管理です。

各組織が自分のドメイン情報を管理できる仕組みが必要になりました。

DNS誕生の背景

1983年、DNSの設計が開始されました。

DNSは次のような要件を満たすために開発されました。

  • 分散管理
  • 階層構造
  • 拡張性
  • 高速検索
  • 冗長化

これによりインターネット規模の名前管理が可能になります。

RFC882とRFC883

最初のDNS仕様は1983年に公開されました。

  • RFC882
  • RFC883

これらがDNSの最初の仕様書です。

その後改良が行われました。

RFC1034とRFC1035

現在のDNSの基礎となるRFCが1987年に公開されました。

  • RFC1034
  • RFC1035

現在のDNSサーバも基本的にはこの仕様に従っています。

DNSを深く学ぶ際には必ず登場する重要なRFCです。

DNSの階層構造

DNSではツリー構造が採用されました。

.
├── com
├── net
├── org
└── jp

この仕組みにより、各組織が自分のドメインを管理できるようになりました。

現在でもこの考え方は変わっていません。

BINDとは

DNSが普及する上で欠かせない存在がBINDです。

BINDは「Berkeley Internet Name Domain」の略です。

現在でも世界中で利用されているDNSサーバソフトウェアです。

BIND誕生の背景

1980年代半ば、DNSは仕様として存在していましたが、実際に利用できるDNSサーバソフトウェアが必要でした。

そこでカリフォルニア大学バークレー校によって開発されたのがBINDです。

1984年頃に最初のバージョンが登場しました。

なぜBINDが普及したのか

BINDが広く普及した理由はBSD UNIXに標準搭載されたことです。

当時のインターネットサーバの多くはBSD系UNIXで動作していました。

結果としてBINDは急速に普及しました。

BINDの特徴

  • オープンソース
  • RFC準拠
  • 高い互換性
  • ゾーン転送対応
  • 再帰問い合わせ対応
  • DNSSEC対応

現在でも多くのLinuxサーバで利用されています。

BINDのバージョン変遷

BINDは長い歴史の中で進化を続けています。

バージョン特徴
BIND4初期の普及版
BIND8機能強化
BIND9現在の主流

現在のLinuxディストリビューションではBIND9が利用されています。

LinuxとBIND

Rocky LinuxやAlmaLinuxでは次のパッケージとして提供されています。

bind
bind-utils

DNSサーバ構築の定番ソフトウェアです。

BIND以外のDNSサーバ

現在はBIND以外にもさまざまなDNSサーバがあります。

  • Unbound
  • PowerDNS
  • Knot DNS
  • NSD
  • CoreDNS

しかし学習用途や実務では依然としてBINDの知識が重要です。

クラウド時代のDNS

現在ではクラウドDNSサービスも広く利用されています。

  • AWS Route53
  • Azure DNS
  • Google Cloud DNS
  • Cloudflare DNS

利用者はBINDを直接操作しなくてもDNSを管理できるようになりました。

しかし内部的にはDNSの基本原理は変わっていません。

DNSの歴史から学べること

DNSの歴史を知ることで、なぜDNSが階層構造になっているのか理解できます。

また、なぜゾーンや権威DNSサーバという考え方が存在するのかも見えてきます。

現在のDNS設計は、HOSTS.TXT時代の課題を解決するために生まれたものなのです。

まとめ

DNSが誕生する前はHOSTS.TXTによって名前管理が行われていました。

しかしインターネットの拡大によって中央管理方式は限界を迎え、分散管理を実現するDNSが開発されました。

その後、カリフォルニア大学バークレー校によってBINDが開発され、DNS普及の大きな原動力となりました。

現在はクラウドDNSサービスが普及していますが、その根底にはDNSとBINDが築き上げた仕組みがあります。

DNSの歴史を知ることは、現代のインターネットを理解する上で非常に重要な知識と言えるでしょう。