ドメイン名と名前解決
ネットワーク上のコンピュータはIPアドレス、アプリケーションはTCP/UDPのポートで特定される。コンピュータは数字が得意だし、通信も最終的には0と1のビット列で送受信される。しかし、これら数字の羅列をわれわれが直接利用するのは難しい。人間は数字を扱うのが得意ではないからだ。
0~9までの数字や記号しか使わない情報としては、電話番号や内線番号、郵便番号、住所、ソフトウェアのシリアル番号などがある。しかし、これらを覚えるのは容易ではない。なぜなら単なる数字の並びに意味がないからだ。しかし、「鳴くよ(794)うぐいす平安京」のように数字を語句と見立てて意味を与えてやれば、人間でも平安京が完成した794年という年を覚えておける。そのため、人間は番号ではなく、名前でいろいろなモノを識別する。そして、IPネットワークにおいて、この名前にあたるのが、「ドメイン名」である。
たとえば、Webブラウザから指定するURL「http://www.example.co.jp」でもドメイン名を使っている。URLを使うことで、ユーザーはIPアドレスを知らなくとも、Webサーバにアクセスし、閲覧したいページをダウンロードできる。こうした英表記の名前であれば人間でも扱いやすい。
ドメイン名を用いることで、ユーザーはインターネット上の特定のコンピュータを識別できるのだ。
IPアドレスを得るDNSの仕組み
ただ、ドメイン名はコンピュータがTCP/IPで通信するための識別子として利用できない。TCP/IPの世界では、つねにIPアドレスで通信相手を識別するからだ。そのため、人間に扱いやすいドメイン名とコンピュータに扱いやすいIPアドレスを相互に変換する「名前解決(name resolution)」という機能が必要になる。つまり、Webブラウザで「http://asciimw.jp」と指定されたら、IPアドレス「202.225.5.24」に変換するという仕組みである(図1)。コンピュータは、このIPアドレスを宛先としてパケットを送信すれば、IPを用いて送り届けられるわけだ。TCP/IPの世界でこの名前解決を実現するのが「DNS(Domain Name System)」である。 DNSはWebやメール、IP電話など幅広いアプリケーションで用いられている汎用的な名前解決の仕組みだ。
DNSの概要と必要性
DNSが登場する前、各クライアントではドメイン名とIPアドレスの関連付けを記載した「HOSTSファイル」で管理していた。これは名前と電話番号が管理されている電話帳が、携帯電話の中に収められているのと同じである。これを調べれば、特定のコンピュータがどのIPアドレスを持っているかわかるわけだ。
しかし、インターネットが普及してくると、コンピュータごとに名前とIPアドレスを管理するのが難しくなってきた。そこで、登場したのが、名前解決をインターネット上の専用の名前解決用サーバで行なうDNSである。
TCP/IPをサポートしたOSには、通常「リゾルバ」というDNSのクライアント機能が搭載されている。そのため、Webブラウザなどのアプリケーションはこのリゾルバに名前解決を依頼する。すると、リゾルバは複数の「DNSサーバ」に問い合わせ、最終的にドメイン名に対応するIPアドレスを得るという仕組みになっている。
(次ページ、「ドメイン名を構成する要素」に続く)
この連載の記事
-
第5回
ネットワーク
Windowsネットワークの名前と番号 -
第3回
ネットワーク
EthernetでのID「MACアドレス」を理解する -
第2回
ネットワーク
IPアドレスの柔軟な割り当てを実現するサブネットマスク -
第1回
ネットワーク
TCP/IPで使われるIPアドレスとポート番号 -
ネットワーク
完全解剖「名前とアドレス」<目次> - この連載の一覧へ