NAT und UDP antworten

18

Gesundheitskontrolle bitte.

Wenn ich UDP-Pakete von Maschine A hinter einem NAT an Port N von Maschine B sende, wo sich Maschine B außerhalb des NAT befindet (an einer anderen Stelle im Internet), kann ich davon ausgehen, dass NAT von Maschine B empfangene UDP-Pakete an Port N zurücksendet Port N auf Maschine A, ohne dass eine manuelle Portweiterleitung auf dem NAT erforderlich ist?

Tomfanning
quelle

Antworten:

20

Nur wenn der Quellport des ursprünglichen ausgehenden Datagramms auch Port N war und das NAT den Quellport nicht als Float-Port ausgewählt hat.

Das heißt, das erste UDP-Datagramm von Computer A sieht in Ihrem LAN folgendermaßen aus:

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

Nachdem es vom NAT in die ausgehende Richtung übersetzt wurde, sieht es dann so aus:

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

Wenn Maschine B antwortet, sieht die Antwort normalerweise folgendermaßen aus:

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

Dann, nachdem es den eingehenden NAT-Übersetzungsprozess durchlaufen hat:

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

So IF Maschine A den Rahmen aus der gleichen Quelle Port als Ziel - Port ( „Port N“) sendet, und IF die NAT der Lage ist , diese Quelle Port zu erhalten (dh es ist so konfiguriert Quellports zu erhalten , wenn möglich, und das Quellport wird nicht verwendet), DANN können Sie eine Antwort auf "Port N" erwarten, um zu Maschine A zurückzukehren.

Hier ist die maßgebliche Referenz zum ordnungsgemäßen Verhalten von NAT UDP:
RFC 4787 / BCP 127: Verhaltensanforderungen für NAT (Network Address Translation) für Unicast UDP

Spiff
quelle
3

Schließen Sie, aber Computer B muss die Quelladresse und die Portnummer überprüfen, die er tatsächlich empfängt. Diese können sich von N unterscheiden.

Das NAT auf Computer A verwendet möglicherweise nicht denselben Port N wie Computer A. (Stellen Sie sich vor, Maschine C hinter demselben NAT sendet auch auf Port N: Sie können es nicht beide verwenden.) Maschine B sieht also möglicherweise einen anderen Quellport, M. Aber wenn das NAT dies tut, sollte es Datenverkehr akzeptieren, der zurück an gesendet wird Anschluss M und ordnen ihn automatisch wieder N an Maschine B zu.

Mit anderen Worten, solange Maschine B an die Quelladresse und den Quellport zurücksendet, die in dem empfangenen Paket angegeben sind, können Sie davon ausgehen, dass das zurückgesendete Paket seinen Weg zurück zur ursprünglichen Quelle findet. Dies setzt voraus, dass das Rückgabepaket innerhalb kurzer Zeit gesendet wird, da automatische NAT-Regeln nach einer gewissen Anzahl von Minuten zu einem Timeout neigen.

Seth Noble
quelle
-1

Das würde ich nicht erwarten.

Sie können mehrere IPs hinter NAT haben, daher müssen Sie auswählen, an welche IPs weitergeleitet werden soll. Außerhalb von NAT ist nur die Router-IP sichtbar und interne NAT-IPs sind nicht sichtbar.

UDP stellt keine Verbindung her, sondern ist nur ein Datagramm, das über das Netzwerk übertragen wird.

Es gibt auch einen Unterschied zwischen dem sendenden und dem empfangenden Port.

Rumburak
quelle
Sie haben Recht, dass UDP keine Verbindung "herstellt", aber die gepaarten Quell- und
Zielports