STUNが対称NATで機能しないのはなぜですか?


7

私はウィキペディアからこの行を読みました。

" STUNは3種類のNATで機能します:フルコーンNAT、制限付きコーンNAT、ポート制限付きコーンNAT。制限付きコーンまたはポート制限付きコーンNATの場合、クライアントはNATが実行する前にエンドポイントにパケットを送信する必要がありますエンドポイントからクライアントへのパケットを許可します。STUNは対称NATでは機能しません "

なぜ誰かが説明できますか?

回答:


6

STUN(外部サーバー)のため、NATデバイスによってクライアントに与えられるポートを知ることができません。対称NATでは、クライアントは接続ごとに一意のポート(プールの状況ではip:port)を取得します


13

アドレスにSTUNサーバーとアドレスにstun_addrサーバーがあるとしますsrv_addr。STUNを使用すると、通常は次のようになります。

  1. クライアントは、stun_addrNATデバイスを介してSTUNサーバーに接続します。NATデバイスは送信元アドレスを次のように変換しますnatted_addr_1
  2. STUNサーバーは、接続を受信したアドレスをクライアントに通知します。 natted_addr_1
  3. クライアントは、srv_addrNATデバイスを介してサーバーに接続しnatted_addr_1、クライアントに到達する必要がある場合に使用するように外部システムに通知します
  4. 外部システムは次のものを使用してクライアントに何かを送信します natted_addr_1

これは、NATデバイスnatted_addr_1がSTUNサーバーと他の外部システムの両方の通信に使用する場合にのみ機能します。具体的には、NATデバイスがステップ4で到着したパケットをクライアントに配信する場合にのみ機能します。

対称NATデバイスは、トラフィックの宛先アドレスが異なるため、手順1と3で異なる変換を使用します。ステップ3では、サーバーへのパケットのソースアドレスが他のアドレスに変換されますnatted_addr_2

NATデバイスは、送信元アドレスと宛先アドレスのこれらの組み合わせについてのみ認識しており、これらを戻すことのみを許可します。

  • からstun_addrnatted_addr_1
  • からsrv_addrnatted_addr_2

残念ながら、サーバーは使用するように指示されてnatted_addr_1いますが、srv_addr宛先がからのパケットnatted_addr_1は、NATアドレス:ポートの制限があるため、NATデバイスによって拒否されます。

より正確に言うと、NATデバイスはIPアドレスとポート番号の組み合わせで動作するため、この回答では「アドレス」を「アドレス/ポート」に置き換える必要があります。


素晴らしい説明。これは、STUNが対称NATで機能しない理由を理解するのに役立ちました。WebRTCの世界では、アドレスまたはポート制限コーンNATでSTUNを介して生成された候補が成功しますか?これらすべてのケースで、UDPホールパンチングが失敗するようです。私の理解は正しいですか?
Ternary 2014年

これは私にとって新しい質問のように思えます。さまざまなNATタイプの用語は混乱を招く可能性があるため、必要に応じて、サイトで新しい質問をすることもできます。
Gerben 2014年

確かに、ここにあなたが行くnetworkengineering.stackexchange.com/questions/12509/...
三項
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.