連載
» 2003年11月01日 00時00分 公開

TCP/IPアレルギー撲滅ドリル(7):知れば知るほどDNSは不思議の海へ 覗いてみればディープな世界DNS(2) (2/3)

[福永勇二,インタラクティブリサーチ]

詳しくホンモノのDNSを知る

ところで.jpのネームサーバはどうやって探すんですか?

 もっともな質問です。先の図2では、最初に.jpのネームサーバを探す方法が書いてありません。実はこの図にはありませんが、.jpや.krといった国を表す名前のように、最も左端に出てくる名前(トップレベルドメイン:TLD)を登録しているネームサーバが別に存在しています。それを「ルートネームサーバ」といいます。

 ルートネームサーバも.jpのネームサーバと同様に、「.jpはNS-JPが管理している」といった情報が書いてあります。ドメイン名の問い合わせをするときは、原則として、最初にこのルートネームサーバに問い合わせをする決まりになっているんです。

 じゃあルートネームサーバの在りかはどうやって調べるんでしょうか? さらに何か秘密の仕組みがありそうですが、これは単に設定ファイルに書き込んであるだけです。何か期待した方、残念でした。

 ちなみにこのルートサーバは現在世界中に13台あります。それぞれには同じ内容の情報が登録してあって、ネームサーバはこのうちのどれかにアクセスします。このように13台もあるのは、負荷を分散するとともに、災害や悪意を持った攻撃などで、世界中のDNSがまひしないように、危険を分散するためです。また13台のうちの1台は、日本のWIDEプロジェクトで管理しています。インターネットの基幹サービスであるDNS運用に、日本も大きく貢献しているんですね。

DNS全体の動作の様子を具体的に教えてください

 図2で気付いた方がいらっしゃるかもしれませんが、あるネームサーバがほかのネームサーバに問い合わせるような答え、先ほどの言い方では「振り分け先」を教えてくれた場合に、続いてその「振り分け先」へ問い合わせる動作をする必要があります。それは一体誰の役割なのでしょうか?

 この部分をもう少し詳しく見るため、より現実のネームサーバ間の問い合わせに近い図3を用意しました。例えば、一般的な家庭がダイヤルアップやADSLを使ってインターネットに接続している状況だと考えてください。そして右下にあるのが、普段私たちが使うコンピュータです。

図3 現実の姿により近い形で動作を見てみよう(図をクリックすると拡大表示します) 図3 現実の姿により近い形で動作を見てみよう(図をクリックすると拡大表示します

 右下のコンピュータが、例えばWebブラウザで“www.atmarkit.co.jp”に接続するとします。このとき、このドメイン名をIPアドレスに変換する必要があります。この問い合わせを行う先は、一般的には「プロバイダのネームサーバ」になります。プロバイダ側から送られてきたネットワークの設定資料に、「DNSサーバの設定」とか「ネームサーバの設定」という項目があったら、きっとこのネームサーバの指定でしょう。

 「そんな設定した覚えないなぁ」と思う方、いらっしゃるかもしれませんね。この設定は、最近は自動的に行われることも多くなりました。見覚えがない方は、きっとご利用のプロバイダでは自動的に割り当てられるようになっているんでしょう。

 さて、ここからがDNS独特の動作が始まります。右下のコンピュータからwww.atmarkit.co.jpについての問い合わせを受け取ったプロバイダのネームサーバは、最初に自分のキャッシュをのぞいてみます。キャッシュとは、これまでの問い合わせ結果を一時的に保存してある場所です。もし、ここに以前の問い合わせ結果が残っていたら、わざわざいま問い合わせなくても、残っている結果をそのまま使うことができます。最初の問い合わせでは、キャッシュには何も入っていませんから、ここでは続いて問い合わせをすることになります。

 次にこのネームサーバは、まずルートサーバに対して問い合わせます。先に書いたとおり、ルートサーバは.jpとか.krなどの一番左端に位置する名前についてだけ知っていますから、その答えは「.jpドメインのことは.jpドメインのネームサーバ(xxx.xxx.xxx.xxx)が管理している」といった「振り分け先」を知らせるものになります。これは図2でも書いたとおりです。

 ここで重要なのは、この「振り分け先」を聞いて、その振り分け先に問い合わせるのが誰かということです。これは図中にあるプロバイダのネームサーバの役割です。プロバイダのネームサーバは、1度目と同じ方法で、次に.jpドメインのネームサーバに問い合わせを行います。そこで得られる結果は、再び「co.jpドメインのことはco.jpドメインのネームサーバ(xxx.xxx.xxx.xxx)が管理している」といった振り分け先情報です。このネームサーバは、1度目と同じような手順で、次にco.jpドメインのネームサーバ、atmarkit.co.jpドメインのネームサーバと、問い合わせを繰り返してゆきます。

 最後にたどり着いたatmarkit.co.jpのネームサーバには、このwww.atmarkit.co.jpの実際のアドレスが登録されています。そこでこの回答は「振り分け先情報」ではなく、「211.4.250.170」という実際のIPアドレスを通知するものになります。

 この答えが得られた時点で、プロバイダのネームサーバは問い合わせの繰り返しを終え、得られた結果「211.4.250.170」を問い合わせ元のコンピュータに通知します。これで一連のDNSの動作が完結することになります。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。