Port Address Translation

Netzwerktechnologie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. März 2016 um 16:42 Uhr durch 212.41.220.127 (Diskussion) (Ausgehende Pakete (LAN → WAN)). Sie kann sich erheblich von der aktuellen Version unterscheiden.

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 eingesetzt, wenn mehrere private IP-Adressen aus einem LAN zu einer öffentlichen IP-Adresse übersetzt werden sollen.

Beispiel

Angenommen für das lokale Netz 192.168.0.0/24 steht die öffentliche IP-Adresse 205.0.0.2 zur Verfügung.

Ausgehende Pakete (LAN → WAN)

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:5000 170.0.0.1:80 205.0.0.2:6000 170.0.0.1:80
192.168.0.3:5001 170.0.0.1:80 205.0.0.2:6001 170.0.0.1:80
192.168.0.5:5002 170.0.0.1:80 205.0.0.2:6002 170.0.0.1:80

Die Quell-IP-Adressen werden durch die (einzige) öffentliche IP-Adresse ersetzt. Die internen Port-Nummern werden durch eindeutige öffentliche Port-Nummern ersetzt. Mittels einer Tabelle merkt sich der Router jeweils die interne Quell-IP-Adresse samt Port-Nummer und die öffentliche Port-Nummer des ausgehenden Pakets:

  • 192.168.0.2:5000 ⇔ 6000
  • 192.168.0.3:5001 ⇔ 6001
  • 192.168.0.5:5002 ⇔ 6002

Wie im Beispiel ersichtlich, funktioniert dies auch, wenn mehrere Geräte gleichzeitig dieselbe IP mit demselben Port aufrufen. Zwar haben die Datenpakete alle die gleiche Ziel-IP und den gleichen Ziel-Port, jedoch werden die Antworten an die Quell-IP gesendet, mit jeweils unterschiedlichen Ports. Das aufrufende Gerät (Router oder ähnliches) kann nämlich eine HTTP Anfrage über den Port 80 stellen, dabei aber selbst als eigenen Port den Port 6001 angeben. Die Antwort vom HTTP-Server erfolgt dann an den Router auf dem Port 6001 und dieser übersetzt zurück auf die passende IP und den Port des aufrufenden Geräts.

Eingehende Pakete (LAN ← WAN)

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:5000 170.0.0.1:80 205.0.0.2:6000
170.0.0.1:80 192.168.0.3:5001 170.0.0.1:80 205.0.0.2:6001
170.0.0.1:80 192.168.0.5:5002 170.0.0.1:80 205.0.0.2:6002

Bei eingehenden Paketen kann anhand der Port-Nummer der Ziel-IP und des Tabelleneintrags (connection tracking) festgestellt werden, welcher 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 auch