キャッシュDNSと権威DNSの役割
キャッシュDNS(再帰リゾルバー)は、利用者の代わりに必要な情報を調べ、結果を一定期間保持します。権威DNSは、自分が担当するゾーンの情報を持ち、その情報に基づいて応答します。
同じソフトウェアが両方の機能を持つ場合でも、問題を読むときは役割を分けて考えます。「利用者の代わりに探す」のか、「担当する名前の情報を答える」のかに注目してください。
名前解決の流れを追う
例として www.example.com のIPv4アドレスを調べます。以下は、必要な情報がまだキャッシュにない場合の基本的な流れです。
- 01端末 → 再帰リゾルバー
この名前のAレコードを調べてほしい、と依頼します。
- 02再帰リゾルバー → ルートDNS
.comを担当するDNSサーバーへの案内を受けます。
- 03再帰リゾルバー → .comのDNS
example.comを担当するDNSサーバーへの案内を受けます。
- 04再帰リゾルバー → 権威DNS
www.example.comのAレコードを問い合わせます。
- 05再帰リゾルバー → 端末
得られた結果を返し、TTLに従ってキャッシュします。
端末が毎回すべてのサーバーを順に訪ねるわけではありません。有効なキャッシュがあれば問い合わせを省けます。別名が返る場合などは、追加の問い合わせが必要です。
レコードの種類を目的で覚える
| 種類 | 役割 |
|---|---|
| A / AAAA | IPv4 / IPv6アドレスを示す |
| CNAME | 別名から正規名への対応を示す |
| MX | メール配送先と優先度を示す。数値が小さい方を優先する |
| NS | ゾーンを担当する権威DNSサーバーを示す |
| TXT | テキスト情報を保持する |
例えばサイトの所有権確認で指定された文字列を登録するのはTXTです。Webサイトの接続先を示すAやCNAMEとは役割が異なります。設問では「メールならMX」「委任先ならNS」と用途から見分けましょう。
通信方式とセキュリティを整理する
DNSはUDPとTCPの両方を使います。UDP応答が切り詰められた場合のTCPでの再試行などがあり、TCPはゾーン転送だけに使うものではありません。
DNSリフレクタ攻撃では、送信元を偽装した問い合わせに対する応答が被害者へ送られます。誰からでも再帰問い合わせを受けるオープンリゾルバーを避け、再帰サービスの利用者を制限することが対策の一つです。権威DNSの公開問い合わせとは区別します。
ゾーン転送では、ゾーン内の情報をまとめて扱うため、許可する相手を必要なセカンダリDNSなどに限定します。
DNSSECは署名検証によってデータの出所と完全性を確認します。問い合わせ内容を秘密にする仕組みではありません。「改ざんを検出したい」のか「通信内容を隠したい」のかを分けて考えましょう。
学んだ内容を、問題で使ってみる。
午前Ⅱの関連過去問を5問出題します。同内容の別年度問題は、どちらか1問を選びます。順番はランダムです。
関連する過去問 5問へ →対象の過去問を見る(6件)
- DNSのMXレコード(2022春 問5)
- DNSゾーン転送の制限(2022春 問18)
- DNSリフレクタ対策(2022春 問21)
- DNSSEC(2025春 問20)
- DNSのNSレコード(2019秋 問8)
- DNSリフレクタ対策(2019秋 問21)
参考資料
仕組みの確認に用いた技術仕様です。本文の計算例・図解は当サイトによる説明で、IPAの公式解説ではありません。
- RFC 1034:DNSの基本概念と名前解決
- RFC 1035:DNSレコードとメッセージ
- RFC 3596:AAAAレコード
- RFC 7766:DNSとTCP
- RFC 5358:再帰DNSを使った反射攻撃の対策
- RFC 4033:DNSSECの役割
誤記に気づいた場合は、記事名と該当箇所をお問い合わせフォームからお知らせください。