DNS(ネームサーバ)とは

広告

インターネットで公開されているサーバにはユニークなIPアドレスが割り当ててありますがIPアドレスでは覚えにくいためホスト名+ドメイン名を組み合わせた名前をIPアドレスに対応させています。

このホスト名+ドメイン名からIPアドレスを調べたり、逆にIPアドレスからホスト名+ドメイン名を調べる仕組みをDNS(Doman Name System)といいます。

そしてDNSの仕組みの中で名前からIPアドレスを調べるなどの名前を解決する役割を持ったサーバをDNSサーバ(又はネームサーバ)と呼びます。

DNSの階層構造

例えば全世界で使われているホスト名+ドメイン名に対するIPアドレスの情報を持っているサーバを1台だけ用意し、全ての人がそれを利用すればいいのですが、インターネットにつながっている全ての人の問い合わせに1台のサーバで対応するのは事実上無理です。そこでDNSでは階層型の構造を取っています。

「yahoo.co.jp」と言うドメインを例に考えてみます。まずDNSではルートサーバと呼ばれる最上位に位置するDNSサーバがあります。まず問い合わせを行う場合はこのルートサーバへ行います。

そして調べたいドメインのトップレベルドメインに応じて、ルートサーバの配下にあるDNSサーバへ問い合わせを転送します。

ルートサーバ
   |
   +--- JPドメイン
   |
   +--- COMドメイン
   |
   +--- NETドメイン
   |
   ...

今回調べる「yahoo.co.jp」のトップレベルドメインはJPドメインなので、JPドメインを管理するDNSサーバへ問い合わせは回されます。

同じようにJPドメインを管理しているDNSの下には「CO.JP」や「AD.JP」毎にDNSサーバが分かれています。

ルートサーバ
   |
   +--- JPドメイン
   |       |
   |       +--- CO.JPドメイン
   ...     |
           +--- NE.JPドメイン
           |
           ...

今回調べる「yahoo.co.jp」の次のレベルのドメインはCO.JPドメインなので、CO.JPドメインを管理するDNSサーバへ問い合わせは回されます。

最後に「yahoo.co.jp」や「google.co.jp」など最終的なドメイン毎に管理しているDNSサーバが用意されているため、該当のDNSサーバへ問い合わせを回します。

ルートサーバ
   |
   +--- JPドメイン
   |       |
   |       +--- CO.JPドメイン
   ...     |        |
           ...      +--- yahoo.co.jp 用DNSサーバ
                    |
                    +--- google.co.jp 用DNSサーバ
                    |
                    ...

このようにDNSは階層構造を取っており、上位から順に問い合わせを回すことで最終的なDNSサーバを探し当てることができるようになっています。そしてドメインを使っている側は、自分のドメインに関する情報だけを管理するDNSサーバを自前で管理することができます。

DNSの問い合わせ

もし自分で管理しているドメインが「example.co.jp」だった場合、まず「example.co.jp」を管理するDNSサーバを上位のDNSサーバへ登録しておきます。この場合は「CO.JP」ドメインを管理しているサーバに「examle.co.jp」に関して問い合わせがあったらどのDNSサーバへ問い合わせを回してくれればいいかを登録しておいてもらいます。

そして「example.co.jp」を管理するDNSサーバで、IPアドレス「xxx.xxx.xxx.aaa」のサーバには「www.example.co.jp」を割り当てるとか、IPアドレス「xxx.xxx.xxx.bbb」のサーバには「shopping.example.co.jp」を割り当てるなどの情報を登録しておきます。

利用者の人はブラウザで「www.example.co.jp」を見ようとすると、DNSの仕組みの中でルートサーバから順に問い合わせが回されていき、example.co.jpを管理しているDNSサーバがどこなのかを調べます。そしてそのDNSサーバに対して「www.example.co.jp」のIPアドレスは何かを尋ねると「xxx.xxx.xxx.aaa」という答えが帰ってきます。

ここで初めて利用者の人はアクセスしようとしていた「www.example.co.jp」に対応するIPアドレスを知ることができましたので、そのIPアドレスに対してWebページの要求などを行う事になります。

参照用DNSサーバ

先ほどDNSの問い合わせの流れの中で利用者の人はルートサーバに対して問い合わせを行うと書いたのですが、その問い合わせを行ってくれるのが参照用DNSサーバと呼ばれるものです。

個人でインターネットを利用されている方は、契約しているプロバイダから参照用に使うことができるDNSサーバを教えてもらえると思います。その参照用DNSサーバをご自分のPCにおいてTCP/IPの箇所に設定しておくとドメイン名の問い合わせが必要になった時に自動的に参照用DNSサーバに問い合わせを行ってくれます。

p10-1

参照用DNSサーバは利用者の代わりにルートサーバに対してドメイン名+ホスト名の問い合わせを行い、最終的にIPアドレスが分かったら利用者に結果を返してくれます。

利用者 ---> 参照用DNSサーバ ---> ルートサーバ
                           <---
                           ---> JPドメイン DNS
                           <---
                           ---> CO.JPドメイン DNS
                           <---
                           ---> example.co.jpドメイン DNS
                           <---
利用者 <---参照用DNSサーバ 

( Written by Tatsuo Ikura )