要約

  • 到達可能性、同意、セキュリティ、およびフォールバックは、STUNの観測範囲を超えた周辺の使用責任のままです。
  • STUNはサーバー反射トランスポートアドレスを報告します。これはサーバーの視点からの観測であり、普遍的な到達可能性や永続的なIDを保証するものではありません。
  • 現代のSTUN(RFC 5389、RFC 8489)はモジュラーツールとして機能し、ICE(RFC 8445)のような上位プロトコルが候補交換やピアツーピア接続チェックに用いる証拠を提供します。
  • 初期のSTUN(RFC 3489)は、包括的なNAT分類とアドレスの再利用を目指しましたが、複雑さと信頼性の欠如からその野心は後に縮小されました。

一回の観測が示すもの

出発点は「外からどう見えたか」という一回のパケット観測であり、到達性の約束ではありません。ネットワークアドレス変換器 (NAT) の背後で動作するクライアントアプリケーションは、Session Traversal Utilities for NAT (STUN) Bindingリクエストを開始します。このリクエストは、クライアントがローカルで認識している特定のIPアドレスとポートから送信されます。パケットがNATを通過する際、NATデバイスは送信元IPアドレスとポートを書き換え、それを外部向けのトランスポートアドレスに変換します。このリクエストがSTUNサーバーに到達すると、サーバーはパケットを受信した送信元トランスポートアドレスを記録します。その後、STUNサーバーはBinding応答を構築し、この観測された送信元トランスポートアドレスを XOR-MAPPED-ADDRESS 属性内に埋め込み、クライアントに返送します ^1^。この返されたアドレスは、STUNサーバーの視点から、その特定の瞬間、特定のトランザクションに対して行われた特定の観測です。

現行仕様と確認手順

現在のSTUN標準である [^4^ RFC 8489] は、このより狭く、より焦点を絞ったツールと使用の境界を維持しています。サーバー反射トランスポートアドレスを発見するためのコアメカニズムを定義し、診断目的のための ERROR-CODE などの他の属性を指定しています。重要なことに、RFC 8489は、上位レベルのプロトコルとアプリケーションがこの観測を解釈し、利用する責任を負うことを明確にしています。それらは、タイミング、様々な属性の処理、STUNサーバーの選択、およびトランスポートプロトコルの選択に関する決定を所有します。

ICE はこの境界を手順に変え、[^5^ RFC 8445] に従って観測されたアドレスを到達性の証明ではなく候補として扱います。 ICEは、ピアツーピア到達可能性の証拠として、単一のSTUNで観測されたアドレスを盲目的に信頼することはありません。 代わりに、ICEはサーバー反射アドレスを、ホスト候補やリレー候補(TURNを介して取得)と並んで、「候補」の一種として扱います。 そしてICEは、ピアとの間で複数の候補ペアを交換し、これらのペア間で明示的なピアツーピア接続性チェックを実行するという洗練されたプロセスに従事します。 この体系的なチェックにより、単一の観測から推測するのではなく、実際の到達可能性が確立されます。 異なる宛先、様々なプロトコル、NATデバイスの状態、進化するファイアウォールルール、または代替のネットワークパスはすべて、特定の観測されたアドレスが実際にピアによって使用可能であるかどうかに独立して影響を与える可能性があります。 STUNの1つの応答だけでは、マッピングの有効期間、あらゆる可能な宛先に対するその動作、特定のファイアウォールポリシー、またはリモートピアが通信に同意したかどうかは明らかになりません。 STUN内の認証および完全性メカニズムは定義された交換を保護しますが、マッピングされたタプルを普遍的な許可またはすべての潜在的なピアに対する到達可能性の保証に変えることはありません。

したがって、周囲の用途は、候補の交換、接続性チェックの実行、同意の管理、鮮度確保、最適なパスの選択、再送信の処理、フォールバック戦略の実装、およびTURNサーバーを介したリレー動作に頼るかどうかの決定に対する責任を明示的に負います。

なぜ構想が変わったのか

歴史的に、[^2^ RFC 3489] で最初に文書化されたSTUNは、より野心的なビジョンを抱いていました。このサーバー反射アドレスを明らかにするだけでなく、フルコーン、制限コーン、ポート制限コーンなどのNATデバイスのタイプを分類し、ピアツーピア接続トラバーサルのための完全なソリューションを提供しようとしました。根本的な仮定は、NATタイプを理解し、外部マッピングを観測することで、クライアントが他のピアからどのようにアドレスが見られるかを信頼性高く予測し、直接接続を容易にできるというものでした。このアプローチは、単一の観測を到達可能性の普遍的な宣言に変えることを目指しました。

しかし、実際の展開と運用経験により、重大な限界が明らかになりました。現実世界のNAT実装、ファイアウォール、ネットワークトポロジーの複雑さと多様性により、NAT分類はしばしば信頼できないか、誤解を招くものでした。STUNを介して学習されたアドレスは、一部のピアには使用できても、他のピアには使用できない場合があり、またそのマッピングの有効期間も予測できない可能性がありました。RFC 3489の単独トラバーサルソリューションとしての壮大なビジョンは不十分であることが判明しました。この重要な再評価は [^3^ RFC 5389] につながり、従来のRFC 3489の完全なソリューションの野心がなぜ放棄されたのか、その理由が明確に文書化されました。これによりSTUNの役割が再編され、包括的なトラバーサルメカニズムから、上位レベルの用途に採用される基本的なツールへと再配置されました。STUNサーバーによって観測されたアドレスは貴重な証拠ですが、永続的な公開IDでも、任意のピアが同じマッピングを通信に使用できるという保証でもありません。