メインコンテンツまでスキップ

RFC 9298 - HTTP における UDP プロキシ

インターネット技術タスクフォース (IETF) D. Schinazi Request for Comments: 9298 Google LLC カテゴリー: Standards Track 2022 年 8 月 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 および本文書の著者として特定された者。 All rights reserved.

本文書には、本文書の発行日に有効な BCP 78 および IETF Trust の IETF 文書に関する法的規定 (https://trustee.ietf.org/license-info) が適用される。これらの文書には、 本文書に関する権利と制限が記載されているため、注意深く確認されたい。 本文書から抽出したコードコンポーネントには、Trust Legal Provisions の セクション 4.e に記載された Revised BSD License の本文を含めなければ ならず、Revised BSD License に記載されているとおり無保証で提供される。

目次

  1. はじめに 1.1. 表記法と定義

  2. クライアント設定

  3. 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 レスポンス

  4. コンテキスト識別子

  5. HTTP データグラムペイロード形式

  6. 性能に関する考慮事項 6.1. MTU に関する考慮事項 6.2. ECN マークのトンネリング

  7. セキュリティに関する考慮事項

  8. IANA に関する考慮事項 8.1. HTTP アップグレードトークン 8.2. Well-Known URI

  9. 参考文献 9.1. 引用文献 9.2. 参考引用文献 謝辞 著者のアドレス

  10. はじめに

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 など)、本文書における「ストリーム」への言及は、接続全体を表す。