【ネットワーク】2つの顔を持つ重要プロトコル!「DNSとトランスポート層」|情報処理問題1000本ノック
インターネットの住所録である「DNS」。基本的には高速なUDPを使うイメージが強いですが、実はデータの重要度やサイズに応じて、信頼性の高いTCPを使い分けるハイブリッドな設計になっています。この通信プロトコルの使い分けを攻略しましょう。
1. 【 問題 】:ネットワークプロトコル(DNSの通信方式)
【 問題 】 ドメイン名とIPアドレスを変換するシステムであるDNS(Domain Name System)が使用するトランスポート層のプロトコル(UDP / TCP)の使い分けに関する記述として、最も適切なものはどれでしょうか?
① DNSサーバー間のドメイン情報の同期(ゾーン転送)には高速性が求められるため、コネクションレス型のUDPが使われ、一般的なクライアントからの名前解決の問い合わせには確実性が求められるため、TCPが使われる。
② DNSは全ての通信を効率化するため、名前解決とゾーン転送のどちらにおいても、常にUDP(ポート番号53)のみを使用する。
③ クライアントからの一般的な名前解決(問い合わせと応答)には、高速でオーバーヘッドの少ないUDPが使われ、DNSサーバー間で行われるドメイン情報の同期(ゾーン転送)や、応答データが大きく512バイトを超える場合には、信頼性の高いTCPが使われる。
④ クライアントからDNSサーバーへのリクエスト送信時(往路)にはUDPが使われ、DNSサーバーからクライアントへIPアドレスを返却する時(復路)にはTCPが使われる。
2. 正解:
正解: ③ クライアントからの一般的な名前解決(問い合わせと応答)には、高速でオーバーヘッドの少ないUDPが使われ、DNSサーバー間で行われるドメイン情報の同期(ゾーン転送)や、応答データが大きく512バイトを超える場合には、信頼性の高いTCPが使われる。
3. 解説:「スピード重視」と「確実性重視」の使い分け
DNSは、同じポート番号「53番」を使いながら、処理の目的(データの性質)によってUDPとTCPを鮮やかに使い分けています。 私たちが普段Webサイトを見る際に行う「名前解決」は、一瞬で処理を終わらせるために確認手順の少ないUDPを使います。一方で、サーバー同士が持つ大切なドメインの設定情報を丸ごと同期する「ゾーン転送」は、データの欠落が許されないため、接続を確立して確実に送るTCPを使います。
| DNSの処理内容 | 使用プロトコル | ポート番号 | そのプロトコルを選ぶ理由 |
|---|---|---|---|
| 名前解決(通常の問い合わせ) | UDP | 53 | データ量が小さく(基本512B以下)、何より「高速性・軽さ」が最優先されるため。 |
| ゾーン転送(ドメイン情報の同期) | TCP | 53 | データ量が大きく、情報の「信頼性・確実性(エラーチェック)」が必須であるため。 |
| サイズ超過(DNSメッセージの肥大化) | TCPへ切り替え | 53 | UDPの限界(512バイト)を超える巨大な応答情報を、分割して確実に届けるため。 |
1. 理解のコツ: 「荷物の配送」に例えてみましょう。
・通常の名前解決(UDP)は、「ハガキ(1通)でのやり取り」です。「www.example.com のIPアドレスを教えて!」という短い質問と、「xxx.xxx.xxx.xxx ですよ」という短い返事だけなので、ポストにポイと投函して、すぐに届くスピード感が大切です。万が一途中で紛失しても、もう一度ハガキを送り直せばいい(再リクエストすればいい)という割り切った仕組みです。
・これに対してゾーン転送(TCP)は、「重要書類の入ったダンボール箱(大量)の引っ越し」です。ドメイン内の全ての住所録データを丸ごと移動させるため、途中で1ページでも紛失したらインターネットの通信が麻痺してしまいます。そのため、事前に「これから送ります」「届きましたか?」とお互いに電話で確認を取り合いながら、サインをもらって確実に届ける書留便(TCP)を使います。
2. 試験対策の視点: 午前試験のネットワーク分野では、「DNSが用いるプロトコルに関する正しい記述はどれか」という形式で頻出です。選択肢①のように、**「UDPとTCPの役割をあべこべ(逆)にした引っかけ」**が非常に多く作られます。「名前解決=UDP(軽い・早い)」「ゾーン転送=TCP(重い・確実)」というペアを脳内で絶対にブレないように固定しておきましょう。また、近年のセキュリティ対策(DNSSECなど)によって暗号署名データが乗り、名前解決のデータサイズが512バイトを超えてTCPに切り替わる現象(DNSフォールバック)も合わせて午後試験などで突っ込まれやすいため、応用情報や支援士を受ける方はセットで押さえておくと完璧です。
4. まとめ
「一般的な名前解決には高速なUDPを使い、DNSサーバー間の重要なドメイン情報の同期(ゾーン転送)や、512バイトを超える大きなデータを送る際には確実なTCPを使用する」。これがDNSとプロトコルの関係です。同じ53番ポートでありながら、裏側では賢くプロトコルを切り替えているというネットワークの仕組みを、しっかり記憶に刻んでおきましょう!