合同会社小村ソフト
第 1 章

導入 — DNS は何に答えているか

DNS を「名前 + 型」への問い合わせに答える分散データベースとして捉え、4 つの登場人物の役割分担をつかむ。

「サーバは動いているのに、つながらない」

Web サイトの移転直後に一部のユーザーだけ旧サーバへ飛び続ける。新しく作ったサブドメインが「存在しない」と言われる。メールだけが届かない。— こうした不調の多くは、アプリでもネットワーク機器でもなく、名前解決のどこかで起きています。

DNS の代表的な説明は「www.example.com のような名前を IP アドレスに変換する仕組み」ですが、その理解だけで止まると上のようなトラブルで手が出ません。DNS はもっと広く、「この名前について、どんな型の情報を知りたいか」という問いに答える分散データベースです。

Web の行き先を知りたければ A / AAAA、メールの配送先なら MX、ドメインの所有確認なら TXT。つまり DNS への問いは、つねに名前のセットでできています。

名前
www.example.com — どのドメイン名について聞くか
A / AAAA / MX / TXT / ... — どんな種類の情報を知りたいか
正規データの持ち主
そのゾーンの権威サーバ(authoritative server)。担当範囲の「正解」を持つサーバです

小問 1-1 — 問いを『名前 + 型』で組み立てる

DNS への問い合わせが何で構成されているかを、手を動かして確認します。

Q1. ブラウザが www.example.com の IPv4 アドレスを知りたいとき、DNS への問いとして正しい組み合わせはどれですか。

Q2. ある名前について IPv4(A)と IPv6(AAAA)の両方を確認したいとき、最低何種類の問い合わせ型が必要ですか。

種類

まず区別したい 4 人の登場人物

名前解決には役割の違う 4 人が関わります。ここで押さえたいのは 1 点だけ — 利用者が話している相手と、正解を持っている相手は別だということです。

登場人物何をするかここでの見方
ブラウザ / アプリ名前を使いたい側。名前解決を依頼する自分で root まで辿ることは通常ない
OS のスタブリゾルバアプリからの問い合わせの窓口ほとんどの場合、近くの再帰リゾルバへ転送するだけ
再帰リゾルバ利用者の代わりに答えを集めて返す。結果をキャッシュする利用者からは「答えの出どころ」に見えるが、実際は代理人
権威サーバ担当ゾーンの正規データを持ち、その範囲だけ答える担当外のことは「次の行き先」を案内する(referral)

「DNS サーバ」という言葉は再帰リゾルバと権威サーバのどちらも指しうるため、実務の会話では混乱のもとになります。この講座では必ず区別して呼びます。

ブラウザからスタブ、再帰リゾルバ、権威サーバへ進む DNS の概略図

利用者に見えているのは再帰リゾルバまで。その先の旅(root → TLD → 権威)は再帰リゾルバが代行します。以降の章では、返ってきた答えを見るたびに「いま誰が返しているか」を確認します。

小問 1-2 — 誰がどこまで知っているか

登場人物の役割を取り違えると、以降の章すべてが読みにくくなります。ここで固めておきましょう。

Q3. 利用者の代わりに root / TLD / 権威サーバを順に辿り、最終的な答えを集めてくる役割はどれですか。

Q4. この章の説明に照らして、DNS で引ける情報としてあてはまらないものはどれですか。

Q5. 再帰リゾルバから答えが返ってきました。この答えについて正しく言えるものはどれですか。

hosts ファイルと比べると、DNS の設計が見える

OS には hosts ファイルという「名前 ↔ IP」の静的な対応表があります(Linux / macOS の /etc/hosts、Windows の C:\Windows\System32\drivers\etc\hosts)。もし世界中の名前と IP の対応が固定で、全マシンに同じ表を配って済むなら、DNS は要りません。実際そうなっていないのは、次の 3 つの要求があるからです。

  • 値は変わる — サーバ移転や負荷分散で IP は変わります。静的な表では追いつけません。
  • IP 以外も引きたい — メール配送先、所有確認トークンなど、「名前に紐づく情報」は IP だけではありません。
  • 管理は分けたい — 各組織が自分の名前空間を自分で管理したい。中央の巨大な一枚表では回りません。

この 3 つに答えるのが、DNS の設計です。データをで区別し、管理をゾーン単位で分け(第 2 章)、変化に追従しながらもキャッシュで速さを保つ(第 5 章)。この講座の残りの章は、この設計を 1 つずつ分解していきます。

この講座の合言葉: 答えが返ってきたら、そこで思考を止めずに問いかけてください — この答えは、権威データか? キャッシュか? それとも「次はあちらへ」という案内(referral)か?

この章で持ち帰ること

  • DNS への問いは「名前 + 型」のセット。名前 → IP は数ある型のひとつにすぎない
  • 利用者・スタブ・再帰リゾルバ・権威サーバは役割が違う。話す相手と正解の持ち主は別
  • 再帰リゾルバの答えはキャッシュかもしれない。「誰が正規の答えを持つか」を軸に次章へ進む