NET // communication networks
LESSON 13 / 標準編

DNS の階層と解決手順

「DNS は名前と IP を変換する仕組み」の一歩先へ。ルートから権威までの階層、A・AAAA・NS・MX・CNAME・TXT・SOA などのレコード型、再帰問い合わせ反復問い合わせの役割分担、TTL とキャッシュの挙動、ポート 53 / UDP・TCP の使い分け、ゾーン転送と DNS セキュリティの入口までを扱います。DNSSEC(改ざん検知)や DoH / DoT(暗号化) の詳細は 発展編 DNS のセキュリティ で別途扱います。基本情報技術者・学部 1〜2 年向け。

学習目標

本講を終えると、以下の問いに答えられるようになります。

本講は 第5回 DNS の役割(基礎) の続きです。基礎で扱った「電話帳のような変換係」「ルート → TLD → 権威」の概念は前提としつつ、内部のメカニズム(再帰/反復・レコード型・トランスポート)に踏み込みます。さらに踏み込んだ DoH / DoT(暗号化 DNS)発展編 で扱います。

このレッスンの目次

01 階層構造 DNS の名前空間は ルート( . ) を頂点とした 木構造 です。一つのドメイン名… 02 レコード型 DNS サーバが管理しているのは、 名前 → 値 の対応表(リソースレコード, RR… 03 解決手順 ブラウザに www.example.co.jp と入力されてから IP アドレスが返… 04 再帰 vs 反復 DNS の問い合わせには 2 つの様式があり、 誰が階層を辿る労力を背負うか が違い… 05 キャッシュとTTL 毎回ルートまで辿るのは効率が悪すぎます。各レイヤで キャッシュ が効き、 2 回目以… 06 ポート53とUDP DNS のメッセージは ポート 53 番で運ばれます。多くの問い合わせは小さく(数十… 07 運用とセキュリティ ゾーン転送は権威サーバ同士の同期。DNSSEC や DoH/DoT とあわせて、DNS の守り方の入口を整理… 08 まとめと用語 本講の重要語句を整理 09 確認問題 理解度を問題でチェック

DNS の名前空間 ── 木のような階層

DNS の名前空間は ルート(.) を頂点とした 木構造 です。一つのドメイン名 www.example.co.jp. は、右端の見えない ルート から左へ、TLD(jp)第二レベル(co)第三レベル(example)ホスト(www) と読み取ります。各レベルは独立した組織が管理しており、責任は 「自分が管理する範囲だけ」 に限定されています。
POINT DNS は 分散型データベース。1 台に全部詰め込むのではなく、各ドメインの管理者が 自分のゾーンだけ を管理する。階層を辿れば必ず正解にたどり着けるよう、上位は下位の場所(NS レコード)を知っているだけでよい。

名前空間の樹形図

. ルート(root) jp com org edu net TLD co.jp ac.jp ne.jp 第2 example.co.jp school.ac.jp www example.co.jp mail example.co.jp www school.ac.jp 読む向き FQDN は右(ルート)から左(ホスト) へ向かって解釈 FQDN の例 www.example.co.jp. 末尾の "." はルートを表す(普段は省略)

図の見方:DNS の名前空間は ルート(.) を頂点とした木構造。FQDN(完全修飾ドメイン名)は右(ルート) から左(ホスト) へ向かって読みます。各ノードの管理は別組織に 委任(delegation) されており、上位サーバは下位サーバの所在(NS レコード)だけを覚えています。

ゾーンと委任

1 つの組織が責任を持って管理する範囲を ゾーン(zone) と呼びます。たとえば example.co.jp ゾーンの管理者は、自分の配下の www.example.co.jpmail.example.co.jp の対応を全部知っています。さらに下に cs.example.co.jp という子ゾーンを作って別チームに任せれば、それは 委任。親は 「子ゾーンを管理しているサーバはここですよ」 という案内(NS レコード)だけを持ちます。

Q. もし「co.jp」サーバが、配下の数十万社の中身まで全部覚えていたら何が困るでしょうか?クリック前に少し考えてみてください。

もっと詳しく:ルート DNS サーバはどこに?

ルートサーバは「A から M まで 13 個の ホスト名」(a.root-servers.netm.root-servers.net)で運用されています。ただし実体は 13 台 ではなく、同じ IP アドレスを世界中に複製した Anycast クラスタ として動いており、多数のサーバが各地に配置されています。問い合わせは ネットワーク的に最寄り のものに自動的に届きます。日本にも M ルートのインスタンスがあります。13 という数字の上限は、当時の DNS パケット(UDP・512 バイト) に応答を収めるための歴史的制約に由来します。

ただし、普段の名前解決で 毎回ルートサーバへ聞きに行くわけではありません。ブラウザ・OS・キャッシュリゾルバに答えや次の問い合わせ先が残っていれば、そこで解決が止まります。ルートへ問い合わせるのは、主に キャッシュリゾルバ側に手がかりがない初回TTL が切れた後 です。

AからMまでのルートDNSサーバ識別子とAnycastインスタンスの世界地図風模式図

図の見方:A〜M は「13台の機械」ではなく、13個のルートサーバ識別子です。この地図は Wikipedia 等の外部画像を使わず、この教材用に作った模式図です。それぞれの識別子を担当する組織があり、同じ識別子のサーバ実体は Anycast によって世界中に複製されています。そのため、ルートへ問い合わせが必要になった場合は、世界のどこかにあるネットワーク的に近いインスタンスへ届きます。実際の利用では、キャッシュが効けばルートまで行かずに済むことも多いです。

考えてみよう: ファイルシステムの「ディレクトリ」も似た木構造ですね。/home/alice/docs/report.txt は左(ルート) から右へたどる順序ですが、DNS は 右から左。DNS が逆向きなのは、もともと UNIX のメール経路指定の慣例(user@dept.example.org)を踏襲したものと言われています。

DNS の中身 ── レコード型

DNS サーバが管理しているのは、名前 → 値 の対応表(リソースレコード, RR)です。「型」によって意味が異なります。ただし、すべての名前にすべての型が登録されているわけではありません。必要なレコードだけが登録され、問い合わせた型が存在しないこともあります。
POINT 1 つの名前に 複数のレコード を登録できる(例:www に A と AAAA の両方)。一方で、A しかない名前、MX を持たないドメイン、PTR が未設定の IP アドレスもあります。DNS は「必要な型を指定して、あれば返る」仕組みです。

レコードの基本書式

標準的なゾーンファイルでは、1 行 1 レコードで次のように書きます。

名前TTLクラス値(RDATA)
www.example.co.jp.3600INA192.0.2.10
www.example.co.jp.3600INAAAA2001:db8::10
example.co.jp.3600INMX10 mail.example.co.jp.

クラスはほぼ常に IN(Internet) です。TTL はキャッシュの有効期間(秒) で、後ろのセクションで詳しく扱います。

主要レコード型のはたらき

主要レコード型と役割 A 名前 → IPv4 アドレス www → 192.0.2.10 AAAA 名前 → IPv6 アドレス www → 2001:db8::10 NS ゾーンを管理する権威サーバ名 example.co.jp → ns1.example.co.jp MX そのドメインのメール受信サーバ example.co.jp → 10 mail.example.co.jp CNAME 名前の別名(エイリアス) shop → www.example.co.jp TXT 任意の文字列(SPF / 所有者証明など) "v=spf1 ip4:192.0.2.0/24 -all" SOA ゾーンの起点(Start of Authority):管理者・シリアル番号・各種タイマ ns1.example.co.jp. admin.example.co.jp. 2026042601 7200 3600 1209600 3600 PTR(任意) 逆引き:IPアドレス → ホスト名(in-addr.arpa / ip6.arpa) 例: 10.2.0.192.in-addr.arpa → www.example.co.jp. / 未登録も多い

図の見方:同じ 名前 に対して複数の型のレコードを並列に登録できますが、すべての型が必ずあるわけではありません。「メールはどこへ送る?」と聞きたいときは MX を、「IPv6 アドレスは?」と聞きたいときは AAAA を、それぞれ 型を指定して 問い合わせます。PTR は逆引き用の別ツリーで管理され、特に未登録のことも多いレコードです。SOA はゾーンに必ず 1 つあり、そのゾーンの「自己紹介カード」のような存在です。

もっと詳しく:CNAME と A の使い分け

A レコード は名前を IP に直接結びつけます。一方 CNAME名前を別の名前に転送 する仕組みです。たとえば自社のオンライン店舗を CDN(d1234.cloudfront.net など)に載せるとき、shop.example.co.jp から CDN ホスト名に CNAME を張れば、CDN 側が IP を入れ替えても自社側は何もしなくて済みます。

ただし重要な制約があります:

「変えたい部分の責任を別組織に委ねたいときは CNAME、固定の自前 IP を直接指したいときは A / AAAA」が基本方針です。

小問:メール送信プログラムが user@example.co.jp に配送先を決めるとき、最初に問い合わせる DNS レコード型は?
正解:B
MX(Mail eXchanger) はそのドメインの メール受信サーバ を示します。送信側 SMTP サーバはまず MX を引いてホスト名を取得し、そのホスト名から A / AAAA を引いて IP を決定します。優先度(数値が小さいほど優先)が複数あれば順に試します。A は単なる名前→IP、NS はゾーンの権威サーバ、TXT は SPF などの補助情報。

名前解決の手順 ── ステップで追う

ブラウザに www.example.co.jp と入力されてから IP アドレスが返るまで、誰が誰に問い合わせるのかを 8 ステップで追います。途中に登場する役者は次の 4 種類です。

完全な再帰解決を 8 ステップで体験

キャッシュリゾルバが、右側の階層から順番に場所を聞いていく スタブ (ブラウザ/OS) キャッシュ リゾルバ ルート . JP TLD jp co.jp 中間ゾーン 権威 example.co.jp たどる順: . jp co.jp example.co.jp www ① Aレコードを調べて ② jp の場所は? ③ jp はここ ④ co.jp の場所は? ⑤ co.jp はここ ⑥ example.co.jp の場所は? ⑦ ns1.example.co.jp が権威 ⑧ A = 192.0.2.10 を返す
ステップ 1. ブラウザの スタブリゾルバ が、設定済みのキャッシュリゾルバ(例:DHCP で配布された ISP の DNS、もしくは 1.1.1.1) に「www.example.co.jp の A レコードをください」と 再帰問い合わせ を投げます。スタブは「あとはよろしく、答えだけ返して」と丸投げするのがポイント。
ステップ 2. キャッシュリゾルバはまず自分のキャッシュを確認。なければ ルートサーバ に「.jp を管理する NS は?」と 反復問い合わせ します。ルートは答えそのものは知らず、「.jp の権威はここですよ」とだけ返します。
ステップ 3. ルートからは a.dns.jp など JP TLD サーバの NS とその IP(グルーレコード) が返ります。これでキャッシュリゾルバは次の問い合わせ先を知ります。
ステップ 4. 続いてキャッシュリゾルバは JP TLD サーバ に「co.jp の NS は?」と問い合わせます。co という別の TLD に行くのではなく、jp の下にある co.jp の場所を jp 側に案内してもらいます。
ステップ 5. JP TLD は「co.jp はこの権威サーバへ」と NS レコード を返します。これで co.jp の層へ進めます。
ステップ 6. キャッシュリゾルバは co.jp の権威サーバ に「example.co.jp の NS は?」と問い合わせます。ここでも、答えの IP ではなく次の委任先を教えてもらいます。
ステップ 7. co.jp からは「ns1.example.co.jpexample.co.jp の権威ですよ」と返ります。これで最終的な権威サーバの場所が分かります。
ステップ 8. キャッシュリゾルバは example.co.jp の権威サーバ に「www.example.co.jp の A は?」と問い合わせます。権威サーバが返した「192.0.2.10」は 権威ある回答(authoritative answer)。キャッシュリゾルバはこれを TTL の間キャッシュし、最後にスタブリゾルバへ返します。
1 / 8

図の見方:スタブ ↔ キャッシュリゾルバの間は 「答えだけ欲しい」(再帰)、キャッシュリゾルバ ↔ ルート/TLD/中間ゾーン/権威の間は 「次の場所を案内してもらう」(反復)www.example.co.jp では、co という別TLDへ行くのではなく、jp の下にある co.jp の委任をたどります。

実際によくある動き: キャッシュで止まる

ルートへ聞きに行くのは初回・TTL切れのときが中心 よくある 1: 端末内でキャッシュ HIT よくある 2: キャッシュリゾルバで HIT 初回・TTL切れ: MISS のときだけ階層をたどる ブラウザ / OS 端末の中 ローカルDNSキャッシュ HIT A = 192.0.2.10 すぐ使える 外部DNSへ出ない スタブ www.example.co.jp? キャッシュ リゾルバ 共有キャッシュ HIT 他の利用者や直前の結果 答えだけ返る 階層探索は不要 キャッシュ MISS TTL切れ/未保存 ルート . JP TLD jp 中間ゾーン co.jp 権威サーバ example.co.jp 答えを得たら TTL の間キャッシュし、次回は上のどこかで止まる

実際の名前解決では、直前に見たサイトや有名なサイトほど ブラウザ/OS のキャッシュキャッシュリゾルバの共有キャッシュ で答えが見つかりやすい。上の 8 ステップは、キャッシュがない、または TTL が切れているときの基本形です。

グルーレコード(glue record):NS レコードで「ns1.example.co.jp が権威」と教えられても、その IP を引くにはまた DNS が必要 ── という 循環参照 を防ぐため、親ゾーンが NS レコードと一緒に その NS の A / AAAA レコードを添えて返す 仕組みがあります。これがグルー。

再帰問い合わせ と 反復問い合わせ

DNS の問い合わせには 2 つの様式があり、誰が階層を辿る労力を背負うか が違います。区別が曖昧だと「リゾルバが何をしているのか」が見えなくなるので、ここで整理しましょう。
POINT 再帰=「あなたが代わりに最後まで調べて、答えだけください」。反復=「あなたが知っていることだけ教えて。次は私が他に聞きに行く」。スタブはほぼ常に再帰を要求し、キャッシュリゾルバは権威サーバ群に対して反復を行うのが標準形です。

再帰問い合わせ(Recursive Query)

クライアントは 1 回だけ問い合わせて、最終的な答え を受け取ります。聞かれた側は 「分からない」とは言わず、必要なら自分が他のサーバに連鎖的に問い合わせて答えを集めて来る義務を負います。

反復問い合わせ(Iterative Query)

聞かれた側は 「自分が知っていること」だけ を返します。最終答えに至っていなくても OK。それを受けたクライアントが 次の問い合わせ先を選んで 自分でもう一度問い合わせる、を繰り返します。

ステップで見る:外側は再帰、内側は反復

再帰問い合わせ: スタブは答えだけ待つ 反復問い合わせ: 質問と返答を1本ずつ追う スタブ ブラウザ / OS キャッシュ リゾルバ ルート . はここまで TLD jp など 権威 example.co.jp 権威サーバは「自分が知っている範囲」だけ返す 途中では最終IPではなく、次に聞く相手(NS / グルー)を返す ① Aレコードを調べて ② jp の場所は? ③ TLD はここ ④ 権威の場所は? ⑤ 権威サーバはここ ⑥ www のAは? ⑦ A = 192.0.2.10 ⑧ 最終答えをスタブへ返す 以後しばらくはキャッシュから即答
ステップ 1. スタブリゾルバはキャッシュリゾルバに「www.example.co.jp の最終的な答えをください」と頼みます。ここが 再帰問い合わせ です。スタブは途中のルートや TLD には直接聞きません。
ステップ 2. キャッシュリゾルバは、必要ならルートサーバに 反復問い合わせ します。ここではまだ最終的な A レコードを聞くのではなく、「jp を担当する TLD サーバはどこ?」と聞きます。
ステップ 3. ルートサーバは最終答えではなく、「jp の TLD サーバはここ」と案内します。反復問い合わせでは、聞かれた側は自分が知っている範囲だけ返します。
ステップ 4. キャッシュリゾルバは、案内された TLD サーバに「example.co.jp の権威サーバはどこ?」と聞きます。
ステップ 5. TLD サーバは「そのドメインの権威サーバはここ」と返します。この時点でも、まだ IP アドレスそのものは返っていません。
ステップ 6. キャッシュリゾルバは権威サーバに「www.example.co.jp の A レコードは?」と聞きます。ここで初めて最終的な答えを持つ相手に届きます。
ステップ 7. 権威サーバは 最終答え として A レコードを返します。キャッシュリゾルバはこの答えを TTL の間キャッシュできます。
ステップ 8. キャッシュリゾルバは集めた最終答えをスタブへ返します。スタブから見ると「1 回質問して、1 回答えが返った」だけに見えるのが再帰問い合わせです。
1 / 8

図の見方:左側の スタブ → キャッシュリゾルバ は再帰問い合わせ、右側の キャッシュリゾルバ → ルート/TLD/権威 は反復問い合わせです。「誰が最後まで調べる責任を持つか」が違いの中心です。

並べて比較

再帰問い合わせ

区間:スタブ → キャッシュリゾルバ
クライアント:1 回投げて答えを待つだけ
サーバ:階層を辿る・キャッシュ管理・冗長化が必要
長所:エンド端末の実装がシンプル
短所:サーバ側の負荷が大きい・オープンに開くと悪用の温床

反復問い合わせ

区間:キャッシュリゾルバ → 権威サーバ群
クライアント:NS / グルーをたどる責任を持つ
サーバ:答えるだけ。実装シンプル
長所:権威サーバを薄く・スケーラブルに
短所:クライアント実装に手間。直接やるとレイテンシ大

つながる知識: 「重労働を中継地点に集約し、エンドポイントは軽くする」設計は、HTTP の キャッシュ / プロキシ / CDN とも共通。標準編(HTTP 詳細) や発展編(CDN) で再登場します。

キャッシュと TTL ── 速さの秘密

毎回ルートまで辿るのは効率が悪すぎます。各レイヤで キャッシュ が効き、2 回目以降の問い合わせ はほぼ即答になります。キャッシュの寿命を決めているのが TTL(Time To Live) という秒数値です。
POINT キャッシュは キャッシュリゾルバOS のリゾルバキャッシュブラウザの DNS キャッシュ など 多段 に効く。各層が 独立に TTL カウントダウンを行うため、実際の有効期限はバラバラ。

TTL の役割

ネガティブキャッシュ

そのレコードは存在しない」という応答(NXDOMAIN) も、SOA レコードの最後の値(minimum TTL) で短時間キャッシュされます。これを ネガティブキャッシュ(RFC 2308) といいます。タイポしたドメインを連打しても、毎回権威に届かずに済む仕組みです。

Q. 「TTL が 0 になっても応答はされる?」── キャッシュ動作を確認してみよう。

TTL は「キャッシュをいつまで信じるか」の期限 利用者側 ブラウザ / OS 名前を知りたい キャッシュリゾルバ レコードと残りTTLを保存 信じてよい期限を管理 権威DNSサーバ 本物のレコードを持つ 答えにTTLを付ける 1 初回:キャッシュにない(MISS) 利用者側はまずキャッシュリゾルバへ質問する。リゾルバ内にはまだ保存済みの答えがない。 問い合わせ キャッシュ MISS A レコードなし 外へ聞きに行く必要 2 権威DNSへ問い合わせ、答えとTTLを保存 権威DNSから受け取った答えは、TTL が残る間だけキャッシュとして信じる。 A は? A=192.0.2.10 / TTL=3600 保存する 残TTL 3600秒 3 TTL内:キャッシュ HIT で即答 残TTLがある間は、権威DNSへ行かずキャッシュリゾルバが保存済みの答えを返す。 もう一度質問 キャッシュから即答 HIT 残TTL 1200秒 まだ信じてよい 権威DNSへ行かない 4 TTL切れ:古い値を信じず、次回に再確認 残TTLが0になったら、次の問い合わせでは権威DNSへ聞き直して新しいTTLで保存する。 次の質問 期限切れ 残TTL 0秒 再問い合わせ 新しい答え + TTL 利用者へ返す
ステップ1. 初回はキャッシュに答えがないため、利用者側から見た問い合わせはキャッシュリゾルバで止まらない。
ステップ2. キャッシュリゾルバは権威DNSへ問い合わせ、答えと TTL を受け取って保存する。TTL は「この答えを信じてよい残り時間」。
ステップ3. TTL が残っている間はキャッシュ HIT。権威DNSへは行かず、キャッシュリゾルバが保存済みの答えを返す。
ステップ4. TTL が切れた後の次の問い合わせでは、古い値を信じずに権威DNSへ再確認し、新しい TTL で保存し直す。
1 / 4

図の見方:ボタンで進めると、初回の MISS、答えと TTL の保存、TTL 内の HIT、TTL 切れ後の再確認を順番に確認できます。同じ動きがブラウザ・OS・キャッシュリゾルバなど複数の場所で起こるため、更新の見え方に時間差が出ます。

考えてみよう: もし TTL を 1 秒に設定すれば変更は瞬時に伝わるが、ルートから権威までの往復が常時発生して全体が遅くなり、権威サーバの負荷も跳ね上がる。逆に 1 週間にすれば速いが間違いを直せない。「変更頻度 × 負荷」のトレードオフ をどう取るかが運用設計の腕の見せどころ。

トランスポート ── まず UDP/53

DNS のメッセージは ポート 53 番で運ばれます。多くの問い合わせは小さく(数十〜数百バイト)、応答も同程度なので UDP(コネクションレス) が最初の選択肢になっています。ハンドシェイクのオーバーヘッドがない分、レイテンシも CPU も節約できます。
POINT 通常の名前解決は UDP/53 が基本。応答が大きすぎるときだけ TCP/53 で取り直すことがあります。ゾーン転送や DNS セキュリティの話は、次の「運用とセキュリティ」でまとめます。

なぜ最初は UDP なのか

TCP も使うが、ここでは軽く押さえる

応答が大きすぎて UDP だけでは返しきれない場合、DNS サーバは TC ビット(truncated:切り捨て) を立てて返すことがあります。そのとき問い合わせ側は TCP/53 で同じ内容を聞き直す ことがあります。

場面使われやすい運び方ここで覚えること
通常の名前解決UDP/53小さい問い合わせ・応答を速く返す
応答が大きいときTCP/53TC ビットが出たら TCP で取り直すことがある
暗号化DNSDoT / DoH詳細は発展編。通常の UDP/53 とは別の運び方
ここでは 「DNS はまず UDP/53。大きすぎると TCP/53 も使う」 までで十分です。ゾーン転送のような管理用通信や、DNSSEC・DoH/DoT のようなセキュリティの話は次のセクションで位置づけます。

運用とDNSセキュリティ ── ゾーン転送・改ざん対策・暗号化

DNS を実際に運用するときは、名前を引けるだけでなく、正しい情報を安全に保つ ことも重要です。ここでは入口として、権威サーバ同士で情報を同期する ゾーン転送、転送先を制限する考え方、そして DNSSECDoH / DoT が何を守る技術なのかをまとめます。細かい仕組みは 発展編 DNS のセキュリティ で扱います。

安全な運用としてのゾーン転送(AXFR / IXFR)

権威サーバは プライマリ 1 台と セカンダリ(複数) で冗長化されるのが標準です。プライマリが正本のゾーンファイルを編集し、セカンダリに ゾーン転送 で同期します。

図で見る:ゾーン転送の流れ

正本のゾーン情報を、セカンダリへ同期して冗長化する プライマリ権威サーバ ゾーンファイルの正本を持つ primary example.co.jp zone SOA 2026042601 A / MX / NS TXT / AAAA ... セカンダリ権威サーバ 同期したコピーで応答する secondary zone copy SOA 2026042601 A / MX / NS TXT / AAAA ... 同期の判断材料 SOA シリアル番号 = 版番号 転送を許可する相手だけ ACL / TSIG で制限 ① 正本を編集 SOA serial 2026042601 から 2026042602 へ更新 ② SOA シリアルを確認 新しい版を発見 ③ IXFR / AXFR 要求 差分があれば IXFR、必要なら AXFR ④ ゾーンデータ転送 TCP/53 で同期 同期完了 SOA serial 2026042602 同期後は、プライマリが落ちてもセカンダリが同じゾーンの権威応答を返せる
ステップ 1. プライマリでゾーンファイルを更新したら、SOA レコードの シリアル番号 を上げます。これはゾーンの版番号です。
ステップ 2. セカンダリは NOTIFY を受けるか、定期確認でプライマリの SOA を見ます。自分のコピーよりシリアルが新しければ、同期が必要だと分かります。
ステップ 3. セカンダリはプライマリへ転送を要求します。差分で済むなら IXFR、全体を取り直すなら AXFR です。
ステップ 4. プライマリからセカンダリへゾーンデータを転送し、コピーを最新化します。ゾーン転送は管理情報も含むため、ACL / TSIG で許可した相手だけに制限します。
1 / 4

図の見方:ゾーン転送は「利用者が名前解決する流れ」ではなく、権威サーバ同士が裏側で同期する流れです。SOA シリアル番号で更新有無を判断し、必要なときだけ IXFR / AXFR でセカンダリを最新化します。

DNSセキュリティの守備範囲

話題何を守るかこのレッスンでの位置づけ
ゾーン転送の制限権威サーバ間の管理データ許可したセカンダリだけに同期する
DNSSECDNS 応答の改ざん検知詳しい署名検証は発展編
DoT / DoH問い合わせ通信の盗み見・改ざん対策暗号化 DNS として発展編で扱う

つながる知識: ゾーン転送は 運用者どうしの裏側の同期、DNSSEC は 返ってきた答えが改ざんされていないか、DoT/DoH は 問い合わせの通信路を暗号化する 技術です。同じ「DNSの安全」でも、守っている場所が違います。

まとめと用語チェック

SUMMARY 1. DNS の名前空間は ルート → TLD → 第二レベル → ホスト木構造。各ゾーンは独立に管理・委任
2. レコード型の主役は A / AAAA / NS / MX / CNAME / TXT / SOA。同じ名前に複数型が並ぶ
3. 解決はスタブ → キャッシュリゾルバ → ルート/TLD/権威 と進む。再帰(スタブ→中継) と 反復(中継→権威群) を区別
4. TTL がキャッシュの寿命。多段キャッシュが効くため、変更の伝搬には時間差がある(ネガティブキャッシュもある)
5. トランスポートは UDP/53 が主。応答が大きいときは TCP/53 で取り直すことがある
6. 運用とセキュリティでは、ゾーン転送(権威サーバ間の同期)、DNSSEC(改ざん検知)、DoT / DoH(暗号化)の守備範囲を区別する

用語チェック

用語1 行説明
FQDN完全修飾ドメイン名。ルート(末尾の .) まで含めた名前
ゾーン(zone)1 つの組織が責任をもって管理する DNS 名前空間の一区画
委任(delegation)子ゾーンの管理を別組織に任せ、親は NS だけ持つこと
NS レコードそのゾーンを管理する権威サーバの名前を示す
A / AAAA レコード名前 → IPv4 / IPv6 アドレスの対応
MX レコードそのドメインのメール受信サーバを示す(優先度付き)
CNAME レコード名前の別名(エイリアス)。他レコードと併存不可
TXT レコード任意の文字列(SPF・所有者証明・サイト認証など)
SOA レコードゾーンの起点。管理者・シリアル番号・各種タイマを保持
PTR レコード逆引き(IPアドレス → 名前)。in-addr.arpa ツリー
スタブリゾルバOS / アプリ側の最小限の問い合わせクライアント
キャッシュリゾルバ(フルサービスリゾルバ)階層を辿って答えを集め、結果を一定期間キャッシュする中継サーバ
権威サーバあるゾーンの正解を持つサーバ。回答に「authoritative」が付く
再帰問い合わせ「最終答えを返してくれ」(スタブ → キャッシュ間)
反復問い合わせ「知ってることだけ返してくれ」(キャッシュ → 権威群)
TTLレコードのキャッシュ有効期限(秒)
ネガティブキャッシュ「該当なし(NXDOMAIN)」の応答も短時間キャッシュする仕組み
グルーレコードNS の循環参照を解くため、親が NS と一緒に返す A / AAAA
ゾーン転送(AXFR / IXFR)プライマリ → セカンダリ間でゾーン情報を同期する処理(TCP/53)
EDNS0UDP 応答サイズ拡張など、DNS の機能拡張の枠組み
DNSSECDNS 応答が改ざんされていないことを署名で検証する仕組み
DoT / DoHDNS の問い合わせ通信を TLS / HTTPS で暗号化して運ぶ方式
DNSSEC・DoT・DoH の詳しい仕組みは 発展編 DNS のセキュリティ で扱う
NEXT: 次回(標準編) は 電子メール詳細。SMTP の中継、MIME、SPF / DKIM / DMARC まで踏み込みます。本講で扱った MX レコード がメール配送の起点になっていることを思い出して読むと、流れがすっきり見えます。

確認問題

問1. DNS の名前空間と委任の説明として、最も適切なものを 1 つ選べ。

次の選択肢から最も適切なものを選択してください。
A. ルートサーバが世界中のすべての A レコードを集中管理している
B. TLD サーバは配下のすべてのホストの IP アドレスを保持している
C. 各ゾーンは独立した管理者が責任を持ち、上位ゾーンは下位ゾーンの NS だけを保持している
D. 各ホストが他のすべてのホストの DNS レコードを持ち合っている
正解:C
DNS は 分散型データベース。上位は下位の NS(必要なら添付の グルー) を持つだけで、中身は委任先が責任を持って管理する。A は誤り(集中管理ではない)。B は誤り(TLD は子の NS だけ)。D は P2P 的だが DNS の設計ではない。

問2. 再帰問い合わせ反復問い合わせ の使い分けについて、最も適切な組合せはどれか。

次の選択肢から最も適切なものを選択してください。
A. スタブ→キャッシュリゾルバ:反復、キャッシュリゾルバ→権威:再帰
B. スタブ→キャッシュリゾルバ:再帰、キャッシュリゾルバ→権威:反復
C. すべての区間で再帰
D. すべての区間で反復
正解:B
スタブは「答えだけほしい」と 再帰 を要求し、キャッシュリゾルバが内部で 反復 問い合わせを行ってルート/TLD/権威を辿る、というのが標準形。権威サーバは原則として再帰を提供しない(オープンリゾルバとして悪用を避けるため)。

問3. 次のうち、レコード型と用途の組合せが 誤っている ものを 1 つ選べ。

次の選択肢から最も適切なものを選択してください。
A. A レコード ── 名前から IPv4 アドレスへの対応
B. NS レコード ── そのゾーンを管理する権威サーバの指定
C. MX レコード ── そのドメインのメール受信サーバの指定
D. CNAME レコード ── そのゾーンの管理者連絡先のメールアドレス
正解:D
CNAME は「名前の別名(エイリアス)」を表すレコードで、管理者連絡先ではない。管理者の連絡先は SOA レコード の rname フィールドに含まれる。A・B・C は正しい。

問4. TTL とキャッシュに関する記述として、最も適切なものを 1 つ選べ。

次の選択肢から最も適切なものを選択してください。
A. TTL は権威サーバが応答を返す回数の上限であり、これを超えると応答できなくなる
B. キャッシュは権威サーバ側にだけ存在し、クライアント・OS・中継サーバは保持しない
C. TTL はレコードのキャッシュ有効秒数で、各キャッシュ層は独立にカウントダウンする
D. TTL を 0 に設定すると、そのドメインは引けなくなる
正解:C
TTL は キャッシュをいつまで信じるか を決める秒数値。多段キャッシュ(ブラウザ・OS・中継) はそれぞれ独立にカウントダウンするので、現実には世界中で見え方の段差が出る。A は誤り(応答回数とは無関係)、B は誤り(キャッシュは多段)、D は誤り(TTL=0 はキャッシュ禁止の意で、応答自体は返る)。

問5. DNS のトランスポートに関する記述として、最も適切なものを 1 つ選べ。

次の選択肢から最も適切なものを選択してください。
A. DNS は常に TCP/53 のみを使用する
B. 通常の問い合わせは UDP/53 で行い、応答が切り捨てられた(TC ビット) 場合は TCP/53 で取り直すことがある
C. DNS は HTTP の上で動くので TCP/80 を使う
D. ポート番号 53 はトランスポート層が選ぶ可変値で、固定ではない
正解:B
DNS は伝統的に UDP/53 を主としつつ、応答サイズ超過で TC=1 が返った場合は TCP/53 で取り直すことがある。A は誤り(UDP も使う)。C は DoH の話と混同(DoH は HTTPS=TCP/443)。D は誤り(53 番は IANA で固定割り当て)。
← PREV
第12回 HTTP/1.1・HTTP/2
NEXT →
第14回 メール詳細