NATおよびUDP応答


20

健全性チェックしてください。

NATの背後にあるマシンAからマシンBのポートNにUDPパケットを送信すると、マシンBはNATの外側(インターネットのどこか)にあり、NATがポートBのマシンBから受信したUDPパケットを渡すことを合理的に期待できますか? NATでの手動ポート転送を必要とせずに、マシンAのポートNを使用しますか?

回答:


21

元の発信データグラムの送信元ポートもポートNであり、NATが送信元ポートをフロートすることを選択しなかった場合のみ。

つまり、マシンAからの最初のUDPデータグラムは、LAN上では次のようになります。

       Source IP: MachineAPrivate  
     Source Port: PortA     <-- note this is typically different than the destination port  
  Destination IP: MachineBPublic  
Destination Port: PortN  

次に、NATによって発信方向に変換された後、次のようになります。

       Source IP: NATPublic  
     Source Port: PortC   <-- note this may or may not be the same as "PortA" above  
  Destination IP: MachineBPublic  
Destination Port: PortN  

現在、マシンBが応答すると、応答は通常次のようになります。

       Source IP: MachineBPublic  
     Source Port: PortN  
  Destination IP: NATPublic  
Destination Port: PortC  

次に、着信NAT変換プロセスを経た後:

       Source IP: MachineBPublic  
     Source Port: PortN  
  Destination IP: MachineAPrivate  
Destination Port: PortA  

だから、IFマシンAは、宛先ポート(「ポートN」)と同じソースポートからフレームを送信し、IF NATは、その送信元ポートを維持することが可能である(すなわち、可能な場合は送信元ポートを維持するように設定され、その送信元ポート)使用されていない、THENあなたはマシンAに戻って取得するために「ポートN」への返信を期待することができます

NAT UDPの適切な動作に関する正式なリファレンスは次のとおりです
。RFC4787 / BCP 127:ユニキャストUDPのネットワークアドレス変換(NAT)の動作要件


3

閉じますが、マシンBは実際に受信する送信元アドレスとポート番号を調べる必要があります。これはNとは異なる場合があります。

マシンAのNATは、マシンAが送信したのと同じポートNを使用しない場合があります。(同じNATの背後にあるマシンCもポートNで送信していることを想像してください。両方が使用することはできません。)したがって、マシンBは異なる送信元ポートMを見ることがあります。ポートMを使用すると、マシンBで自動的にNにマップされます。

つまり、マシンBが受信したパケットで指定されたソースアドレスとソースポートに送り返す限り、戻りパケットが元のソースに戻る方法を合理的に期待できます。これは、自動NATルールが数分後にタイムアウトする傾向があるため、戻りパケットが短時間で送信されることを前提としています。


-1

私はそれを期待していません。

NATの背後で複数のIPを使用できるため、転送先を選択する必要があります。NATの外側ではルーターIPのみが表示され、内部NAT IPは表示されません。

UDPは接続を形成しませんが、ネットワーク上を移動する単なるデータグラムです。

送信ポートと受信ポート番号にも違いがあります。


あなたは、UDPが実際にNATを一意にNATの背後にあるIPはにパケットを送信するためにどの特定することができないが、送信元と宛先のポートが一緒にペア「フォーム接続」しないことが正しい
portforwardpodcast
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.