RFC 9298 - HTTP における UDP プロキシ
Internet Engineering Task Force (IETF) D. Schinazi Request for Comments: 9298 Google LLC Category: Standards Track August 2022 ISSN: 2070-1721
HTTP における UDP プロキシ
要旨
本文書は、HTTP CONNECT メソッドが HTTP で TCP をプロキシできるようにするのと同様に、HTTP で UDP をプロキシする方法について説明する。より具体的には、本文書は、HTTP クライアントがプロキシとして機能する HTTP サーバーを介して UDP 通信用のトンネルを作成できるようにするプロトコルを定義する。
本メモの位置付け
本文書は、インターネット標準化過程 (Internet Standards Track) の文書である。
本文書は、Internet Engineering Task Force (IETF) の成果物である。これは IETF コミュニティのコンセンサスを表している。これは公開レビューを受けており、Internet Engineering Steering Group (IESG) による公開が承認されている。インターネット標準の詳細については、RFC 7841 のセクション 2 を参照のこと。
本文書の現在のステータス、正誤表、およびフィードバックの提供方法に関する情報は、https://www.rfc-editor.org/info/rfc9298 で入手できる。
著作権表示
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.
目次
-
はじめに 1.1. 表記法と定義
-
クライアント設定
-
HTTP 経由の UDP トンネリング 3.1. UDP プロキシ処理 3.2. HTTP/1.1 リクエスト 3.3. HTTP/1.1 レスポンス 3.4. HTTP/2 および HTTP/3 リクエスト 3.5. HTTP/2 および HTTP/3 レスポンス
-
コンテキスト識別子
-
HTTP データグラムペイロード形式
-
性能に関する考慮事項 6.1. MTU に関する考慮事項 6.2. ECN マークのトンネリング
-
セキュリティに関する考慮事項
-
IANA に関する考慮事項 8.1. HTTP アップグレードトークン 8.2. Well-Known URI
-
参考文献 9.1. 引用文献 9.2. 参考引用文献 謝辞 著者のアドレス
-
はじめに
HTTP は、プロキシへの TCP [TCP] トンネルを作成するための CONNECT メソッド([HTTP] のセクション 9.3.6 を参照)を提供するが、本仕様以前には、UDP [UDP] トラフィックに対して同様のことを行うためのメソッドが欠けていた。
本文書は、HTTP 経由で UDP 固有のプロキシとして機能するサーバーに UDP をトンネリングするためのプロトコルについて説明する。UDP トンネルは、エンドツーエンドの仮想接続を作成するために一般的に使用され、その後、QUIC [QUIC] や UDP 上で実行されるその他のプロトコルを使用して保護することができる。HTTP CONNECT メソッドとは異なり、UDP プロキシ自体は、トラフィックの宛先を含む絶対 URL で識別される。クライアントは、セクション 2 で説明するように、URI テンプレート [TEMPLATE] を使用してこれらの URL を生成する。
本プロトコルは、HTTP データグラム [HTTP-DGRAM] を使用することにより、HTTP のすべての既存バージョンをサポートする。HTTP/2 [HTTP/2] または HTTP/3 [HTTP/3] を使用する場合、[EXT-CONNECT2] および [EXT-CONNECT3] で説明されている HTTP Extended CONNECT を使用する。HTTP/1.x [HTTP/1.1] を使用する場合、[HTTP] のセクション 7.8 で定義されている HTTP Upgrade を使用する。
1.1. 表記法と定義
本文書内のキーワード "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", および "OPTIONAL" は、BCP 14 [RFC2119] [RFC8174] に記載されているように解釈されるものとする(ここに示すようにすべて大文字で表示される場合のみ)。
本文書では、「UDP プロキシ」という用語を使用して、クライアントの UDP トンネリングリクエストに応じてターゲットサーバーへの UDP ソケットを開き、このリクエストへのレスポンスを生成する HTTP サーバーを指す。クライアントと UDP プロキシの間に HTTP 中継者([HTTP] のセクション 3.7 で定義)がある場合、本文書ではそれらを「中継者」と呼ぶ。
なお、使用中の HTTP バージョンがストリームの多重化をサポートしていない場合(HTTP/1.1 など)、本文書における「ストリーム」への言及は、接続全体を表す。