パソコン実習室
アドレス検索 - DNSの話
  next ≫

T.DNSの前に

 アドレス (例えば http://park12.wakwak.com・・・) を入力したり、リンクをクリックするとホームページが表示されます。 リンクにはアドレスが埋め込まれていますから、クリックはそのアドレスを指定した事になります。
このアドレスって、どこを指しているのでしょう。

※ インターネット通信規格のIP(Internet Protocol)にもバージョンがあって、現在はバージョン4(IPv4)から
  バージョン6(IPv6)への移行期にあります。( IPv5は研究用に予約されていて一般には使われていません )
  DNSも例外なくその影響下にありますが、ここではIPv4を基調に説明しIPv6に関する部分は割愛しています。

T.1.ホームページの表示

 ユーザーがアドレス入力やリンクのクリックを行うと、ブラウザ(ホームページを表示するソフト)はインターネットのどこかに保存されているファイル(ホームページ用のデータ)を要求&取得し、そのファイルの内容に基づいてホームページを描画しています。
 ファイルの保存場所は web サーバーと呼ばれるコンピューターであることが一般的です。

 ブラウザがどんなファイルを要求したかは、ブラウザのアドレス欄を見ると判ります。
このページを見ている時、ブラウザのアドレス欄は下記のようになります。

http://park12.wakwak.com/~eslab/pcmemo/dns/index.html

この記述はそれぞれ次のような意味があります。
httpホームページ用データ送受信の通信規約
( hyper text transfer protocol )
:通信規約の指定部とアドレス指定部の区切り
//指定のアドレスがネットワーク上にあることを示しています。
park12web サービスを提供しているサーバー (ホストともいいます) の名称
wakwak.comサーバーが属しているドメイン
/~eslab/pcmemo/dns/サーバー内のディレクトリ (フォルダーと同義)
index.htmlファイル名

 ブラウザは wakwak.com ドメインにある park12 (web サーバー) との間で http の規則に基づいて通信を行い、/~eslab/pcmemo/dns/ ディレクトリにある index.html ファイルを要求し、その結果を表示しているのです。
※ 実際には index.html 以外のファイルも追加要求し、画面構成を整えて表示しています。
  追加要求するファイルは index.html の中に記述されています。


T.2.IPアドレスが必須

 インターネットにおける端末 (コンピューター等) 同士の通信は、自分のIPアドレスと相手のIPアドレスを明記した要求文 (あるいは回答文) を、インターネット上に流すという方法で行われます。
※ 自分の IP アドレスは、返信 (回答) を自分宛に送ってもらうために必須です。

 お使いのブラウザも、次のような通信(要求)文をインターネット上に送信していた筈です。
・・・・・, 192.168.1.234, 219.103.130.73, 49228, 80,
  GET /~eslab/pcmemo/dns/index.heml, HTTP 1.1, ・・・・・

 この通信文の概略は次の通りです。
192.168.1.234送信元(自分)のIPアドレス(環境で異なります)
219.103.130.73宛先(park12.wakwak.com)のIPアドレス
49228受信(待ち受け)用のポート番号
(適宜変化します)
80宛先のポート番号
80 はwebサーバーの標準ポート番号
GET /~eslab/pcmemo/dns/index.heml指定ファイルの送信要求
HTTP 1.1通信に使用するhttpのバージョン

 送り出された通信文は、ルーター等の中継機器が宛先のIPアドレスを読み取って次の中継機器へ転送する、いわゆるバケツリレーが繰り返されて宛先のホストまで届きます。

 要求文を受信したwebサーバーは、要求されたホームページ用ファイルを送り返します。この時、送信元アドレスには自身(park12.wakwak.com)のIPアドレス、宛先のアドレスには要求文にあった送信元IPアドレスが入ります。
 インターネット上に送り出された通信(回答)文は、要求文の時と同様にルーター等の中継機器によるバケツリレーが行われて要求元に届きます。

 実際の通信においては、1ページ分のデータであっても複数回のやり取りが行われ、そのすべての通信文に双方のIPアドレスがセットされています。インターネット上で通信を行うには、相手のIPアドレスを知ることが大前提なのです。

 初めからIPアドレスのみでインターネットを運用すれば面倒な仕組みなど無用なのですが、ホスト名に意味を持たせた文字列(上記の例では park12.wakwak.com)を使った方が覚えやすく、用途も容易に想像がつくので人間には好都合なのです。
 またIPアドレスとは別系統のドメイン名を用いる事で、IPアドレスの変更に柔軟に対応できるメリットもあります。例えばwebサーバー設置地域の移動等でIPアドレスに変更があっても、DNSサーバーのデータ(IPアドレス)修正だけで済み、ドメイン名には何の影響もありません。


T.3.HOSTSからDNSへ

 ホスト名をIPアドレスに変換(検索)することを名前解決といいます。DNSは名前解決の優れた仕組みですが、初めから存在していた訳ではありません。

 現在のようなインターネットが普及する前は、様々な形態のネットワークが提唱・実験されていました。その中でもっとも成功したのがパケット通信方式を用いたARPAnet(アーパネット:Advanced Research Projects Agency Network)です。ARPAnetは学術研究と技術検証用のネットワークで、1969年に4拠点を結んで運用が開始されました。
※ ホスト同士の接続に初期のARPAnetはIMP(Interface Message Processor)を用いていましたが、1972
  年までにNCP(Network Control Program)に改められ、1983年にはTCP/IPが採用されました。
※ インターネットという言葉は1974年に登場し、商用のインターネット接続プロバイダが登場したのは
  1989年の事です。

 その頃のARPAnetの名前解決には「HOSTS.TXT」という、ホスト名とIPアドレスの対応表が使用されていて、全ユーザーが同じHOSTS.TXTをもっていることが大前提でした。
 このファイルの名残りはwindowsでは %Systemroot%\System32\drivers\etc\hosts, UNIXやLinuxでは /etc/hosts として残っています。

 HOSTS.TXTは次のような形式の、1行の中にIPアドレスとホスト名を対応させたテキストファイルです。
127.0.0.1localhost
219.103.130.73eslab
 ユーザーがホスト名を入力すると、アプリケーションがHOSTS.TXTをスキャンして対応するIPアドレスを検出し、相手ホストとの通信を行う方式でした。
※ この頃はまだドメインの概念はなく、全ホストが同一レベル(階層)に存在するネットワークでした。
  従ってホスト名にはドットで区切られたドメイン名はありません。

 HOSTS.TXTはSRI-NIC(Stanford Research Institute's Network Information Center)が一元管理して公開していたので、ホストの新設や変更があった場合は、ホスト名とIPアドレスをSRI-NICに通知してHOSTS.TXTの更新を依頼します。またユーザーは最新のHOSTS.TXTをSRI-NICから入手(ダウンロード)して、自分のホストに反映していました。

 当初は順調でしたが、ホスト数の増大に伴って様々な問題が顕在化してきました。
ホスト名やIPアドレスの管理(重複の回避)が困難になると同時に、肥大化したHOSTS.TXTのダウンロードがネットワークを圧迫し始めたのです。

 HOSTS.TXTに代わる新たな名前解決の仕組み(システム)が必要となり、次の要件を満たす新しいシステムの研究が始まります。
  • 大量のホスト名を重複することなく登録可能。
  • 特定のホストを一意に識別できる。
  • 管理が容易。
  • 誰でも参照可能。
  • ネットワークを圧迫しない。
 HOSTS.TXTの反省を踏まえて開発されたDNSは、ホスト名の命名規則にドメインという階層構造を導入し、一極集中だった管理方式を改めて分散管理としています。DNSの基本概念は1982年に発表されましたが、導入が始まったのは1985年の事でした。

 DNS (Domain Name System) は、ホスト名(ドメイン名)とIPアドレス双方向の変換(検索)を行い、データの信頼性を損なうことなく変化に柔軟に対応できる仕組み(管理システム)として設計されています。

※ ARPAnetは1990年に運用が終了しています。




  [[ アドレス検索 - DNSの話 ]] next ≫