Einleitung
In diesem Dokument wird eine Konfiguration beschrieben, die den Befehl ip nat outside source static verwendet und in der die IP-Pakete aus dem NAT-Prozess generiert werden.
Voraussetzungen
Anforderungen
Cisco empfiehlt, dass Sie über Kenntnisse in diesem Thema verfügen:
Verwendete Komponenten
Die Informationen in diesem Dokument beziehen sich auf Cisco Router, auf denen die Cisco IOS® Software-Version ausgeführt wird.
Die Informationen in diesem Dokument beziehen sich auf Geräte in einer speziell eingerichteten Testumgebung. Alle Geräte, die in diesem Dokument benutzt wurden, begannen mit einer gelöschten (Nichterfüllungs) Konfiguration. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die möglichen Auswirkungen aller Befehle kennen.
Hintergrundinformationen
Dieses Dokument enthält eine Beispielkonfiguration mit dem Befehl ip nat outside source static und eine kurze Beschreibung, was mit dem IP-Paket während des NAT-Prozesses passiert. Betrachten Sie die Netzwerktopologie in diesem Dokument als Beispiel.
Konfigurieren
Netzwerkdiagramm
In diesem Dokument wird die folgende Netzwerkeinrichtung verwendet.
Netzwerkdiagramm
Wenn Sie einen Ping von der Loopback1-Schnittstelle des Routers R1 ausgeben, die für die Loopback0-Schnittstelle des Routers R2 bestimmt ist, geschieht Folgendes:
- Auf der externen Schnittstelle (Gi0/0) des NAT-Routers wird das Ping-Paket mit einer Quelladresse (SA) von 172.16.89.32 und einer Zieladresse (DA) von 172.31.1.1 angezeigt.
- NAT übersetzt die SA in die externe lokale Adresse 172.31.16.5 (entsprechend dem auf dem NAT-Router konfigurierten Befehl ip nat outside source static).
- Anschließend überprüft der NAT-Router seine Routing-Tabelle auf eine Route zu 172.31.1.1.
- Wenn die Route nicht vorhanden ist, verwirft der NAT-Router das Paket. In diesem Fall hat der NAT-Router jedoch eine Route zu 172.31.1.1 über die konfigurierte statische Route zum Subnetz 172.31.1.0/24. Er leitet das Paket an das Ziel weiter.
- Router R2 empfängt das Paket über seine Eingangsschnittstelle (Gi0/0), jetzt mit einem SA von 172.31.16.5 und einem DA von 172.31.1.1.
- R2 sendet daraufhin eine ICMP-Echo-Antwort (Internet Control Message Protocol) an 172.31.16.5 (die NAT-Adresse).
- Wenn R2 keine Route hat, wird das Paket verworfen. In diesem Fall wird jedoch eine Standardroute zum NAT-Router verwendet.
- Daher sendet es ein Antwortpaket an den NAT-Router, mit einem SA von 172.31.1.1 und einem DA von 172.31.16.5.
- Der NAT-Router erkennt das Paket und sucht nach einer Route zur Adresse 172.31.16.5.
- Verfügt er nicht über eine solche, antwortet er mit einer ICMP-Antwort, die nicht erreichbar ist.
- In diesem Fall verfügt er über eine statische Route, die für das Subnetz 172.31.16.0/24 konfiguriert ist und auf R1 verweist.
- Es übersetzt das Paket zurück an die Adresse 172.16.89.32 und leitet es über seine externe Schnittstelle weiter (Gi0/0).
Konfigurationen
In diesem Dokument werden folgende Konfigurationen verwendet:
Router R1 |
hostname R1
!
!--- Output suppressed.
!
interface Loopback1
ip address 172.16.89.32 255.255.255.0
!
interface GigabitEthernet0/0
ip address 172.16.191.254 255.255.255.252
duplex auto
speed auto
!
interface GigabitEthernet0/1
no ip address
shutdown
! !--- Output suppressed.
ip route 0.0.0.0 0.0.0.0 172.16.191.253
!--- Default route to forward packets to NAT-Router. !--- Output suppressed. |
Router-NAT-Router |
hostname NAT-Router
!
!--- Output suppressed.
!
interface GigabitEthernet0/0
ip address 172.16.191.253 255.255.255.252
ip nat outside
ip virtual-reassembly in
duplex auto
speed auto
!
interface GigabitEthernet0/1
ip address 172.31.192.202 255.255.255.0
ip nat inside
ip virtual-reassembly in
duplex auto
speed auto
!
!--- ip nat command defines GigabitEthernet0/1 as a NAT inside interface and GigabitEthernet0/0 as a NAT outside interface.
!--- Output suppressed.
!
no ip http server
no ip http secure-server
ip nat outside source static 172.16.89.32 172.31.16.5
ip route 172.31.1.0 255.255.255.0 172.31.192.201
ip route 172.31.16.0 255.255.255.0 172.16.191.254
!
!--- Outside local address is defined as 172.31.16.5.
!--- Static routes for reaching the loopback interfaces on R2 and subnet 172.31.16.0 towards R1. |
Hinweis: Beachten Sie, dass in diesem speziellen Szenario keine statische Route erforderlich ist, die auf Loopback1 auf R1 verweist. Wenn nämlich die ICMP-Antwort beim NAT-Router eingeht, wird zuerst die Routing-Tabelle auf das Ziel überprüft und anschließend die Adressumwandlung durchgeführt.
Router R2 |
hostname R2
!
!--- Output suppressed.
!
interface Loopback0
ip address 172.31.1.1 255.255.255.0
!
interface GigabitEthernet0/0
ip address 172.31.192.201 255.255.255.0
duplex auto
speed auto
!
!--- Output suppressed.
ip route 0.0.0.0 0.0.0.0 172.31.192.202
!--- Default route to forward packets to NAT-Router. !--- Output suppressed. |
Verifizierung
Verwenden Sie den Befehl show ip nat translation, um die Übersetzungseinträge zu überprüfen, wie diese Ausgabe zeigt:
NAT-Router#show ip nat translations
Pro Inside global Inside local Outside local Outside global
--- --- --- 172.31.16.5 172.16.89.32
icmp 172.31.1.1:21 172.31.1.1:21 172.31.16.5:21 172.16.89.32:21
NAT-Router#
Fehlerbehebung
In diesem Beispiel wird NAT-Übersetzungsdebugging und IP-Paketdebugging verwendet, um den NAT-Prozess zu veranschaulichen.
Vorsicht: Da die Debug-Befehle eine beträchtliche Menge an Ausgabe generieren, sollten Sie sie nur dann verwenden, wenn der Datenverkehr im IP-Netzwerk gering ist, sodass andere Aktivitäten im System nicht beeinträchtigt werden.
Hinweis: Diese Debug-Ausgaben stammen von Routern, auf denen Cisco IOS-Software ausgeführt wird. Die Auflistung dieser Debug-Ausgaben kann je nach verwendeter Plattform variieren.
Hinweis: Lesen Sie den Artikel Important Information on Debug Commands (Wichtige Informationen zu Debug-Befehlen), bevor Sie debug-Befehle verwenden.
Diese Ausgabe ist das Ergebnis der gleichzeitigen Verwendung der Befehle debug ip packet und debug ip nat auf dem NAT-Router, während ein Ping von der R1-Loopback1-Schnittstellenadresse (172.16.89.32) zur R2-Loopback0-Schnittstellenadresse (172.31.1.1.1) gesendet wird.
Diese Ausgabe zeigt das erste Paket an, das an der externen Schnittstelle des NAT-Routers eingeht. Die Quelladresse von 172.16.89.32 wird in 172.31.16.5 umgewandelt. Das ICMP-Paket wird über die GigabitEthernet0/1-Schnittstelle an das Ziel weitergeleitet.
*Sep 19 15:34:39.925: NAT: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [100]
*Sep 19 15:34:39.925: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, NAT Inside(8), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Sep 19 15:34:39.926: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, Common Flow Table(29), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Sep 19 15:34:39.926: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, Stateful Inspection(30), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Sep 19 15:34:39.927: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, output feature, NAT ALG proxy(63), rtype 1, forus FALSE, sendself FALSE, mtu 0, fwdchk FALSE
*Sep 19 15:34:39.927: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), g=172.31.192.201, len 100, forward
*Sep 19 15:34:39.928: IP: s=172.31.16.5 (GigabitEthernet0/0), d=172.31.1.1 (GigabitEthernet0/1), len 100, sending full packet
Diese Ausgabe zeigt das aus 172.31.1.1 stammende Rückpaket mit der Zieladresse 172.31.16.5, die in 172.16.89.32 umgewandelt wird. Das resultierende ICMP-Paket wird über die GigabitEthernet0/0-Schnittstelle (NAT-Router) weitergeleitet.
*Sep 19 15:34:39.930: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [100]
*Sep 19 15:34:39.930: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [100]
Der Austausch von ICMP-Paketen wird fortgesetzt. Der NAT-Prozess für diese Debugausgabe ist mit der vorherigen Ausgabe identisch.
*Sep 19 15:34:39.932: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [101]
*Sep 19 15:34:39.932: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [101]
*Sep 19 15:34:39.933: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [101]
*Sep 19 15:34:39.933: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [101]
*Sep 19 15:34:39.935: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [102]
*Sep 19 15:34:39.935: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [102]
*Sep 19 15:34:39.936: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [102]
*Sep 19 15:34:39.936: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [102]
*Sep 19 15:34:39.938: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [103]
*Sep 19 15:34:39.938: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [103]
*Sep 19 15:34:39.939: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [103]
*Sep 19 15:34:39.939: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [103]
*Sep 19 15:34:39.940: NAT*: o: icmp (172.16.89.32, 20) -> (172.31.1.1, 20) [104]
*Sep 19 15:34:39.940: NAT*: s=172.16.89.32->172.31.16.5, d=172.31.1.1 [104]
*Sep 19 15:34:39.942: NAT*: i: icmp (172.31.1.1, 20) -> (172.31.16.5, 20) [104]
*Sep 19 15:34:39.942: NAT*: s=172.31.1.1, d=172.31.16.5->172.16.89.32 [104]
Zusammenfassung
Wenn das Paket von außen nach innen übertragen wird, erfolgt zuerst die Übersetzung, und anschließend wird die Routing-Tabelle auf das Ziel überprüft.
Wenn das Paket von innen nach außen übertragen wird, wird zuerst die Routing-Tabelle auf das Ziel überprüft, und anschließend wird die Übersetzung durchgeführt.
Weitere Informationen finden Sie unter "NAT Order of Operation" (Einsatzreihenfolge).
Notieren Sie sich den Teil des IP-Pakets, der übersetzt wird, wenn er mit jedem der vorherigen Befehle verwendet wird. Diese Tabelle enthält die Richtlinie:
Command |
Aktion |
ip nat außerhalb quelle statisch |
- Übersetzt die Quelle von IP-Paketen, die von außen nach innen übertragen werden.
- Übersetzt das Ziel von IP-Paketen, die von innen nach außen übertragen werden.
|
ip nat inside source statisch |
- Übersetzt die Quelle von IP-Paketen, die von innen nach außen übertragen werden.
- Übersetzt das Ziel von IP-Paketen, die von außen nach innen übertragen werden.
|
Diese Richtlinien weisen darauf hin, dass es mehr als eine Möglichkeit gibt, ein Paket zu übersetzen. Legen Sie basierend auf Ihren spezifischen Anforderungen fest, wie die NAT-Schnittstellen (innen oder außen) definiert werden sollen und welche Routen die Routing-Tabelle vor oder nach der Übersetzung enthält. Beachten Sie, dass der Teil des Pakets, der umgewandelt wird, von der Richtung abhängt, in die sich das Paket bewegt, und wie Sie NAT konfigurieren.
Zugehörige Informationen