== DNS入門/森下2012/基本構造 == <> DNS Summer Days 2012 のDNS入門スライドについてのコメントなど 全体に(特に入門者に)分かり辛い。[[DNS入門/ドメイン名]]の話が落ちているからか。 <> == 階層構造を構成する == * 次に「TLDサーバー」を作る(例:jp) – 自分のTLD内の情報のみを管理する jpのサーバーは jpのひとつ下、つまりexample.jpやexample2.jpなどのサーバーがインターネット上のどこにあるかを知っている (??) – 名前とIPアドレスのデータベースそのものは持っていない (??) (* これだけでしたか。JPサーバとしてはいいけど、例としては不完全ですね。) == 階層構造をたどる == * ①の完成後、階層構造をたどるサーバーを①とは別に準備する (??) * 階層構造をたどるサーバーには、ルートサーバーのリストだけを持たせる – 他のサーバーのリストを持つ必要はない * たどる際の流れの中で、示された他のサーバーから手がかりを入手 – 階層構造の構成には参加しない(役割が違う) === ユーザの問い合わせ === * ユーザーはたどるサーバー(長いので省略)に対し 「www.example.jpのIPアドレスは?」などの問い合わせ(名前解決要求)を送信する . 大事なポイント:ユーザーはたどるサーバーとのみ通信 . たどるサーバーは複数のユーザーからの問い合わせを同時に処理できるように作られ... * ユーザーからの問い合わせには「あなたが階層構造をたどってください」という特別... – RDつきの問い合わせを2本線矢印(⇒)で表す === ルートサーバへの問い合わせ === * たどるサーバーはまずルートサーバーに問い合わせる – 最初の状態ではルートサーバーしか知らないため * 問い合わせの内容としてユーザーから受け取った 「www.example.jpのIPアドレスは?」をそのまま流用する * (オプション)なお、最近のたどるサーバーは用心深く作られており、 サービスを始める前に「私の持っているルートサーバーのリストは本当にあってる?」 とルートサーバーに一度だけ問い合わせ、得られた結果を本番の問い合わせで使う – この行動のことを「プライミング」と呼ぶ * 階層構造を構成するサーバーには階層構造をたどる機能がない(必要ないので有効にされていない)ため、 問い合わせに印(RD)はつけない(以降、RDなしの問い合わせを1本線矢印(→)で表す) * ルートサーバーはjpで終わっているドメイン名はjpのDNSサーバーに管理を委任しており 自分では管理していないので、「jpのサーバーに委任しています」という応答を返す === JPサーバへの問い合わせ === * 応答を受け取ったたどるサーバーはjpのサーバーに対し、改めてルートサーバーに聞いたの と同じ「www.example.jpのIPアドレスは?」という内容を問い合わせる – ルートサーバーの時と同様、印(RD)はつけない * jpのサーバーはルートサーバーと同様「example.jpのサーバーに委任しています」という応答を返す === example.jp サーバへの問い合わせ === * 応答を受け取ったたどるサーバーはexample.jpのサーバーに対し、 改めて「www.example.jpのIPアドレスは?」という内容を問い合わせる – ルート、jpのサーバーの時と同様、印(RD)はつけない * example.jpのサーバーはwww.example.jpのIPアドレスを管理しているので 「www.example.jpのIPアドレスは192.0.2.1です」という応答を返す * 実際には「その名前は存在しません」「その名前は存在しますがIPアドレスがつけられていません」 「その名前は実は別名で、本名はwww.example.comです」など、状況により応答の内容は変化する === 返事をユーザへ === * 応答を受け取ったサーバーが結果をユーザーに返す – 実際には別名だった場合に本名として指定されたドメイン名に対する名前解決を行うなど、 状況に応じた追加作業が発生する場合がする – その場合、たどるサーバーはたんたんと作業を続ける これで「www.example.jp」に対する名前解決が完了 ----- DNSは目的・動作が異なる2種類の「サーバー」により構成 (これは少なくとも丸2 の前にあった方がよい) * 階層構造を構成することによる分散管理 * 階層構造をたどることによる名前解決