
Angenommen, ich habe einen Client und einen Server. Der Client befindet sich hinter NAT und der Server ist öffentlich.
Der Kunde möchte eineSitzungmit dem Server.
Nehmen wir an, der Client befindet sich auf 192.168.1.1, NAT auf den privaten IP-Adressen 192.168.1.2. Und NAT auf 50.0.0.1 und der Server auf den öffentlichen IP-Adressen 50.0.0.2.
Der Client sendet das UDP/IP-Paket (hoffentlich ist es ähnlich wie TCP/IP) an den Server. Dieses Paket hat die Quell-IP 192.168.1.1 und den Quellport, sagen wir 1000 (zufällig ausgewählt), sowie den Zielport 50.0.0.2 und den Zielport 2000, da dies der Port ist, auf dem die Anwendung auf dem Server läuft.
Das TCP/IP-Paket kommt bei NAT an, das die Quell-IP in 50.0.0.1 und den Port, sagen wir, 5000 (zufällig ausgewählt) ändert und an den Server weiterleitet.
Der Server sendet das Antwortpaket mit Ziel-IP 50.0.0.1 und Port 5000.
Das NAT ändert die Ziel-IP des Pakets auf 192.168.1.1 und den Zielport auf 1000.
Kann der Server nun viele UDP/IP-Pakete an dieselbe IP 50.0.0.1 und denselben Port 5000 senden und werden alle Pakete an den Client 192.168.1.1, Port 1000 weitergeleitet?
Wenn ja, wie lange leitet dieser Port 5000 auf der öffentlichen Seite von NAT die Pakete an den genannten Client weiter?
Nur die Paketemit der Quell-IP 50.0.0.2 und dem Quell-Port 2000wird an den Kunden weitergeleitet?
Antwort1
Antworten:
- Ja.
- Dies hängt von der NAT-Implementierung für das Gerät ab. Unter Linux kann dies angepasst werden durchBearbeiten von /proc/sys/net/ipv4/netfilter/ip_conntrack_udp_*
- Ja – es sei denn, es gibt „verwandte“ Ports, die von NAT erkannt werden. In diesem Fall werden zusätzliche NAT-Module verwendet, um herauszufinden, was verwandt ist (zumindest unter Linux).