style_prompt
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
令和5年度 ネットワークスペシャリスト試験 午前Ⅱ 問11 EDNS0
DNSメッセージサイズの拡張仕様であるEDNS0の役割と、UDPパケットの断片化(フラグメンテーション)に伴うセキュリティ上の課題を問う問題。
【問題】 DNSの拡張仕様(EDNS0)を利用する際に留意すべき点はどれか。
ア DNSメッセージを伝送するUDPパケットがネットワーク内でフラグメンテーション(IPパケットの分割)されることがある。 イ IPv4では利用できないので,IPv4からIPv6への移行期間中は,DNS問い合わせをIPv4とIPv6の両方で行う必要がある。 ウ 共通鍵暗号方式によるメッセージ認証を併用する必要がある。 エ 信頼性を向上させるために,トランスポート層のプロトコルとしてTCPを使用しなければならない。
【解説】
EDNS0(Extension Mechanisms for DNS 0)は、従来のDNSプロトコル(RFC 1035)で規定されていた「UDPパケットは512バイトまで」という制限を拡張する仕様です。
背景と必要性 DNSSEC(DNS Security Extensions)の導入により、デジタル署名を含む応答メッセージが512バイトを超えるケースが増加しました。これに対応するため、EDNS0によって最大65,535バイトまでの受信可能サイズを通知できるようになりました。
フラグメンテーションの発生 UDPで512バイト(イーサネットのMTUは約1,500バイト)を超える大きなパケットを送信すると、経路上でIPフラグメンテーションが発生する可能性が高まります。 $$ \text{UDP Payload} > \text{MTU} – \text{IP/UDP Headers} \Rightarrow \text{Fragmentation} $$
セキュリティ上のリスク 分割されたパケット(第2フラグメント以降)にはUDPヘッダーが含まれないため、ファイアウォールによるポート番号での制御を回避されたり、キャッシュポイズニング攻撃に悪用されたりするリスクが生じます。
graph TD
A["DNS Client"] -->|"EDNS0('Size: 4096')"| B["DNS Server"]
B -->|"Large Response (>MTU)"| C{"Network/Router"}
C -->|"Fragment 1"| A
C -->|"Fragment 2"| A
style C fill:#f96,stroke:#333【選択肢の吟味】
| 選択肢 | 判定 | 解説 |
|---|---|---|
| ア | 正解 | EDNS0により大きなUDPパケットが生成されるため、MTU制限を超えるとフラグメンテーションが発生する。 |
| イ | 誤り | EDNS0はIPv4とIPv6の両方で利用可能な拡張仕様であり、IPバージョンに依存しない。 |
| ウ | 誤り | 共通鍵暗号(TSIGなど)は認証のための別仕様であり、EDNS0の利用に必須ではない。 |
| エ | 誤り | EDNS0はUDP通信の拡張を目的とした仕様である。TCPへの切り替えは「TCビット(切り詰め)」による別動作。 |
【ポイント】
EDNS0の目的:UDPパケットの512バイト制限を緩和し、DNSSEC等の大きなデータを扱う。
フラグメンテーション:UDPサイズ拡大により発生し、FWの通過拒否や攻撃の起点となる。
DNSSECとの関係:DNSSEC運用時には、大きな応答を支えるEDNS0のサポートが事実上必須。

