29.4 DNS

前項で,インターネット上のコンピュータには全て IPアドレスが割り当てられていることを学びました.

しかし,人間がネットワーク上のコンピュータにアクセスするのに,いちいちこの数字を覚えておくのは大変です. 人間にとっては,IPアドレスはわかりにくいものです.また,IPアドレスはネットワーク単位で割り当てられるために地理的な制約を反映するので,そのまま使っていると,コンピュータの場所を移動させたときにアドレスが変わってしまって不便です.

そこで, IPアドレスの代わりにホスト名が使われます. 先の例のIPアドレス 133.11.128.254 は, www.u-tokyo.ac.jp というホスト名を持つホストのIPアドレスです. http://133.11.128.254/ と打つかわりに, http://www.u-tokyo.ac.jp/ と打てばよいということになります. 実際ウェブブラウザ,たとえばSafariにおいて, ファイル場所を開くから, http://133.11.128.254/ を打ち込んでも, 東京大学のウェブサイトを閲覧することができます.

このホストの名前をIPアドレスに変換してくれる仕組みが「ドメインネームシステム(DNS)」です.変換してくれるサーバコンピュータを,ドメインネームサーバ(DNSサーバ)と呼びます.DNSサーバには,ホスト名とIPアドレスの相互の 変換のデータが保持されていて,そのサーバにある情報では対応がわからないときは,他のDNSサーバに聞いてくれます.

変換の仕組み

インターネット上の各コンピュータは自ドメインのDNSサーバに対して「このホスト名に対応するIPアドレスは?」と問い合わせを行います.例えばあなたの家にあるコンピュータが http://hwb.ecc.u-tokyo.ac.jp/ のページを開こうとしたときには,hwb.ecc.u-tokyo.ac.jp のIPアドレスを知ろうとして問い合わせます.

しかし,基本的には各DNSサーバは自分の管轄下にあるものの情報しか知りません.あなたの契約しているインターネットサービスプロバイダのDNSサーバは hwb.ecc.u-tokyo.ac.jp のことなんて知りません.逆に言うと各自で管理していたら大変です. しかしあなたが問い合わせたDNSサーバは管轄下にないものについても問い合わせに答えてくれるのです.それはなぜでしょうか? 実は以下のような手順を踏んでいるのです.

まず知らないものについてはルートサーバと呼ばれるDNSサーバへと問い合わせを行います. これは,特殊なDNSサーバで, jp だとか com だとかいったトップレベルドメインを管轄する DNSサーバのIPアドレスを知っています. この場合は jp ドメインのDNSサーバのIPアドレスを教えてくれます. そこで今度はその jpドメインのDNSサーバに問い合わせます. すると u-tokyo.ac.jp のDNSサーバのIPアドレスを教えてくれます. この繰り返しにより, あるホスト名 (hwb.ecc.u-tokyo.ac.jp) を管轄するDNSサーバ (ecc.u-tokyo.ac.jp のDNSサーバ) のIPアドレスが判明し, ついにそこに問い合わせることでホスト名からIPアドレスの対応変換が可能となるのです. そして問い合わせ元に結果を答えることができます.

なお,DNSサーバはホスト名→IPアドレスの対応(正引)だけでなく,いくつかの別のレコードももっています.

DNS はインターネットの根幹となるシステムですので, ここがうまくいかないと大変なことになります. 実際にルートサーバへの大規模な攻撃が起きたために, インターネットの機能の一部が麻痺してしまったこともあります.