Port Address Translation

Port and Address Translation (PAT) oder Network Address Port Translation (NAPT) ist eine Technik, die in Computernetzwerken verwendet wird. Sie ist eine spezielle Form von NAT (1 zu n NAT). Dabei werden im Gegensatz zu NAT nicht nur die IP-Adressen, sondern auch Port-Nummern umgeschrieben. PAT wird benötigt, wenn sich z. B. mehrere Rechner aus einem LAN (mit privaten IP-Adressen) zu einem öffentlichen Webserver (z. B. via HTTP) verbinden und dabei alle Verbindungen zu einer öffentlichen IP-Adresse maskiert (Masquerade) werden müssen. Sollte zufällig von mehreren Rechnern der gleiche Source-Port (aus der Range der dynamischen Ports) gewählt worden sein, käme es zu einem Konflikt bei der Zustellung der Antwortpakete an den richtigen Rechner aus dem LAN. Um dieses Problem zu lösen wird bei Bedarf der Source-Port auf der WAN-Seite um eins erhöht, damit der Webserver seine Antwort eindeutig zurücksenden kann.

BeispielBearbeiten

Angenommen für das lokale Netz 192.168.0.0/24 steht die öffentliche WAN-IP-Adresse 205.0.0.2 zur Verfügung, so könnte folgendes passieren:

Ausgehende Pakete (LAN → WAN)Bearbeiten

lokales Netz (LAN) öffentliches Netz (WAN)
Quell IP:Port Ziel IP:Port Router
===========>
Port Translation
Quell IP:Port Ziel IP:Port
192.168.0.2:50000 170.0.0.1:80 205.0.0.2:50000 170.0.0.1:80
192.168.0.3:50000 170.0.0.1:80 205.0.0.2:50001 170.0.0.1:80
192.168.0.5:50002 170.0.0.1:80 205.0.0.2:50002 170.0.0.1:80

Die LAN-IP-Adressen werden durch die (einzige) öffentliche IP-Adresse ersetzt. Die Quell-Ports der LAN-Rechner werden eindeutig auf die öffentliche WAN-IP mit Quell-Port übersetzt. Mittels einer Tabelle kann der Router die jeweiligen Verbindungen den LAN-Rechnern wieder eindeutig zuordnen:

  • 192.168.0.2:5000050000
  • 192.168.0.3:5000050001
  • 192.168.0.5:5000250002

Wie im Beispiel ersichtlich, wird dies benötigt, wenn mehrere Geräte gleichzeitig dieselbe IP mit demselben Ziel-Port aufrufen. So haben die Datenpakete alle die gleiche Ziel-IP und den gleichen Ziel-Port, jedoch unterschiedliche Quell-Ports, so dass die Antworten des Servers an dieselbe Quell-IP gesendet werden, aber jeweils mit unterschiedlichen Ziel-Ports (dem ursprünglichen Quell-Port).

Eingehende Pakete (LAN ← WAN)Bearbeiten

lokales Netz (LAN) öffentliches Netz (WAN)
Quell IP:Port Ziel IP:Port Router
<===========
Port Translation
Quell IP:Port Ziel IP:Port
170.0.0.1:80 192.168.0.2:50000 170.0.0.1:80 205.0.0.2:50000
170.0.0.1:80 192.168.0.3:50000 170.0.0.1:80 205.0.0.2:50001
170.0.0.1:80 192.168.0.5:50002 170.0.0.1:80 205.0.0.2:50002

Bei eingehenden Paketen kann anhand der Ziel- / Quell-Port-Nummer und der Ziel- / Quell-IP und der Tabelleneinträge (connection tracking) festgestellt werden, welcher lokaler Computer die Pakete angefordert hatte (hier: 192.168.0.2, 192.168.0.3 und 192.168.0.5). Der Router kann dadurch die Ziel-IP durch die ursprüngliche Quell-IP 192.168.0.2, 192.168.0.3 bzw. 192.168.0.5 und die öffentliche Port-Nummer durch die ursprüngliche interne Port-Nummer austauschen.

Da hier jede IP-Adresse zu einer einzigen IP-Adresse übersetzt wird, spricht man von einer N:1-Übersetzung. Werden mehrere IP-Adressen zu weniger IP-Adressen abgebildet, dann handelt es sich um eine N:M-Übersetzung.

Siehe auchBearbeiten

WeblinksBearbeiten