DNS とは ── 実機を触ったことがない人のための名前解決の仕組みと設計・セキュリティ

DNS は午後で単独の大問になることは少ない代わりに、ほぼ毎年どこかの設問に顔を出します。クラウド移行では「TTL を短くしてから切り替える」、負荷分散では「DNS ラウンドロビン」、 セキュリティでは「キャッシュポイズニング」「DNS による通信制御」、認証では「SRV レコード」、IPv6 では「AAAA と権威サーバ」という具合です。 「誰が答えを持ち、誰が探しに行き、答えはどれだけの時間覚えられるか」の 3 点が分かれば、どの設問にも対応できます。

1. DNS が解いている問題

通信は IP アドレス宛てにしかできませんが、人は www.example.jp のような名前でアクセスしたい。この対応表を 1 か所で管理すると世界規模では持ちません。 そこで DNS は名前を「.」で区切った階層にし、各階層の管理を別々の組織に委任します。jp は JPRS が、example.jp はその会社が管理し、自分の範囲(ゾーン)の答えだけに責任を持ちます。

設計の 2 つの柱 ①答えを持つサーバ(権威 DNS)と、利用者の代わりに探し回るサーバ(キャッシュ DNS)を分ける。 ②探した結果を TTL(秒)の間だけ覚える。この 2 つが午後のほぼ全ての DNS 設問の根です。

2. 登場人物と名前解決の流れ

PCスタブリゾルバ キャッシュ DNSフルサービスリゾルバ ルート DNS(.) jp の権威 DNS example.jp の権威 DNS ① 再帰問合せ ⑧ 答え(A) ② www.example.jp は? ③ jp の DNS に聞け(NS) ④ ⑤ example.jp の DNS に聞け ⑥ ⑦ 203.0.113.10 だ(A) ②〜⑦=反復問合せ 結果を TTL の間キャッシュ PC は「全部調べて答えを返せ」(再帰)、キャッシュ DNS は「知っている範囲を教えて」を繰り返す(反復) 権威 DNS は自分のゾーンの答えだけ返し、他人のために調べには行かない
図1 PC は再帰問合せを 1 回、キャッシュ DNS が反復問合せで階層を降りる
役割何をするか午後での呼び名
スタブリゾルバPC の OS に組み込まれた問合せ機能。設定された DNS サーバに「全部調べて答えを返せ」と頼むだけDNS クライアント
キャッシュ DNS サーバPC からの再帰問合せを受け、ルートから順に反復問合せして答えを集め、TTL の間キャッシュするフルサービスリゾルバ、フルリゾルバ、内部 DNS(社内のもの)
権威 DNS サーバ自分のゾーンの答えを持つ。他人のために調べには行かないコンテンツサーバ、外部 DNS(公開用のもの)、プライマリ/セカンダリ
ルート DNS「.」の権威。各 TLD の権威サーバを教えるルートサーバ(世界に 13 系統)

PC はキャッシュ DNS に再帰問合せをする

PC は DHCP などで教えられたキャッシュ DNS サーバに UDP 53 番で「www.example.jp の A レコードは?」と聞きます。これが再帰問合せで、「最終的な答えが出るまで代わりに調べてくれ」という意味です。

キャッシュ DNS は上から順に反復問合せをする

キャッシュに無ければ、ルート DNS に聞き「jp は jp の権威に聞け」と NS レコードで紹介され、次に jp の権威に聞き「example.jp はこのサーバだ」と紹介され、最後に example.jp の権威から A レコードを受け取ります。 各サーバは「知っている範囲を答えるだけ」で、これが反復問合せです。紹介のとき、権威サーバの名前だけでなく IP アドレスも一緒に返す(グルーレコード)ので、循環せずに済みます。

答えを TTL の間キャッシュして PC に返す

受け取った答えにはTTL(秒)が付いています。キャッシュ DNS はその時間だけ答えを覚え、次に同じ問合せが来たら権威に聞かずに答えます。 だから権威 DNS のレコードを書き換えても、世界中のキャッシュが古い答えを TTL が切れるまで返し続けます。これが 5 章の移行手順の根拠です。

権威とキャッシュを取り違えない 「権威 DNS サーバを答えよ」と聞かれたら、応答の AUTHORITY SECTION にある NS レコードのサーバ名(ns1.example.net. など)を書きます。ゾーン名(example.net.)やキャッシュ DNS を書くと誤りです。 令和7年 午後Ⅱ問1 設問3(2) は dig の出力から CNAME を追って AAAA を 2 つ、権威サーバの FQDN を 2 つ書かせました。

通信は UDP 53 番が基本で、応答が 512 バイトを超えるときは EDNS0 で UDP のまま大きくするか、TCP 53 番に切り替えます。ゾーン転送(AXFR)は最初から TCP です。 令和6年 午後Ⅱ問2 設問3(1) は「DNS は UDP で 512 バイト」、令和7年 午後Ⅱ問1 設問3(1) は「EDNS が使えなければ TCP」を問いました。

3. レコードとゾーン

レコード意味午後での使われ方
A / AAAA名前 → IPv4 / IPv6 アドレス同じ名前に複数の A を置くと DNS ラウンドロビン
CNAME名前 → 別の名前(別名)CDN・SaaS・WAF サービスへ振るとき「shop IN CNAME xxx.cdn.example.net.」。先方の IP が変わっても自社の DNS を直さなくてよい(令和元年 午後Ⅰ問2 設問1、平成29年 午後Ⅱ問1)
NSゾーンの権威サーバ名委任・紹介に使う。「権威 DNS サーバ名」の答え
MXそのドメイン宛てメールの受取サーバ。Preference が小さいほど優先メールの問題では必ず出る(令和6年 午後Ⅱ問2、平成28年 午後Ⅰ問1)
PTRIP アドレス → 名前(逆引き)。in-addr.arpa / ip6.arpaメールサーバの正当性確認(逆引きが引けるか)
TXT任意の文字列SPF・DKIM・DMARC の設定はここ
SRVサービス名 → それを提供するサーバ名とポート_kerberos._tcp.example.lan で KDC を探す。令和4年 午後Ⅰ問3
SOAゾーンの管理情報(シリアル、更新間隔、ネガティブキャッシュ TTL)セカンダリはシリアルの増加でゾーン転送を判断

権威サーバはプライマリ(ゾーンの原本を持つ)とセカンダリ(コピーを持つ)の 2 台以上で構成し、ゾーン転送(AXFR、TCP 53)で同期します。プライマリが更新を知らせるのが NOTIFY です。 ゾーン転送はゾーンの全情報が漏れるので、FW や DNS の設定でセカンダリの IP アドレスだけに許可します(平成28年 午後Ⅰ問3、令和元年 午後Ⅱ問2 設問2)。

4. 社内設計(内部 DNS と外部 DNS の分離)

社内 LAN DMZ インターネット PC 内部 DNS社内ゾーン+キャッシュ(再帰あり) 外部 DNS公開ゾーンだけ(再帰なし) 他社の DNS 他社のキャッシュ 社内サーバ(.lan) 内部 DNS は外へ反復問合せ(FW で 53 を許可) 外から来る問合せは外部 DNS だけが受ける 社内の名前(.lan)は外部 DNS に置かない。外部 DNS は再帰を受け付けない(オープンリゾルバにしない)
図2 社内用のキャッシュ DNS と、公開用の権威 DNS を分ける

企業では DNS サーバを 2 系統に分けます。

なぜ分けるか ①社内のサーバ名やアドレス体系を外部に見せないため。②外部 DNS を再帰可能にすると、誰でも使えるオープンリゾルバとなり、DNS リフレクション攻撃の踏み台やキャッシュポイズニングの的になるため。 同じ名前に社内と社外で別の答えを返す構成をスプリットホライズン(スプリット DNS)と呼びます。

プロキシがあるとき、名前解決は誰がするか

PC がプロキシ経由で Web を見る構成では、PC は「プロキシのアドレス」だけ知っていればよく、宛先 Web サーバの名前解決はプロキシが行います。 だから PC が使う内部 DNS はインターネットの名前を引けなくてもよい一方、プロキシは外部の名前を引ける DNS を向いている必要があります。 この区別は、プロキシを経由しない通信(ローカルブレイクアウトで SaaS だけ拠点から直接出す等)を追加するときに効いてきます。PC 自身が SaaS の名前を解決する必要が生じ、内部 DNS がインターネットの名前を引ける構成でなければなりません。

名前解決のための FW ルール

内部 DNS から外部への UDP/TCP 53 を許可し、逆向き(インターネットから内部 DNS へ)は拒否します。外部 DNS へはインターネットから UDP/TCP 53 を許可します。平成26年 午後Ⅱ問1 設問4(3) のように「DNS の通信を許可するルール」を表で書かせる設問では、 送信元・宛先・プロトコル UDP・宛先ポート 53 の形で答えます。

5. 移行と可用性

サーバを切り替えるときの TTL の扱い

手順(Web サーバを旧 IP から新 IP に切り替える場合)
 1. 切替の数日前に、権威 DNS でその名前の TTL を 86400(1 日)→ 60 などに短くする
    (世界中のキャッシュが古い TTL で覚えているので、旧 TTL が切れるまで待つ)
 2. 切替当日、A レコードの IP を新サーバに書き換える
    → 各キャッシュ DNS は最長 60 秒で新 IP を引くようになる
 3. 旧サーバへのアクセスが無くなったことを確認して旧サーバを停止
 4. TTL を元に戻す

「なぜ TTL を短くしておくのか」はキャッシュ DNS サーバがキャッシュを保持する時間を短くし、切替後すぐに新しいアドレスが使われるようにするためです (令和5年 午後Ⅱ問1 設問1(4)、令和4年 午後Ⅱ問1 設問5(3)、令和6年 午後Ⅱ問2 設問1(2))。 移行前に新サーバを試験したいときは、PC の hosts ファイルに新サーバの名前と IP を書いて DNS より先に解決させます(令和4年 午後Ⅱ問1 設問5(1))。

DNS ラウンドロビンと GSLB

同じ名前に複数の A レコードを置くと、キャッシュ DNS は順番を変えて返すので、クライアントが分散します。これが DNS ラウンドロビンで、機器を増やさずにできる負荷分散です。 欠点はサーバの生死を見ないこと(停止したサーバの IP も返す)と、キャッシュのせいで偏ることです。令和5年 午後Ⅱ問1 設問1(1)(2) は、プロキシサーバをラウンドロビンで分散する構成と「アプリケーションプロセスの停止は検知できない」という欠点を問いました。

ヘルスチェックと連動して生きているサイトの IP だけを返す仕組みが GSLB(広域負荷分散)で、TTL を短く設定して切替を速くします。 CDN は自社の名前を CDN 事業者の名前に CNAME で向け、CDN 側の DNS が利用者に近いエッジの IP を返します。

DNS 自体の冗長化

権威 DNS はプライマリ+セカンダリを別ネットワークに置き、キャッシュ DNS は PC に 2 台を設定します。PC は 1 台目が応答しないときだけ 2 台目を使うので、1 台目の停止はタイムアウト分だけ遅くなります。

6. セキュリティ

攻撃者偽の答えを大量送信 キャッシュ DNSwww.bank.jp は? bank.jp の権威 DNS(本物の答え) 問合せ 本物の応答(少し遅い) 送信元を権威 DNS に偽装 キャッシュ DNS が応答を本物と認める条件=問合せと同じ「宛先ポート番号」と「ID(16 ビット)」 ID だけなら 65,536 通りで総当たり可能 → 送信元ポートもランダムにして組合せを増やす さらに、外部から来る問合せは FW で遮断し、外部 DNS では再帰を受け付けない 偽の応答が先に届くと、TTL の間ずっと社内全員が偽サイトへ誘導される
図3 キャッシュポイズニングと、それを難しくする 3 つの対策

キャッシュポイズニング

キャッシュ DNS が権威に問い合わせている隙に、攻撃者が権威になりすました偽の応答を先に届けると、キャッシュ DNS は偽の IP を TTL の間覚え、社内全員が偽サイトに誘導されます(平成26年 午後Ⅰ問3 設問3(1)「DNS キャッシュが改ざんされる」)。 キャッシュ DNS が応答を受け入れる条件は「問合せと宛先ポート番号と ID が一致すること」なので、ID 16 ビットだけでは総当たりされます。対策は次の 3 つです。

DNS を踏み台にする攻撃

DNS リフレクション(amp)攻撃は、送信元を標的に偽装した問合せをオープンリゾルバに大量に送り、何倍にも大きい応答を標的に浴びせる DDoS です。対策は「外部 DNS で再帰を受け付けない」「送信元偽装パケットを ISP やルータで捨てる(uRPF)」です(平成26年 午後Ⅰ問3、令和元年 午後Ⅱ問2 設問3(1))。

DNS による通信制御

マルウェアは C&C サーバに接続する前に名前解決をします。内部 DNS で既知の悪性ドメインに偽の答え(自社の監視サーバの IP など)を返すと、マルウェアは C&C に到達できず、しかも誰が引いたかがログに残ります(DNS シンクホール)。 令和元年 午後Ⅱ問2 設問6(5)「C&C サーバの IP アドレスが取得できないので宛先が設定できない」がこの効果です。逆に、DNS over HTTPS(DoH)でブラウザが社内 DNS を迂回すると、この制御が効かなくなります。

7. 用語集(午後で出る順)

用語意味午後でのポイント
権威 DNS サーバゾーンの答えを持つサーバNS レコードのサーバ名で答える。コンテンツサーバとも
キャッシュ DNS サーバ再帰問合せを受けて反復問合せし、結果をキャッシュフルサービスリゾルバ。TTL の間古い答えを返す
再帰問合せ / 反復問合せ答えが出るまで調べてくれ / 知っている範囲を教えてPC → キャッシュが再帰、キャッシュ → 権威が反復
TTLキャッシュの保持時間(秒)切替前に短くする。ラウンドロビンや GSLB は短め
ゾーン / ゾーン転送委任された管理範囲 / プライマリ→セカンダリのコピー(TCP 53)転送はセカンダリの IP だけに許可
CNAME別名CDN・SaaS に向ける。先方の IP 変更に追従不要
MX / Preferenceメール受取サーバ / 優先度(小さいほど優先)メール問題の定番
SRVサービスの所在(サーバ名とポート)ケルベロスの KDC 探索
グルーレコード紹介のとき一緒に返す権威サーバの IPADDITIONAL SECTION。FQDN を聞かれたときに IP を書かない
DNS ラウンドロビン複数 A レコードの順番を変えて返す生死を見ない。プロセス停止を検知できない
GSLBヘルスチェック連動で生きているサイトの IP を返す短い TTL とセット
オープンリゾルバ誰からでも再帰を受けるキャッシュ DNSリフレクション攻撃の踏み台。外部 DNS は再帰を止める
キャッシュポイズニング偽応答でキャッシュを汚染ポートランダム化・外部からの問合せ遮断・DNSSEC
DNSSEC応答に署名を付けて検証改ざん検知であって暗号化ではない
DNS シンクホール悪性ドメインに偽の答えを返して遮断・検知C&C の IP が得られず接続できない
EDNS0 / TCP フォールバック512 バイト超の応答を UDP で / TCP に切替IPv6(AAAA)や DNSSEC で応答が大きくなる

8. 午後での問われ方と答え方の型

設問の型答え方出た年度
空欄「□ DNS サーバ」(権威/キャッシュ)自分のゾーンを持つのが権威、PC の代わりに調べるのがキャッシュR5 午後Ⅰ問1
dig の出力から IPv6 アドレスと権威 DNS サーバの FQDNCNAME を追って AAAA を全部、AUTHORITY SECTION の NS 名を全部R7 午後Ⅱ問1
DNS 応答が大きいときのプロトコルTCP(EDNS 非対応で 512 バイト超)R7 午後Ⅱ問1、R6 午後Ⅱ問2
切替前に TTL を短くする理由キャッシュ DNS サーバがキャッシュを保持する時間を短くするためR5 午後Ⅱ問1、R4 午後Ⅱ問1、R6 午後Ⅱ問2
サービス事業者の IP 変更に追従しなくてよい理由自社の DNS には CNAME で事業者の名前を登録しているから(A ではなく)R1 午後Ⅰ問2、H29 午後Ⅱ問1
DNS ラウンドロビンの欠点サーバやアプリケーションプロセスの停止を検知できず、停止先にも振り分けるR5 午後Ⅱ問1
移行前に新サーバを試験する方法PC の hosts ファイルに新サーバの FQDN と IP を記載するR4 午後Ⅱ問1
ゾーン転送の通信名・許可先ゾーン転送。セカンダリ DNS の IP アドレスからだけ許可R1 午後Ⅱ問2、H28 午後Ⅰ問3
キャッシュポイズニングの条件と対策宛先ポート番号と ID の一致。ポートランダム化、外部からの問合せを FW で遮断R1 午後Ⅱ問2、H26 午後Ⅰ問3
C&C 通信を DNS で止める効果C&C サーバの IP アドレスが取得できず宛先を設定できないR1 午後Ⅱ問2
社内 DNS と外部 DNS の使い分け(空欄)社内の名前は社内 DNS、SaaS や外部サービスは外部の DNS(ケルベロス SRV は社内)R4 午後Ⅰ問3
DNS を許可する FW ルール送信元 社内セグメント、宛先 DNS サーバ、UDP、宛先ポート 53H26 午後Ⅱ問1
書き方の型 「TTL を短くする理由」は「キャッシュ DNS サーバが(古い情報を)保持する時間を短くするため」と、キャッシュ DNS を主語にして書く。「切替を速くするため」だけでは足りない。 サーバ名を聞かれたら FQDN を末尾のドットまで(ns1.example.net.)、「全て答えよ」なら本当に全部。IP アドレスとゾーン名は答えにならない。 レコード名(A、CNAME、MX)は設問文の書式(shop IN A 199.α.β.2)に合わせて書く。

9. ミニ確認問題

クリックで答えが開きます。

Q1 権威 DNS サーバとキャッシュ DNS サーバの違いを一言で権威は自分のゾーンの答えを持ち、他人のためには調べない。キャッシュは PC の再帰問合せを受けてルートから反復問合せし、結果を TTL の間覚える。
Q2 再帰問合せと反復問合せはどの区間で使われるか再帰は PC(スタブリゾルバ)→ キャッシュ DNS。反復はキャッシュ DNS → ルート・TLD・権威の各サーバ。
Q3 Web サーバの IP を変える 3 日前にやることと理由権威 DNS でその名前の TTL を短くする。世界中のキャッシュ DNS がキャッシュを保持する時間を短くし、切替後すぐに新 IP が使われるようにするため。
Q4 CDN や SaaS に向けるとき A ではなく CNAME を使う利点事業者側の IP アドレスが変わっても自社の DNS を変更しなくてよい。
Q5 DNS ラウンドロビンの欠点サーバの生死を確認しないので、停止したサーバやプロセスが落ちたサーバの IP も返してしまう。キャッシュのせいで分散が偏ることもある。
Q6 外部(公開)DNS で再帰問合せを止める理由オープンリゾルバになると DNS リフレクション攻撃の踏み台やキャッシュポイズニングの対象になるから。公開 DNS は自ゾーンの権威応答だけでよい。
Q7 キャッシュポイズニングで偽応答が受け入れられる条件と、難しくする方法問合せと宛先ポート番号・ID が一致すること。送信元ポートをランダム化して組合せを増やし、外部からの問合せを遮断し、DNSSEC で署名検証する。
Q8 ゾーン転送の許可先を絞る理由ゾーン転送はゾーンの全レコードを渡すので、誰にでも許すと社内外のサーバ構成が丸ごと漏れるから。セカンダリの IP だけに許可する。
Q9 プロキシ経由の Web アクセスで、Web サーバの名前解決をするのは誰かプロキシサーバ。PC はプロキシのアドレスを知っていればよい。ローカルブレイクアウトで PC が直接出る通信を作ると、PC 側の DNS が外部の名前を引ける必要が出てくる。
Q10 MX レコードの Preference 10 と 20、どちらに先に配送されるか10(値が小さいほど優先)。10 のサーバが応答しないときだけ 20 へ。

10. 実機で見るなら(任意)

Windows の nslookup
  nslookup www.example.jp            既定のキャッシュ DNS に聞く(Non-authoritative answer =キャッシュからの答え)
  nslookup -type=NS example.jp       権威サーバ名
  nslookup -type=MX example.jp       メール受取サーバと Preference
  nslookup www.example.jp ns1.example.jp   権威に直接聞くと Non-authoritative が消える
  ipconfig /displaydns               PC 側のキャッシュと残り TTL
  ipconfig /flushdns                 PC のキャッシュを消す

Linux の dig(令和7年 午後Ⅱ問1 の図はこの出力)
  dig www.example.jp AAAA            ANSWER(CNAME → AAAA)、AUTHORITY(NS)、ADDITIONAL(グルー)の 3 セクションを読む
  dig +trace www.example.jp          ルートから順に反復問合せする様子が見える

用語の振り返り

このページの用語集(16 語)から作った確認問題です。「意味 → 用語」は意味の説明(用語そのものは__で伏せてある)を読んで用語を入力し、Enter で答え合わせします。 表記ゆれで × になったときは「合っていた」で直せます。「用語 → 意味」は口で説明してから答えを開いて自己採点します。結果はこのブラウザに保存され、「×だけ」で間違えた語だけを解き直せます。

← VXLANとEVPNトップ(目次)へメールと送信ドメイン認証 →

作成 2026-10-28。ネットワークスペシャリスト 科目B(午後)対策。出典の年度・設問番号は IPA 公開の解答例で確認したもの(平成26年秋 午後Ⅰ問3・午後Ⅱ問1、平成28年秋 午後Ⅰ問1・問3、平成29年秋 午後Ⅱ問1、令和元年秋 午後Ⅰ問2・午後Ⅱ問2、令和4年春 午後Ⅰ問3・午後Ⅱ問1、令和5年春 午後Ⅰ問1・午後Ⅱ問1、令和6年春 午後Ⅱ問2、令和7年春 午後Ⅱ問1)。 関連: メールと送信ドメイン認証とは、IPv6 とは、ロードバランサーとは。