以下は、「dotcommaster.jp」内にあるクライアントPCが「http://www.example.co.jp」の名前解決を行う際に問い合わせるDNSサーバの順序である。
①~④に当てはまるDNSサーバを下の選択肢からそれぞれ1つずつ選びなさい。
なお、クライアントPCのリゾルバ及びDNSサーバのキャッシュやhostsファイルに関しては考慮しないものとする。
a.ルートDNSサーバ
b.「example.co.jp」を担当するDNSサーバ
c.「dotcommaster.jp」のDNSサーバ
d.TLDを担当するDNSサーバ
e.SLDを担当するDNSサーバ「ニホンゴッテムズカシイネー。」
「あぁ、日本語が難しいんじゃなくて、書いてある内容が難しいんだね・・・。」
「まぁ順に説明していくから、分かるようになってね。」「はーい。」
「まずは『「dotcommaster.jp」内にあるクライアントPC』って部分ね。」
「要するにクライアントPCなんだけども、そのPCが『dotcommaster.jp』ってドメインのネットワーク内に居るって意味なんだ。」「いつもはただ『クライアントPC』なのに、今回はどこに居るかが関係してくるの?」
「そういう事になるね。まぁおいおい説明していくよ。」
「次は、『「www.example.co.jp」の名前解決を行う際に問い合わせるDNSサーバの順序』の部分ね。」「名前解決ってあれでしょ?URLからIPアドレスを調べるやつだよね。」
「でも順番ってあるの?」「あるんだよ~。」
「世界中にサーバーやホストがあるからね、名前解決は1台のDNSサーバーでどうにかなる物でもないんだよ。」
「何台かのDNSサーバーの力を合わせて解決するし、その時には順番があるんだ。」「へぇ~、そうなんだ。」
「で、その順番を考えて①~④に当てはまるDNSサーバーを当てはめなさいって事なんだ。」
「順番には何か決まりでもあるの?」
「ちゃんとルールがあるから、それを理解しておけばこの問題は楽勝だよ!」
「じゃあ、最後の難しそうな用語が並んでいる部分は?」
「3つ用語が出てくるね、『クライアントPCのリゾルバ』・『DNSサーバーのキャッシュ』・『hostsファイル』。」
「どれも名前解決に使われるモノなんだけど、今回はこれらに関しては考えなくて良いよって話だね。」
「色々種類があるけど、名前解決の方法にも違いがあるの?」
「そうだね、『クライアントPCのリゾルバ』から説明しようか。」
「ブラウザなどがURLにアクセスする際に、ブラウザから指令を受けてDNSサーバーへ問い合わせをするプログラムがリゾルバなんだ。」「へぇ~、ブラウザが直接問い合わせてるんじゃないんだ?」
「まったく別個のプログラムっていうよりは、ブラウザやOSに組み込まれた部品の一つと思ってもらえば良いかな。」
「なるほどね~。」
「次は『DNSサーバーのキャッシュ』だね。」
「キャッシュというのは一時的にデータを貯めておく場所の事で、容量の都合もあって一定期間で消えちゃうんだけど、いちから調べたり計算したりする必要が無い分データを取り出すスピードは速いんだ。」「キャッシュを使うとどうなるの?」
「さっきでちらっと話したような順番をすっ飛ばして、すぐに答えが出てくるから名前解決の時間が短縮できるし、通信量も減るからネットワークにかかる負荷も減らせるんだ。」
「なるほど、良いね。」
「あ、でも・・・速くて便利だけど、基本の流れとは順番が違ってきちゃうんだね。」「まぁそうだね。」
「順番が変わって困るのは、こういう試験問題でそこまで考慮すると例外が出てくるって程度だから、実際のインターネットでは特に困ることはないからね。」
「じゃあ3つめの『hostsファイル』ってのはー?」
「これは、クライアントPCの中に保存しておくIPアドレスとURLの組み合わせを記録したファイルの事だね。」
「DNSサーバーにわざわざ問い合わせることなく解決できちゃうんだ。」「じゃあ、これがあればDNSサーバーが要らないね。」
「いやいや、世界中のサーバーやホストの情報を個人で使うクライアントPCに持つことは無理だろうから、こういうのは限られた範囲で使われるんだよ。」
「あー、世界中のは無理そうだよね~。」
「社内LANで使うサーバー限定とか、そんな感じで使われる事が多いかな。」
「とまぁ、これらの3つを使うと基本パターンとは順番が変わって、出題者の意図と違ってきちゃうから、今回は考慮しないんだ。」「なるほど、なるほど。」
「つまり今回は、DNSサーバーを使った名前解決の基本パターンだけ考えれば良いってこと?」「そういう事になるね。」
「じゃあ、基本パターンとしてどういう順番で問い合わせていくかを説明しよう。」
「名前解決をしたいのはクライアントPCなわけだけど、まず最初は自分が属するネットワークのDNSサーバーに問い合わせるんだ。」「今回は『dotcommaster.jp内にあるクライアントPC』の話だから「dotcommaster.jp」のDNSサーバーって事?」
「そうだね。」
「じゃあ選択肢『c』が一番目だね。」
「おっと待ったぁ!」
「図をよく見て。」
「①の前に「dotcommaster.jp」のDNSサーバーがあるから、①に入るのはその次からだよ。」「ああっ!①~④なのに選択肢はa~eの5つある!」
「ひとつ余るんだね!」「そういう事。」
「さて、次が①に入るんだけど、クライアントPCから問い合わせを受けたDNSサーバーはまず親玉のDNSサーバーに問い合わせるんだ。」
「その親玉が『ルートDNSサーバー』だよ。」「てことは①は『a』だね!」
「そうだね。」
「ルートってのは『根』とか『もと』とかそういった意味で、英語で書くとrootね。道順とかのルート(route)とは違うからね。」
「ちなみに、HDDの一番上の階層もルートって言うけどこれも同じrootの方だ。」「根っこかぁ、全ての始まりみたいなイメージだね。」
「そんな感じだね。」
「そして、ルートDNSサーバーに問い合わせると次に問い合わせるべきサーバーを教えてもらえるんだけどそれがTLDを担当するサーバーだ。」「TLDってのはトップレベルドメインだね!」
「その通り。」
「URLに含まれる『~.jp』だったり『~.com』とかTLDに応じて、それぞれのTLDを担当するDNSサーバーに次は問い合わせる事になるんだ。」「TLDごとに分担してるの?」
「そうだよ。」
「さっきのhostsファイルの説明でも言ってたように、世界中のサーバーやホストのデータを1台に詰め込むのは無理だからね。」
「TLDごとで分担して、管理しているんだ。」「そっか、じゃあ②は『d』だね!」
「うん、そうそう。」
「ルートDNSサーバーからTLDを担当するサーバーを教えてもらって、『dotcommaster.jp』のDNSサーバーがそこへ問い合わせに行くんだ。」「『dotcommaster.jp』のDNSサーバー大忙しだね。」
「じゃあ、次はもしかしてSLDの担当のDNSサーバー?」「お、分かってきたじゃないか~。」
「ちなみに、SLDを担当するDNSサーバーもそれぞれのSLDごとに分担していて、『jp』の配下で『co』とか『ne』とかで分かれているよ。」「なるほど~、TLDの担当のDNSサーバーに問い合わせたら、次に問い合わせるべきSLD担当のDNSサーバーを教えてもらえるんだね!」
「てことで、③は『e』だね~。」「そういう事。」
「そして、順にサード(3番目)・フォース(4番目)と続いていって、その都度『dotcommaster.jp』のDNSサーバーがそこへ問い合わせに行くんだ。」
「そういうのを繰り返して最終的に目的のURLを担当しているDNSサーバーにたどりつくんだ。」「じゃあ、最後の④は『b』で良いのかな!」
「そのとおりっ!」
「やったー!」
【 第19回 第1部 第17問 解答&解説 】
[解答]①-a,②-d,③-e,④-b.
[解説]
①ルートDNSサーバ(a.)
②TLDを担当するDNSサーバ(d.)・・・具体的にはjpを担当するDNSサーバ
③SLDを担当するDNSサーバ(e.)・・・具体的にはco.jpを担当するDNSサーバ
④サードレベルドメインを担当するDNSサーバ(b.)・・・具体的にはexample.co.jpを担当するDNSサーバとなる。