In einigen Fällen ist es möglicherweise erforderlich, auf einem Cisco Router sowohl statische als auch dynamische Network Address Translation (NAT)-Befehle zu konfigurieren. In diesem Dokument wird erklärt, wie Sie dies tun können, und es wird ein Beispielszenario dargestellt.
Kenntnisse über grundlegende NAT-Konzepte und -Prozesse sind hilfreich.
Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:
Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.
Weitere Informationen zu Dokumentkonventionen finden Sie in den Cisco Technical Tips Conventions.
Bei dynamischer NAT gibt es in der NAT-Tabelle keine Übersetzungen, bis der Router Datenverkehr empfängt, der übersetzt werden muss. Dynamische Übersetzungen haben einen Timeout, nach dem sie aus der Übersetzungstabelle gelöscht werden.
Bei statischer NAT existieren Übersetzungen in der NAT-Übersetzungstabelle, sobald Sie statische NAT-Befehle konfigurieren. Sie verbleiben in der Übersetzungstabelle, bis Sie die statischen NAT-Befehle löschen.
Das folgende Netzwerkdiagramm ist ein Beispiel:
Diese Befehle werden auf dem oben gezeigten NAT-Router konfiguriert:
NAT-Router |
version 12.3
ip nat pool test 172.16.131.2 172.16.131.10 netmask 255.255.255.0
!--- Refer to ip nat pool for more details on the command.
.
ip nat inside source list 7 pool test
!--- Refer to ip nat inside source for more details on the command.
ip nat inside source static 10.10.10.1 172.16.131.1
interface e 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
interface s 0
ip address 172.16.130.2 255.255.255.0
ip nat outside
ip route 192.168.1.0 255.255.255.0 172.16.130.1
access-list 7 permit 10.10.10.0 0.0.0.255 |
Die Konfiguration auf dem OutsideA-Gerät lautet:
Externer Router |
version 12.3
hostname outsideA
!
!
!
interface Serial1/0
ip address 172.16.130.1 255.255.255.0
serial restart-delay 0
clockrate 64000
!
interface FastEthernet2/0
ip address 192.168.1.1 255.255.255.0
speed auto
half-duplex
ip route 172.16.131.0 255.255.255.0 172.16.130.2 |
Die Konfiguration auf dem InsideA-Gerät lautet:
InsideA Router |
version 12.3
!
interface Ethernet1/0
ip address 10.10.10.1 255.255.255.0
half-duplex
!
ip route 0.0.0.0 0.0.0.0 10.10.10.254
!
! |
Mit dem Befehl show ip nat translation können Sie den Inhalt der Übersetzungstabelle anzeigen:
NATrouter#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- 172.16.131.1 10.10.10.1 --- ---
Beachten Sie, dass in der Übersetzungstabelle nur die statische Übersetzung aufgeführt ist. Dieser Eintrag übersetzt die interne globale Adresse zurück in die interne lokale Adresse. Das bedeutet, dass Geräte in der externen Cloud Pakete an die globale Adresse 172.16.131.1 senden und das Gerät in der internen Cloud erreichen können, die die lokale Adresse 10.10.10.1 hat.
Gleiches wird im Folgenden gezeigt:
outsideA#ping 172.16.131.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.131.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/32/32 ms
NATrouter#debug ip nat
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1005]
18:12:06: NAT: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1005]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1006]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1006]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1007]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1007]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1008]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1008]
18:12:06: NAT*: s=172.16.130.1, d=172.16.131.1->10.10.10.1 [1009]
18:12:06: NAT*: s=10.10.10.1->172.16.131.1, d=172.16.130.1 [1009]
Es werden keine weiteren Übersetzungen erstellt oder in die Übersetzungstabelle eingegeben, bis der Router ein Paket an seiner internen Schnittstelle mit einer in der Zugriffskontrollliste (ACL) 7 zulässigen Quelladresse empfängt.
Da jedoch noch keine dynamischen Übersetzungen eingegeben wurden, können externe Geräte keines der internen Geräte (außer 10.10.10.1) erreichen, auch nicht, wenn sie Pakete an eine globale Adresse senden (172.16.131.2 bis 172.16.131.10). Wenn der Router ein Paket empfängt, das für eine dieser globalen Adressen bestimmt ist, prüft er die Übersetzungstabelle auf eine vorhandene Übersetzung. Wenn keine vorhanden ist, wird versucht, das Paket weiterzuleiten. Dieses NAT-Verhalten wird weiter unter Beispielkonfiguration unter Verwendung des Befehls und der Beispielkonfiguration mithilfe des statischen Befehls ip nat außerhalb der Quellliste ip nat erläutert.
Wenn die Kommunikation zwischen internen und externen Netzwerkgeräten in der Topologie nur von internen Geräten ausgeht, funktioniert die dynamische Übersetzung einwandfrei. Was ist jedoch, wenn ein E-Mail-Server im internen Netzwerk hinzugefügt wird, der Pakete von außen empfangen muss? Jetzt müssen Sie einen statischen NAT-Eintrag konfigurieren, damit E-Mail-Server von außen die Kommunikation mit dem E-Mail-Server in der Innenseite auslösen können. Wenn im obigen Beispiel der E-Mail-Server das Gerät mit der lokalen Adresse 10.10.10.1 ist, haben Sie bereits eine statische Übersetzung.
Wenn Sie jedoch nicht über viele globale Adressen verfügen und ein einzelnes Gerät statisch für NAT konfigurieren müssen, können Sie eine Konfiguration wie die folgende verwenden:
NAT-Router |
ip nat inside source list 7 interface serial 0 overload
ip nat inside source static tcp 10.10.10.1 25 172.16.130.2 25
!--- Refer to ip nat inside source for more details on the command.
interface e 0
ip address 10.10.10.254 255.255.255.0
ip nat inside
!--- For more details the ip nat inside|outside command, !--- please refer to ip nat inside .
interface s 0
ip address 172.16.130.2 255.255.255.0
ip nat outside
access-list 7 permit 10.10.10.0 0.0.0.255
ip route 0.0.0.0 0.0.0.0 172.16.130.1 |
Im obigen Beispiel ist NAT so konfiguriert, dass die IP-Adresse von Serial 0 überlastet wird. Das bedeutet, dass mehr als eine interne lokale Adresse dynamisch in dieselbe globale Adresse übersetzt werden kann, in diesem Fall die Adresse, die der Serial 0 zugewiesen ist. Darüber hinaus wird NAT statisch konfiguriert, sodass Pakete, die von der lokalen Adresse 10.10.10.1 mit dem TCP-Port 25 (SMTP) stammen, in den IP-Adresse TCP-Port 25 von Serial 0 umgewandelt werden. Da es sich um einen statischen NAT-Eintrag handelt, können E-Mail-Server von außen SMTP-Pakete (TCP-Port 25) an die globale Adresse 172.16.131.254 senden.
Hinweis: Obwohl es möglich ist, dieselbe globale Adresse sowohl für die dynamische als auch für die statische NAT zu verwenden, sollten möglichst verschiedene globale Adressen verwendet werden.
Die NAT-Übersetzungstabelle enthält den folgenden Eintrag:
NATRouter#show ip nat translations
Pro Inside global Inside local Outside local Outside global
tcp 172.16.130.2:25 10.10.10.1:25 --- ---
Die Debug-Ausgabe ip nat zeigt die NAT-Übersetzung an, wenn das externeA-Gerät auf InsideA zugreift:
04:21:16: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9919]
04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [0]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9922]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9923]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [1]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [2]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [3]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9927]
04:21:16: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [4]
04:21:16: NAT: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [5]
04:21:16: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9931]
04:21:17: NAT*: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9934]
04:21:17: NAT: s=192.168.1.3, d=172.16.130.2->10.10.10.1 [9935]
04:21:17: NAT*: s=10.10.10.1->172.16.130.2, d=192.168.1.3 [6]
Zusammenfassend lässt sich sagen, dass dynamische NAT erfordert, dass Pakete über den NAT-Router gesendet werden, um NAT-Übersetzungen in der Übersetzungstabelle zu generieren. Wenn Sie den Befehl ip nat inside verwenden, müssen diese Pakete von innen stammen. Wenn Sie den Befehl ip nat outside verwenden, müssen diese Pakete von außen stammen.
Bei der statischen NAT müssen keine Pakete über den Router gesendet werden, und die Übersetzungen werden statisch in die Übersetzungstabelle eingegeben.