ドメイン名を使ってWebサイトにアクセスできるのはDNSのおかげ——。インターネットのしくみをかじったことがあるなら,DNSがインターネットを支える重要なしくみであることは知っているかもしれない。

 それでも,Webアクセスや電子メールを使っているとき,そこでDNSが働いていることはほとんど意識しないだろう。パソコンにはDNSサーバーのIPアドレスを登録しておく必要があるが,それさえ終わればあとは何もしなくていい。しかも,DNSサーバーのIPアドレスを自動取得するしくみが普及しつつあるため,今以上にDNSは見えにくくなるだろう。

 しかし,DNSはインターネットになくてはならない最重要のしくみであり,これをきちんとおさえていないと,インターネット上のアプリケーションのしくみも理解できない。DNSとはそもそもどのようなルールで動いているのか,どうすればドメイン名が使えるようになるのか——。

 まずは,そもそもなぜDNSというしくみが生まれたのか,そのあたりから見ていくことにしよう。

■役割はインターネットの電話帳

 あなたが知り合いから電話番号を聞いたとしよう。忘れないように,電話番号と相手の名前をどこかに書き留めるのではないだろうか。

 インターネットも最初はそうだった。初期のインターネットでは,コンピュータはすべて,ほかのコンピュータの名前とIPアドレスを対応付けた対応表を持っていた。「hosts.txt」と呼ぶファイルがそれである。通信したい相手(コンピュータ)の名前とIPアドレスを書き込むというシンプルなものだ。新しいコンピュータがインターネットに参加すると,ユーザーはみな自分のコンピュータのhosts.txtを更新した。

 実はDNSが実現していることは,基本的にこのhosts.txtでやっていたことと変わらない。もちろんしくみは大きく変わったし,コンピュータの名前を付けるルールや登録方法も違っている。ただし,基本的な役割は単純そのもの。人間が名付けたコンピュータの名前と,そのコンピュータに割り当てられているIPアドレスとを対応付けることだ。

図1 DNSの働きを単純化するとこんなイメージ
 例えばWebアクセスのとき,www.abc.comのようなドメイン名でアクセスできるのは,インターネットの中にDNSというしくみが組み込まれていて,それがドメイン名に対応付けられたIPアドレスを見つけ,IPアドレスでアクセスできるようにしてくれるからだ(図1[拡大表示])。

 図1では,DNS(domain name system)をブラックボックスのようなイメージで表現した。実際のDNSは,世界中のサーバーが協力しながらドメイン名(domain name)を管理する巨大システムである。

■IPアドレスでアクセスすると?

 DNSはドメイン名とIPアドレスの対応付けである。となると,もしWebサイトのIPアドレスがわかっているなら,DNSはなくてもかまわないのだろうか?

図2 IPアドレスでWebアクセスしたときの例
Webページの構成要素でドメイン名が使われていると,正しくページが表示されない。
 DNSは,ドメイン名からIPアドレスを見つけ出すことしかしない。はじめからIPアドレスがわかっているのなら,DNSがなくても問題なく動くように思える。論より証拠,DNSがなくても動くかどうか試してみた(図2[拡大表示])。

 具体的には,パソコンの設定でDNSが働かないようにした。そして,あらかじめ調べておいたいくつかのWebサーバーのIPアドレスを,URLフィールドに入力してみた。

 すると,確かに大半は目的のWebページを見ることができた。ただ,いくつかのWebページは正しく表示されない。バナー画像など,一部の画像が呼び込めていなかった。

 不具合の出たWebページを調べてみると,画像が呼び込めていないページは,どれもドメイン名を使ってほかのサイトの画像を取り込むように指示されていた。本来なら再度そのサイトにアクセスして画像を取り込むところだが,DNSが働かないのでIPアドレスがわからず,結局画像を取り込めなかったのだ。

 それでもWebアクセスなら,IPアドレスを直接入力することができる。だが電子メールの場合はお手上げだ。メールも最終的にはIPアドレスで通信しているものの,メール・ソフトはメール・アドレスの@以下に書かれてあるドメイン名で通信するように作られているからだ。ドメイン名の代わりにIPアドレスを打ち込んだとしても,たいていの場合はうまくいかない。

■本当に信用できるのはドメイン名

 もちろん,IPアドレスを直接指定してもまったく問題なく使えるアプリケーションもある。例えば,FTPサーバーは,たいていIPアドレスを直接指定して使っても不都合は起こらない。

 しかし,今日のインターネット環境を考えると,どのようなアプリケーションであっても,IPアドレスを直接指定するより,ドメイン名でアクセスする方がいいだろう。なぜなら,管理者はたいてい,ドメイン名でアクセスしてくることを前提に各種のサーバーを運用しているからである。

 何らかの理由でマシンを移動することもあるだろうし,別のWebサーバーの中にコンテンツを引っ越すかもしれない。そうなれば,IPアドレスは変わってしまう。だがドメイン名の場合は,IPアドレスの対応付けをきちんと更新することで,絶対的なアドレスとして利用できる。

 これまでドメイン名は,「覚えにくいIPアドレスの代わりに使うアドレス」と説明されることが多かった。しかし現実は,インターネットの普遍的なアドレスとして使われている。