Was bedeuten diese drei Optionen in einer Cisco Router NAT-Konfiguration?


10

In einer statischen Standard-PAT-Konfiguration, in der eine IP: Port-Kombination immer einer anderen IP: Port-Kombination zugeordnet ist, können drei mögliche Kombinationen von Innen / Außen / Quelle / Ziel konfiguriert werden.

Dies ist beispielsweise ein Konfigurationsbeispiel:

ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
       ^^^^^^^^^^^^^

Für Laien bedeutet diese Konfiguration, dass jeder externe Host über Port 80 eine TCP-Verbindung zur IP 2.2.2.33 herstellen kann. Wenn dieses Paket den Router erreicht, werden die Ziel-IP-Adresse und Port ( 2.2.2.33:80) übersetzt 10.0.20.13:8080.

Das Gegenteil würde auch passieren, wenn der interne Host 10.0.20.13 ein TCP-Paket mit einem Quellport von 8080 sendet, da dieses Paket den Router kreuzt, die Quell-IP und Port ( 10.0.20.13:8080) übersetzt werden 2.2.2.33:80. (Dies ist normalerweise ein Antwortpaket und kein vom Inside-Host initiiertes Paket. )


Hier sind alle drei Konfigurationsoptionen für den oben markierten Teil:

Router(config)#ip nat inside ?
  destination  Destination address translation
  source       Source address translation

Router(config)#ip nat outside ?
  source  Source address translation

In der Tat könnten Sie konfigurieren:

  • ip nat inside source static tcp {IP} {Port} {IP} {Port}
  • ip nat im statischen Ziel tcp {IP} {Port} {IP} {Port}
  • ip nat außerhalb der Quelle statisch tcp {IP} {Port} {IP} {Port}

Wie unterscheiden sich diese Optionen und wann würde man jede der drei Optionen verwenden? Bitte verwenden Sie Laienbegriffe wie oben, um zu beschreiben, wie jedes Paket manipuliert, das durch das Gerät kommt.

Kann mir auch jemand sagen, warum es keine externe Zieloption gibt?


2
@Eddie, anstatt dass wir alle Benutzerhandbücher wieder auffliegen lassen, werfen Sie einen Blick auf diese cisco.com/c/en/us/support/docs/ip/… oder diese groupstudy.com/archives/ccielab/200702/msg01284.html und sehen Sie, ob das Ihnen hilft. Wenn Sie danach noch spezielle Fragen haben, helfen wir Ihnen gerne weiter.
Ron Trunk

Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:


7

Denken Sie sehr sorgfältig darüber nach.

Innerhalb der Quelle bedeutet, dass Sie die Quelladresse aus dem Datenverkehr in Ihrem Netzwerk übersetzen möchten. Dies ist die typische "Heimnetzwerk" -Anordnung, mit der Sie private Adressen im öffentlichen Internet verwenden können. Dies ist natürlich nicht die einzige Verwendung für diese Version.

Innerhalb des Ziels bedeutet, dass der Datenverkehr von einer externen Adresse zu einem bestimmten Zieltransportprotokoll und -port zu einer bestimmten internen Adresse geleitet werden soll. Dies ist, was Heimanwender tun, um den Zugriff auf einen Webserver mit einer privaten Adresse über das öffentliche Internet zu ermöglichen. Dies ist natürlich nicht die einzige Verwendung für diese Version.

Die externe Quelle übersetzt den von außen stammenden Datenverkehr so, als stamme er von einer internen Adresse. Dies kann in Fällen nützlich sein, in denen Unternehmen mit überlappenden IP-Adressbereichen zusammengeführt werden und mit der Verbindung der Netzwerke beginnen müssen. Sie können die Quelladressen des von außen stammenden Datenverkehrs, der normalerweise externe Quelladressen enthält, die mit internen Adressen in Konflikt stehen, in Quelladressenadressen in einem verfügbaren internen Adressbereich übersetzen.

Ein externes Ziel ist nicht sehr sinnvoll, da es die Umkehrung der Portweiterleitung ist. Dies würde jeglichen Verkehr, der von innen kommt und für ein bestimmtes externes Transportprotokoll und einen bestimmten Port bestimmt ist, auf eine einzige externe Adresse beschränken.


Ihre Beschreibung für inside destinationscheint mit meiner "Laienerklärung" für übereinzustimmen inside source. In meinem Beispiel wurde die Zielportnummer für den eingehenden Datenverkehr von 80auf geändert 8080. Ihre Beschreibung scheint zu implizieren, dass sich die Portnummer nicht ändert? So oder so kann das nicht der einzige Unterschied zwischen inside destinationund sein inside source, oder?
Eddie

Der Unterschied ist die Quelle des Verkehrs. Der inside sourceVerkehrsfluss entsteht von innen und der inside destinationVerkehrsfluss von außen. Wenn Datenverkehr, der von stammt, inside sourceeine Antwort benötigt, inside destinationwird für die Antwort ein temporärer Prozess ausgeführt. Die Portnummer kann geändert werden, wenn der Datenverkehr von einer Seite zur anderen übertragen wird. Dies wird jedoch nicht von allen Routern (insbesondere Heimroutern) unterstützt.
Ron Maupin

4

Wir müssen von den Grundlagen ausgehen, also überarbeiten wir die NAT-Terminologie. NAT übersetzt IP-Adressen in IP-Pakete, richtig? Was bedeutet das? Dass es im Grunde Trugbilder erzeugt - ja, optische Täuschungen, wissen Sie. In einer typischen NAT-Konfiguration, in der privat adressierte LAN-Hosts über die öffentliche IP-Adresse der externen Router-Schnittstelle auf das Internet zugreifen, werden diese Hosts für Internet-Server mit dieser öffentlichen IP (oder IPs aus einem Pool öffentlicher IPs) angezeigt. NAT erstellt natürlich keine neuen physischen Hosts - aber es erstellt eine Art neue virtuelle Entitäten - in diesem Beispiel sehen sich die LAN-Hosts als beispielsweise 192.168.1.x, aber Internet-Server sehen sie als 203.0.113.x - Ein Satz physischer Hosts, aber zwei Sätze IP-Adressen. Zwei verschiedene Sätze von (logischen) Hosts. Optische Täuschung. Und die Terminologie lautet:

  • inside local - "echte" IP-Adressen der internen Hosts, wie sie ihren Schnittstellen zugewiesen sind und wie sie sich sehen
  • inside global - "Mirage" -IP-Adressen aus Sicht der Außenwelt
  • außerhalb global - "echte" IP-Adressen der externen Hosts, wie sie von sich selbst und vom (fast) gesamten Internet gesehen werden
  • außerhalb lokal - "Mirage" IP-Adressen, wie wir externe Hosts sehen (wenn wir NAT gebeten haben, entsprechend zu übersetzen)

Und wie Sie sehen, sind wir verpflichtet, zwischen unserem Netzwerk und dem Internet oder einem anderen externen Netzwerk zu unterscheiden. Wir tun dies, indem wir die IP-Schnittstellen unseres Routers entweder als IP-Adresse innerhalb oder als IP-Adresse außerhalb markieren .

Erinnern wir uns nun daran, wie NAT normalerweise implementiert wird: Es verwaltet spezielle Tabellen, die Einträge zu Übersetzungen enthalten. Und der wichtige Punkt ist, dass diese Einträge entweder statisch oder dynamisch erstellt werden können . Bei dynamisch erstellten Einträgen ist die Verkehrsrichtung wichtig - wird der Verkehr von innen nach außen oder umgekehrt initiiert? Bei statischen Einträgen ist dies nicht der Fall - sie sind symmetrisch . NAT - Konfiguration Anweisungen, die das enthalten statische Schlüsselwort statische Einträge erstellen unmittelbar nach dem sie in den laufenden Config setzen; Diejenigen mit dem dynamischen Schlüsselwort achten auf den interessanten Datenverkehr und erstellen dynamisch Übersetzungseinträge, die dann eine Zeitüberschreitung verursachen.

Über Ihre letzte Frage können wir bereits spekulieren: Warum gibt es keine Option für ein externes Ziel ? ip nat inside source static erstellt einen statischen NAT-Eintrag, der genau wie von Ihnen beschrieben übersetzt wird. Dies umfasst jedoch nicht nur den von einer bestimmten Seite initiierten Datenverkehr - statische NAT-Einträge sind symmetrisch. Also, ip nat outside Ziel statisch wäre für die Übersetzung einen statischen Eintrag erstellen Ziel - IP - Adressen von Datenverkehr in Ihr Netzwerk aus der Eingabe außerhalb UND Quelle IP - Adressen für den Verkehr aus gehen innen - aber das ist genau das, was nat inside Quelle statische IPBefehl tut! Es ist also einfach überflüssig, diesen Befehl zu haben. Der einzige Unterschied besteht darin, dass Sie die Quelle mit der Ziel-IP austauschen würden, wenn Sie die eine oder andere Form des im Grunde gleichen Befehls verwenden.

In Bezug auf Ihre erste Aussage "Es gibt drei mögliche Kombinationen von Innen / Außen / Quelle / Ziel, die konfiguriert werden können" - dies ist nicht ganz so. Der Punkt ist, dass NAT-Konfigurationsanweisungen im Allgemeinen keine "mathematischen Formeln" sind und vollständig betrachtet werden sollten und nicht so, wie sie logisch aus unabhängigen Schlüsselwörtern aufgebaut sind. Jede "Kombination" stellt also eine Lösung für eine bestimmte Aufgabe dar. Beispielsweise wird ip nat in der Zielliste zum Konfigurieren des Server-TCP-Lastausgleichs verwendet, der einen bestimmten Algorithmus verwendet und nicht mit UDP funktioniert. Außerdem gibt es (in modernen IOS) keine IP-Adresse im statischen Zielbefehl - haben Sie es tatsächlich mit der statischen Option versucht ?

In diesem Cisco-Dokument finden Sie einige spezielle Szenarien für die Verwendung von NAT, einschließlich Konfigurationsbeispielen: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html

Abschließend möchte ich erwähnen, dass NAT manchmal nicht das ist, was Sie wollen. Schauen Sie sich zum Beispiel meine Antwort auf diese "kanonische Frage" an: /server/55611/loopback-to-forwarded-public- IP-Adresse-vom-lokalen-Netzwerk-Haarnadel-nat / 733532 # 733532

PS Soll ich näher darauf eingehen?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.