学習目標
本講を終えると、以下の問いに答えられるようになります。
- DNS の名前空間が「ルート(.) → TLD → 第二レベル → サブドメイン」の 木構造 になっていることを説明できる
- 主要なレコード型(A / AAAA / NS / MX / CNAME / TXT / SOA)の役割をそれぞれ一言で言える
- スタブリゾルバ・キャッシュリゾルバ(フルサービスリゾルバ)・権威サーバの分担を区別できる
- 再帰問い合わせと反復問い合わせの違いを、誰が誰に行うのかとあわせて説明できる
- TTL がキャッシュの有効期間であること、ネガティブキャッシュの意味が分かる
- DNS が ポート 53 / UDP を主に使い、大きい応答では TCP も使うことを述べられる
- ゾーン転送 が権威サーバ同士の同期であり、DNSSEC・DoT/DoH とは守る対象が違うことを位置づけられる
本講は
第5回 DNS の役割(基礎) の続きです。基礎で扱った「電話帳のような変換係」「ルート → TLD → 権威」の概念は前提としつつ、内部のメカニズム(再帰/反復・レコード型・トランスポート)に踏み込みます。さらに踏み込んだ
DoH / DoT(暗号化 DNS) は
発展編 で扱います。
このレッスンの目次
DNS の名前空間 ── 木のような階層
DNS の名前空間は ルート(.) を頂点とした 木構造 です。一つのドメイン名 www.example.co.jp. は、右端の見えない ルート から左へ、TLD(jp) → 第二レベル(co) → 第三レベル(example) → ホスト(www) と読み取ります。各レベルは独立した組織が管理しており、責任は 「自分が管理する範囲だけ」 に限定されています。
POINT
DNS は 分散型データベース。1 台に全部詰め込むのではなく、各ドメインの管理者が 自分のゾーンだけ を管理する。階層を辿れば必ず正解にたどり着けるよう、上位は下位の場所(NS レコード)を知っているだけでよい。
名前空間の樹形図
図の見方:DNS の名前空間は ルート(.) を頂点とした木構造。FQDN(完全修飾ドメイン名)は右(ルート) から左(ホスト) へ向かって読みます。各ノードの管理は別組織に 委任(delegation) されており、上位サーバは下位サーバの所在(NS レコード)だけを覚えています。
ゾーンと委任
1 つの組織が責任を持って管理する範囲を ゾーン(zone) と呼びます。たとえば example.co.jp ゾーンの管理者は、自分の配下の www.example.co.jp や mail.example.co.jp の対応を全部知っています。さらに下に cs.example.co.jp という子ゾーンを作って別チームに任せれば、それは 委任。親は 「子ゾーンを管理しているサーバはここですよ」 という案内(NS レコード)だけを持ちます。
Q. もし「co.jp」サーバが、配下の数十万社の中身まで全部覚えていたら何が困るでしょうか?クリック前に少し考えてみてください。
- 各社が IP を変えるたび、JPRS(jp の管理団体) に申請が必要になり管理が破綻する
- 1 台のサーバに問い合わせが集中して負荷に耐えられない
- 各社の運用方針(変更頻度・TTL など)に合わせられない
そこで「下位の存在だけ覚えて、中身は委ねる」=委任 という設計になっています。
もっと詳しく:ルート DNS サーバはどこに?
ルートサーバは「A から M まで 13 個の ホスト名」(a.root-servers.net 〜 m.root-servers.net)で運用されています。ただし実体は 13 台 ではなく、同じ IP アドレスを世界中に複製した Anycast クラスタ として動いており、多数のサーバが各地に配置されています。問い合わせは ネットワーク的に最寄り のものに自動的に届きます。日本にも M ルートのインスタンスがあります。13 という数字の上限は、当時の DNS パケット(UDP・512 バイト) に応答を収めるための歴史的制約に由来します。
ただし、普段の名前解決で 毎回ルートサーバへ聞きに行くわけではありません。ブラウザ・OS・キャッシュリゾルバに答えや次の問い合わせ先が残っていれば、そこで解決が止まります。ルートへ問い合わせるのは、主に キャッシュリゾルバ側に手がかりがない初回 や TTL が切れた後 です。
図の見方: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. | 3600 | IN | A | 192.0.2.10 |
| www.example.co.jp. | 3600 | IN | AAAA | 2001:db8::10 |
| example.co.jp. | 3600 | IN | MX | 10 mail.example.co.jp. |
クラスはほぼ常に IN(Internet) です。TTL はキャッシュの有効期間(秒) で、後ろのセクションで詳しく扱います。
主要レコード型のはたらき
図の見方:同じ 名前 に対して複数の型のレコードを並列に登録できますが、すべての型が必ずあるわけではありません。「メールはどこへ送る?」と聞きたいときは MX を、「IPv6 アドレスは?」と聞きたいときは AAAA を、それぞれ 型を指定して 問い合わせます。PTR は逆引き用の別ツリーで管理され、特に未登録のことも多いレコードです。SOA はゾーンに必ず 1 つあり、そのゾーンの「自己紹介カード」のような存在です。
もっと詳しく:CNAME と A の使い分け
A レコード は名前を IP に直接結びつけます。一方 CNAME は 名前を別の名前に転送 する仕組みです。たとえば自社のオンライン店舗を CDN(d1234.cloudfront.net など)に載せるとき、shop.example.co.jp から CDN ホスト名に CNAME を張れば、CDN 側が IP を入れ替えても自社側は何もしなくて済みます。
ただし重要な制約があります:
- CNAME は 他のレコードと併存できない(同じ名前に MX や TXT を持てない)
- そのため ゾーン頂点(example.co.jp そのもの) には CNAME を書けない(SOA や NS が必須なので)。回避策として ALIAS / ANAME と呼ばれる事業者独自のレコード型を提供する DNS サービスもあります
- CNAME を解決する側は、別名先をさらに引き直す手間が増える
「変えたい部分の責任を別組織に委ねたいときは 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 種類です。
- スタブリゾルバ(stub resolver):アプリ(ブラウザ等) の中、または OS の名前解決ライブラリ(getaddrinfo 等)。「答えを丸投げで欲しい」係。
- キャッシュリゾルバ(フルサービスリゾルバ):ISP や組織内、または 8.8.8.8(Google) 1.1.1.1(Cloudflare) のような公開リゾルバ。本当に階層を辿って答えを集めてくる 主役。
- ルート / TLD / 中間ゾーン / 権威サーバ:階層の各層を担当する権威サーバ。それぞれ「下位の場所だけ知っている」もしくは「自分のゾーンの答えを持っている」。
完全な再帰解決を 8 ステップで体験
ステップ 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.jp が example.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 の委任をたどります。
実際によくある動き: キャッシュで止まる
実際の名前解決では、直前に見たサイトや有名なサイトほど ブラウザ/OS のキャッシュ や キャッシュリゾルバの共有キャッシュ で答えが見つかりやすい。上の 8 ステップは、キャッシュがない、または TTL が切れているときの基本形です。
グルーレコード(glue record):NS レコードで「ns1.example.co.jp が権威」と教えられても、その IP を引くにはまた DNS が必要 ── という 循環参照 を防ぐため、親ゾーンが NS レコードと一緒に その NS の A / AAAA レコードを添えて返す 仕組みがあります。これがグルー。
再帰問い合わせ と 反復問い合わせ
DNS の問い合わせには 2 つの様式があり、誰が階層を辿る労力を背負うか が違います。区別が曖昧だと「リゾルバが何をしているのか」が見えなくなるので、ここで整理しましょう。
POINT
再帰=「あなたが代わりに最後まで調べて、答えだけください」。反復=「あなたが知っていることだけ教えて。次は私が他に聞きに行く」。スタブはほぼ常に再帰を要求し、キャッシュリゾルバは権威サーバ群に対して反復を行うのが標準形です。
再帰問い合わせ(Recursive Query)
クライアントは 1 回だけ問い合わせて、最終的な答え を受け取ります。聞かれた側は 「分からない」とは言わず、必要なら自分が他のサーバに連鎖的に問い合わせて答えを集めて来る義務を負います。
- 使われる区間:スタブリゾルバ → キャッシュリゾルバ
- クライアントの実装:超シンプル(getaddrinfo 1 回呼ぶだけ)
- サーバの負担:重い(階層を辿る・キャッシュを保持する)
- 原則として 権威サーバ自身は再帰を提供しない(オープンリゾルバ問題を避けるため)
反復問い合わせ(Iterative Query)
聞かれた側は 「自分が知っていること」だけ を返します。最終答えに至っていなくても OK。それを受けたクライアントが 次の問い合わせ先を選んで 自分でもう一度問い合わせる、を繰り返します。
- 使われる区間:キャッシュリゾルバ → ルート / TLD / 権威
- 各権威サーバは「自分のゾーン外」については案内のみ(NS / グルー) を返す
- 権威サーバの実装はシンプルで、負荷も予測しやすい
- キャッシュを得やすい(途中の答えも全部キャッシュ可能)
ステップで見る:外側は再帰、内側は反復
ステップ 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 の役割
- 権威サーバが答えを返すとき、各レコードに TTL(秒) が付いている(例: 3600 = 1 時間)
- キャッシュ側は 受け取った時刻 + TTL まで保持し、その間は外に問い合わせない
- TTL を短くすると 変更が早く反映 されるが、問い合わせ回数が増える(負荷とトレードオフ)
- TTL を長くすると パフォーマンスは良いが、IP 変更が世界に行き渡るのに時間がかかる
- サーバ移行を予定するときは、事前に TTL を短く(例:60〜300 秒) しておくのが定石
ネガティブキャッシュ
「そのレコードは存在しない」という応答(NXDOMAIN) も、SOA レコードの最後の値(minimum TTL) で短時間キャッシュされます。これを ネガティブキャッシュ(RFC 2308) といいます。タイポしたドメインを連打しても、毎回権威に届かずに済む仕組みです。
Q. 「TTL が 0 になっても応答はされる?」── キャッシュ動作を確認してみよう。
はい、応答自体は返ります。ただし、TTL が切れたエントリは そのキャッシュからは消える(あるいは無効扱い) ので、次の問い合わせは 権威に問い直し になります。つまり、
- TTL=0 のレコードは キャッシュ禁止 の意。リゾルバは答えを返したらすぐ捨てるのが望ましい
- TTL が経過したレコードを再利用するか(stale-while-revalidate) は実装依存。RFC 8767 で 「権威に届かないときは古い値を返してよい」 という運用が標準化されている [要確認]
- 「dig で 2 回連続実行すると 2 回目の 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 なのか
- DNS 1 往復は クエリ 1 個 + 応答 1 個。再送・順序保証は不要(失敗したらクライアントがタイマで再送)
- TCP のように 3 ウェイハンドシェイク をすると、それだけで 1〜2 RTT 余分にかかる
- 権威サーバは秒間数万クエリをさばく。UDP の方が 状態を持たない ぶんスケールしやすい
TCP も使うが、ここでは軽く押さえる
応答が大きすぎて UDP だけでは返しきれない場合、DNS サーバは TC ビット(truncated:切り捨て) を立てて返すことがあります。そのとき問い合わせ側は TCP/53 で同じ内容を聞き直す ことがあります。
| 場面 | 使われやすい運び方 | ここで覚えること |
| 通常の名前解決 | UDP/53 | 小さい問い合わせ・応答を速く返す |
| 応答が大きいとき | TCP/53 | TC ビットが出たら TCP で取り直すことがある |
| 暗号化DNS | DoT / DoH | 詳細は発展編。通常の UDP/53 とは別の運び方 |
ここでは 「DNS はまず UDP/53。大きすぎると TCP/53 も使う」 までで十分です。ゾーン転送のような管理用通信や、DNSSEC・DoH/DoT のようなセキュリティの話は次のセクションで位置づけます。
運用とDNSセキュリティ ── ゾーン転送・改ざん対策・暗号化
DNS を実際に運用するときは、名前を引けるだけでなく、正しい情報を安全に保つ ことも重要です。ここでは入口として、権威サーバ同士で情報を同期する ゾーン転送、転送先を制限する考え方、そして DNSSEC や DoH / DoT が何を守る技術なのかをまとめます。細かい仕組みは 発展編 DNS のセキュリティ で扱います。
安全な運用としてのゾーン転送(AXFR / IXFR)
権威サーバは プライマリ 1 台と セカンダリ(複数) で冗長化されるのが標準です。プライマリが正本のゾーンファイルを編集し、セカンダリに ゾーン転送 で同期します。
- AXFR(Authoritative Full Transfer):ゾーン全体をまるごと転送する。シンプルだが大きいゾーンでは重い
- IXFR(Incremental Transfer):差分(直近のシリアル番号以降の変更) だけを転送する。効率的
- 転送のトリガは SOA レコードの「シリアル番号」。セカンダリは NOTIFY を受けたり、定期的(SOA の refresh 値) にプライマリの SOA を見に行ったりして、シリアルが上がっていれば転送を要求
- ゾーン転送は管理用の通信。インターネット全体に晒すと情報漏えいになるため、ACL や TSIG で許可した相手だけ に制限する
図で見る:ゾーン転送の流れ
ステップ 1. プライマリでゾーンファイルを更新したら、SOA レコードの シリアル番号 を上げます。これはゾーンの版番号です。
ステップ 2. セカンダリは NOTIFY を受けるか、定期確認でプライマリの SOA を見ます。自分のコピーよりシリアルが新しければ、同期が必要だと分かります。
ステップ 3. セカンダリはプライマリへ転送を要求します。差分で済むなら IXFR、全体を取り直すなら AXFR です。
ステップ 4. プライマリからセカンダリへゾーンデータを転送し、コピーを最新化します。ゾーン転送は管理情報も含むため、ACL / TSIG で許可した相手だけに制限します。
1 / 4
図の見方:ゾーン転送は「利用者が名前解決する流れ」ではなく、権威サーバ同士が裏側で同期する流れです。SOA シリアル番号で更新有無を判断し、必要なときだけ IXFR / AXFR でセカンダリを最新化します。
DNSセキュリティの守備範囲
| 話題 | 何を守るか | このレッスンでの位置づけ |
| ゾーン転送の制限 | 権威サーバ間の管理データ | 許可したセカンダリだけに同期する |
| DNSSEC | DNS 応答の改ざん検知 | 詳しい署名検証は発展編 |
| 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) |
| EDNS0 | UDP 応答サイズ拡張など、DNS の機能拡張の枠組み |
| DNSSEC | DNS 応答が改ざんされていないことを署名で検証する仕組み |
| DoT / DoH | DNS の問い合わせ通信を 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 で固定割り当て)。