goo blog サービス終了のお知らせ 

日刊ドットコムマスター★

ドットコムマスターに合格するためのブログです。

第19回 第1部 第17問

2013-09-27 09:42:30 | 第1章

以下は、「dotcommaster.jp」内にあるクライアントPCが「http://www.example.co.jp」の名前解決を行う際に問い合わせるDNSサーバの順序である。
①~④に当てはまるDNSサーバを下の選択肢からそれぞれ1つずつ選びなさい。
なお、クライアントPCのリゾルバ及びDNSサーバのキャッシュやhostsファイルに関しては考慮しないものとする。

19117

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サーバとなる。