UDPポート完全ガイド:基本概念・ポート範囲・NAT・セキュリティ・実務対策
UDPポートとは — 概要
UDPポートとは、UDP(User Datagram Protocol)を使う通信において、送受信するアプリケーションを識別するための番号(16ビット整数)です。IPアドレスが「どのホストと通信するか」を示すのに対し、ポート番号は「そのホスト上のどのプログラム(プロセス/ソケット)にデータを渡すか」を指定します。UDPはコネクションレスで軽量なトランスポート層プロトコルであり、ポートを使って複数のアプリケーションが同じIPアドレス上で並行して通信できます。
UDPの基本的な仕組み
UDPヘッダは8バイトで、フィールドは「送信元ポート(16ビット)」「宛先ポート(16ビット)」「長さ(16ビット)」「チェックサム(16ビット)」です。
UDPはコネクション確立(3ウェイハンドシェイク)を行わず、信頼性(再送、順序保証、フロー制御)も提供しません。アプリケーション側が必要に応じて再送や順序制御を実装します。
UDPはIPパケットにカプセル化されて送信され、IPのフラグメンテーションに依存します。UDPの長さフィールドはUDPヘッダを含む合計バイト数を示し、16ビットなので理論上の最大長は65535バイト(IPヘッダ分を引くと実際のUDPペイロードは最大65507バイト)です。
チェックサムはIPv4ではオプション(0で無チェックサムを示す)ですが、IPv6では必須で非ゼロでなければなりません。
ポート番号の範囲と分類
ポート番号は0〜65535の範囲(16ビット)。IANAでは用途によって次のように分類しています:
・ウェルノウンポート(0–1023): システムや広く知られたサービス(例: DNS 53)。
・登録ポート(1024–49151): アプリケーションベンダにより登録されるポート。
・動的/プライベートポート(49152–65535): クライアントのエフェメラル(短命)ポート等で使われることが多い。なお、実際のOSが採用するエフェメラルポート範囲は環境により異なり(例: 32768–61000 等)、IANA推奨と異なる場合があります(RFC 6056、RFC 6335参照)。
ポート0は特別扱いされることがあり、アプリケーションが動的にポートを割り当てるよう要求する際に用いられることがありますが、通常は使用されません(IANAによる予約事項あり)。
UDPポートとアプリケーションの例
DNS: UDP 53(通常クエリはUDP、ゾーン転送はTCPを使うことがある)
DHCP: クライアント→サーバはUDP 68→67(サーバ:67、クライアント:68)
TFTP: UDP 69(小さなファイル転送に使われる)
SNMP: UDP 161/162(監視や管理)
Syslog(古典): UDP 514(現代ではTCPやTLS化も利用)
RTP(リアルタイムメディア): 動的ポート範囲を使用することが多い(SIPはシグナリング、RTPはメディア)
QUIC: UDP 443(HTTP/3で使われる、従来のTCPに代わるUDP上のトランスポート)
UDPポートの役割(多重化・識別)
通信の識別は、5タプル(送信元IP、送信元ポート、宛先IP、宛先ポート、プロトコル(UDP))で行われます。サーバは特定の宛先ポートをlisten(バインド)して、到着したパケットの送信元ポートとアドレスで応答先を決めます。これにより、単一のIPアドレス上で複数のアプリケーションが同時に動作できます。
NATとUDP — 実務での注意点
NAT(特にPAT/オーバーロードNAT)環境では、内部の(プライベートIP, エフェメラルポート)を外部のグローバルIP/ポートにマッピングします。UDPはコネクションレスのため、NATデバイスは「疑似コネクション」を作り、一定時間でマッピングを破棄します(タイムアウト)。
多くのNATはUDPのマッピングを短時間(数十秒〜数分)で切るため、VoIPやゲームなど常時双方向パケットを必要とするアプリケーションは保持の工夫(定期的なキープアライブ)やSTUN/TURN/ICE等のNATトラバーサル技術を使います。
UDPホールパンチ(peer-to-peer接続確立)はNATの振る舞いに依存するため成功率は環境次第で、STUN(RFC 5389)やTURNを補助的に使うのが一般的です。
セキュリティとUDPポート
UDPは状態を保持しないため、IPスプーフィングを使ったDDoS(増幅)攻撃の媒介になりやすい。典型的な例はDNS、NTP、CLDAP、SSDPなどのUDPベースサービスを利用した「アンプ(増幅)攻撃」で、偽装した送信元IPに大量のレスポンスを送りつける手法です。
ファイアウォール側ではUDPトラフィックを許可する際、送信元/宛先の両方を慎重に絞ること、不要なUDPサービスを停止することが重要です。ステートフルファイアウォールは疑似セッションを追跡し一定時間でエントリを破棄しますが、UDPの性質上TCPより扱いが難しい点があります。
UDPのポートスキャンはTCPと異なり応答が無い(ドアが閉まっていることが検出されにくい)ため、スキャン結果の解釈が難しい。ICMP「到達不能(Port Unreachable)」メッセージが返されるかどうかで判定する手法が一般的ですが、ICMPが遮断されていると更に困難になります。
運用上の実践的ポイント
ルート権限とウェルノウンポート: UNIX系ではポート番号<1024をバインドするには特権(root)が必要なことが多い。セキュリティ上の懸念から、低権限プロセスには高いポートを使わせる構成も検討されます。
ログと監視: UDPは「届いたパケット」を可視化するしかなく、接続開始・終了の概念がない。監視は到達性・レイテンシ・パケットロスやアプリケーションレベルのヘルスチェックを組み合わせる必要があります。
ポート番号の管理: サーバで複数サービスを公開する場合は、IANAの登録状況を確認し(競合を避ける)、ドキュメント化して運用管理することが推奨されます(RFC 6335等参照)。
UDPを選ぶ理由・使われるケース
UDPは低レイテンシを重視する用途(VoIP、リアルタイムゲーム、ライブストリーミング、DNSクエリなど)で好まれます。理由はオーバーヘッドが小さく、遅延制御や再送のために往復の遅延を許容できないケースでは、アプリケーション側で欠損データを補完するデザインを採ることが多いからです。近年はQUICのようにUDP上で信頼性や暗号化を実装することで、TCPの弱点を回避しつつTCP的な機能を提供する設計も普及しています。
まとめ
UDPポートは、UDPを用いた通信でアプリケーション間のデータ受け渡しを実現するための重要な識別子です。コネクションレスかつ軽量な特性のためリアルタイム性が要求される分野で多用されますが、信頼性や順序保証がない点、NATやファイアウォールとの相互作用、DDoS増幅などセキュリティ上の注意点もあります。導入・運用時はIANAの割り当てやOSのエフェメラルポート設定、NATトラバーサル対策、ファイアウォールポリシーを含めた設計が必要です。
参考文献
- RFC 768 - User Datagram Protocol
- RFC 791 - Internet Protocol (IPv4)
- RFC 8200 - Internet Protocol, Version 6 (IPv6) Specification
- IANA — Service Name and Transport Protocol Port Number Registry
- RFC 6335 - IANA Procedures for the Management of the Service Name and Transport Protocol Port Number Registry
- RFC 6056 - Recommendations for Transport-Protocol Port Randomization
- RFC 5389 - STUN: Session Traversal Utilities for NAT
- Cloudflare — What is amplification attack? (UDP-based DDoS 解説)
- RFC 9000 - QUIC: A UDP-Based Multiplexed and Secure Transport


