Cisco NAT

Cisco NAT

NAT bedeutet Network Address Translation und damit kann eine Adresse in eine andere Adresse umgesetzt werde. Es ist meistens keine schöne Lsung in einem Firmen Netzwerk dieses zu machen, aber ab und zu kommt man nicht drum herum.
Im privaten Bereich haben wir alle, die einen Internetanschluss haben, mit NAT zu tun. Denn das ist es was auf dem Router passiert, über den wir ins Internet gehen.
Die private IP Adresse die der PC z.B. über DHCP erhält, wird in eine IP Adresse übersetzt die im Internet verwendte wird.

Hier beziehe ich mich auf ein Labor aus dem Buch 101 LABS Cisco CCNA

Das ganze ist in GNS 3 “nachgebaut”

Die Grundkonfigruation der Interfaces

R1
!
hostname R1
!
!
interface Serial1/0
ip address 192.168.254.1 255.255.255.248
serial restart-delay 0
!

R3
!
hostname R3
!
interface Ethernet0/0
ip address 10.2.2.2 255.255.255.224
!
interface Serial1/0
ip address 192.168.254.2 255.255.255.248
!

SW1
!
vlan 50
name NAT_VLAN
!
interface Ethernet0/0
switchport access vlan 50
!
interface Vlan1
no ip address
shutdown
!
interface Vlan50
ip address 10.2.2.4 255.255.255.224
!
ip route 0.0.0.0 0.0.0.0 10.2.2.2
!

Zu erst das statische NAT:

Beim statischen NAT wird eine bestimmte IP Adresse in eine andere festgelegte IP Adresse umgesetzt.
In diesem Fall wird die Adresse 192.168.254.4 in die Adresse 10.2.2.4 umgesetzt, so das vom Switch der Router 1 erreicht werden kann ohne das ein Routingprotokoll auf dem Router 3 zum Einsatz kommt.

Als erstes wird das Inside und Outside Interface auf dem Router R3 festgelegt.

R3:
R3(config):int eth 0/0
R3(config-if):ip nat inside
R3(config-if):exit
R3(config):int ser 1/0
R3(config-if):ip nat outside
R3(config-if):exit

Die Konfig der Interfaces sieht dann so aus :

!
interface Ethernet0/0
ip address 10.2.2.2 255.255.255.224
ip nat inside
ip virtual-reassembly
!
interface Serial1/0
ip address 192.168.254.2 255.255.255.248
ip nat outside
ip virtual-reassembly
!

Jetzt kann das eigentliche NAT konfiguriert werden.
R3(config): ip nat inside source static 10.2.2.4 192.168.254.4
R3(config): end

Somit wird festgelegt das die IP Adresse die über das Inside Interface am Router ankommt, in diesem Fall die 10.2.2.4, auf die Adresse 192.168.254.4 umgesetzt wird.

Zur Kontrolle nimmt man den Befehl
R3#:sh ip nat translation

Jetzt können wir es testen, indem wir vom SW1 versuchen die IP Adresse 192.168.254.1 anzupingen.
Wenn alles richtig ist, dann ist dieses auch erfolgreich.

Die Statistic zu dem durchgeführten NAT könne wir über diesen Befel ansehen

R3#: show ip nat statistics

Dynamisches NAT

Dynamischens NAT setzt man dann ein wenn mehr als eine Adresse umgesetzt werden soll. Man konfiguriert dann ju jeder ankommenden Adresse eine ausgehende Adresse.

Die Konfiguration kann fast so bleiben wie oben beschrieben, nur der Befehl
R3(config): ip nat inside source static 10.2.2.4 192.168.254.4
muss entfernt werden
R3(config): no ip nat inside source static 10.2.2.4 192.168.254.4

In diesem Fall wird mit einer Accessliste gearbeitet die das gesamte Netz 10.2.20/27 erlaubt.

R3:
!
ip access-list extended NAT-ACL
remark “Permit the 10.2.2.0/27 Subnet to be NATd”
permit ip 10.2.2.0 0.0.0.31 any
!
Die Umsetzung des NAT´s sieht dann etwas anders aus

!
ip nat pool Dynamic-NAT 192.168.254.3 192.168.254.6 prefix-length 29
ip nat inside source list NAT-ACL pool Dynamic-NAT
!

Es werden alle Adressen aus dem 10.2.2.0 Netz auf 3 Adressen umgesetzt, die von 192.168.254.3 bis zur .6 gehen.
Es können also maximal 4 Adressen gleichzeitig per NAT übersetzt werden.

Was ist jetzt aber wenn ich nur eine ausgehende Adresse habe, aber viele Rechner auf der inneren Seite ? Wie z.b. beim o.g. Internet Router zu Hause ?
Auch dafür gibt es eine Lösung!

Das ganze nennt sich dann nicht mehr NAT sondern PAT, PAT steht für Port Address Translation.
Es wird also nicht mehr jede ankommenden IP Adresse in eine Ausgehende Adresse über setzt, sondern der Ausgehenden IP Adresse die immer gleich bleibt, wird ein Port angehängt, so kann der Router unterscheiden zu welcher Session die Antwort gehört und kann sie entsprechend weiterleiten.

Dazu entfernen wir in unserem Beispiel auf dem Router R3 die Accessliste und den NAT Eintrag

R3:
!
conf t
!
no ip access-list extended NAT-ACL
!

!
no ip nat pool Dynamic-NAT 192.168.254.3 192.168.254.6 prefix-length 29
no ip nat inside source list NAT-ACL pool Dynamic-NAT
!

Jetzt wir eine neue Accessliste auf dem Router R3 erstellt :

conf t
!
ip access-list extended NAT-ACL
!
remark “NAT Traffic from 10.2.2.0/27 To 192.168.254.0/29”
!
permit ip 10.2.2.0 0.0.0.31 192.168.254.0 0.0.0.7
!

Dazu wird eine Adresse oder ein Bereich definiert in den die ankommende Adresse umgesetzt wird.

conf t
!
ip nat pool PAT-POOL 192.168.254.4 192.168.254.4 netmask 255.255.255.240
!

in diesem Fall wir die IP Adresse 192.168.254.4 als ausgehende Adresse festgelegt.

Zu guter letzt wird noch
werden noch die ACL und die PAT Liste zusammengefügt

conf t
!
ip nat inside source list NAT-ACL pool PAT-POOL overload
!

Ganz wichtig ist das der Befehl “overload” der sorgt dafür das PAT zur Anwendung kommt.

Die Überprüfung, nachdem ein Ping vom SW1 auf die 192.168.254.1 abgesetzt wurde :


R3#sh ip nat translations

Pro Inside global Inside local Outside local Outside global
icmp 192.168.254.5:12 10.2.2.4:12 192.168.254.1:12 192.168.254.1:12