DNSのしくみ

DNSによりインターネット上で、名前がIPに自動的に変換されることにより、アルファベットとピリオドの名前を使えることを説明してきました。 ここでは、DNSがどのようにして動作しているか考えていきましょう。
パソコンからDNSサーバに名前を問いあわせると、IPアドレスが帰ってくることがわかりましたが、では、どのようにしてDNSは答えているのでしょうか?
インターネットに接続しているコンピュータは、常時百万や二百万ではきかない数です。これだけのIPアドレスが全て1つのDNSサーバに持っていたら 時間がいくらあっても調べられません。また、全ての情報をリアルタイムに持つことは難しいです。そこで、インターネットでは無数のDNSサーバが、階層構造になっています。
「bunka.go.jpという名前のIPアドレスを教えて欲しい」と問合せを受けたネームサーバは、まず、自分の持っている情報のなかにその名前があるかどうか調べます。それで見つからないと、DNSサーバの大元のルートサーバに問い合わせます。ルートサーバは全世界に13個存在していて、DNSによる検索で最も重要な役割を持っています。 まず、名前の最後の「.jp」をみて、「.jp」を管理しているDNSサーバを教えてくれます。そして、「.jp」を管理しているDNSサーバでは「.go.jp」をみて、「.go.jp」を管理しているDNSサーバを教えてくれるでしょう。
「.go.jp」管理DNSサーバは「bunka.go.jp」のアドレスを知っているのです。そして、「bunka.go.jp」には「http://www.bunka.go.jp」のIPアドレスの情報があるのです。
これが、DNSサーバによるIPアドレス検索の基本的なシステムです。このように階層化することで、何千万というIPアドレスと名前をDNSサーバは管理しているのです。 しかし、実際は世界中から、いちいちルートサーバにまでアクセスすると大変なので、一度情報をもらえば、例えば「.jp」を管理しているのはどのDNSサーバか?等、記憶して、次からアクセスすることは殆どありません。

ここでDNSとDNSサーバの役割を整理しましょう。
・パソコンなどから名前を受けてIPアドレスをかえす機能
通常リゾルバと呼ばれる機能を介して行われます。リゾルバは一つ以上のネームサーバのアドレスを知っていて、そのネームサーバに問い合わせを行い、返ってきた答えをパソコンに返します。
・他のDNSサーバのリゾルバからの問い合わせに回答する機能
この場合、個々のDNSサーバは全ての情報をもっているわけではなく、限られた情報を回答しています。 例えば、ルートサーバは「.jp」がどこで管理されているか答えるだけであり、「.jp」を管理しているサーバは、bunka.go.jpを管理しているサーバはどれか答えるだけなのです。

では、改めて名前を使ってホームページにアクセスする場面を思い浮かべてください。 まず、ブラウザからあなたの使うDNSサーバに問い合わせます。問い合わせを受けたDNSサーバは色々なサーバに問い合わせ、最後には文化庁のホームページに問い合わせ、WebサーバのIPアドレスを取得します。そしてブラウザは、このIPアドレスを元にしてホームページを表示します。