Bei der Portadressübersetzung (PAT) wird für alle internen privaten IP-Adressen eine einzige öffentliche IP-Adresse verwendet, jeder privaten IP-Adresse wird jedoch ein anderer Port zugewiesen. Diese Art von NAT wird auch als NAT-Überlastung bezeichnet und ist die typische Form von NAT, die in heutigen Netzwerken verwendet wird. Es wird sogar von den meisten Consumer-Routern unterstützt.
Mit PAT können Sie viele Hosts mit nur wenigen öffentlichen IP-Adressen unterstützen. Es erstellt ein dynamisches NAT-Mapping, in dem eine globale (öffentliche) IP-Adresse und eine eindeutige Portnummer ausgewählt werden. Der Router führt für jede eindeutige Kombination aus privater IP-Adresse und Port einen NAT-Tabelleneintrag mit Übersetzung in die globale Adresse und einer eindeutigen Portnummer.
Wir werden das folgende Beispielnetzwerk verwenden, um die Vorteile der Verwendung von PAT zu erläutern:
Wie Sie im Bild oben sehen können, verwendet PAT eindeutige Quellportnummern auf der inneren globalen (öffentlichen) IP-Adresse, um zwischen Übersetzungen zu unterscheiden. Zum Beispiel, wenn der Host mit der IP-Adresse 10.0.0.101 auf den Server S1 im Internet zugreifen möchte, wird die private IP-Adresse des Hosts von R1 in 155.4.12.1:1056 übersetzt und die Anforderung an S1 gesendet. S1 reagiert auf 155.4.12.1:1056. R1 empfängt diese Antwort, sucht in seiner NAT-Übersetzungstabelle nach und leitet die Anforderung an den Host weiter.
Zum Konfigurieren von PAT sind die folgenden Befehle erforderlich:
- konfigurieren Sie die Inside-Schnittstelle des Routers mit dem Befehl ip nat inside.
- Konfigurieren Sie die externe Schnittstelle des Routers mit dem Befehl ip nat outside.
- Konfigurieren Sie eine Zugriffsliste, die eine Liste der internen Quelladressen enthält, die übersetzt werden sollen.
- Aktivieren Sie PAT mit dem Befehl ip nat inside source list ACL_NUMBER interface TYPE overload global configuration.
So würden wir PAT für das obige Netzwerkbild konfigurieren.
Zuerst definieren wir die äußeren und inneren Schnittstellen auf R1:
R1(config)#int Gi0/0 R1(config-if)#ip nat inside R1(config-if)#int Gi0/1 R1(config-if)#ip nat outside
Als nächstes definieren wir eine Zugriffsliste, die alle privaten IP-Adressen enthält, die wir übersetzen möchten:
R1(config-if)#access-list 1 permit 10.0.0.0 0.0.0.255
Die oben definierte Zugriffsliste enthält alle IP-Adressen aus dem Bereich 10.0.0.0 – 10.0.0.255.
Jetzt müssen wir NAT aktivieren und auf die im vorherigen Schritt erstellte ACL und auf die Schnittstelle verweisen, deren IP-Adresse für Übersetzungen verwendet wird:
R1(config)#ip nat inside source list 1 interface Gi0/1 overload
Um die NAT-Übersetzungen zu überprüfen, können wir den Befehl show ip nat translations verwenden, nachdem Hosts eine Webressource von S1 angefordert haben:
R1#show ip nat translations Pro Inside global Inside local Outside local Outside globaltcp 155.4.12.1:1024 10.0.0.100:1025 155.4.12.5:80 155.4.12.5:80tcp 155.4.12.1:1025 10.0.0.101:1025 155.4.12.5:80 155.4.12.5:80tcp 155.4.12.1:1026 10.0.0.102:1025 155.4.12.5:80 155.4.12.5:80