A NAT a Network Address Translation rövidítése, magyarul címfordítás.
Háromféle NAT:
Adott a következő hálózat:
Célunk, hogy a külső hálózatról elérjük a belső hálózaton lévő webszervert.
A következőket kell beállítani:
R1(config)# interface GigabitEthernet0/0 R1(config-if)# ip address 1.1.1.1 255.0.0.0 R1(config-if)# ip nat outside R1(config)# interface GigabitEthernet0/1 R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# ip nat inside R(config)# ip nat inside source static 192.168.10.2 1.1.1.1
R1#sh ip nat translations Pro Inside global Inside local Outside local Outside global --- 1.1.1.1 192.168.10.2 --- --- tcp 1.1.1.1:80 192.168.10.2:80 1.1.1.2:1026 1.1.1.2:1026 R1#
Célunk újra az, hogy a külső hálózatról elérjük a belső hálózaton lévő webszervert, de most a forgalomirányító külső címétől eltérő címen érhető majd el a szerver.
A topológia:
Külső hálózat privát hálózat Virtuális: 1.1.1.3 IP: 192.168.10.2/24 1.1.1.2/8 1.1.1.1/8 192.168.10.1 Átjáró: 192.168.10.1 PC0-------------------------<R1>------------------Server0 g0/0 g0/1
A következőket kell beállítani:
R1(config)# interface GigabitEthernet0/0 R1(config-if)# ip address 1.1.1.1 255.0.0.0 R1(config-if)# ip nat outside R1(config)# interface GigabitEthernet0/1 R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# ip nat inside R1(config)# ip nat inside source static 192.168.10.2 1.1.1.3
A következő példában nem lesz újdonság. Csupán PC és Szerver helyett forgalomirányítót állítunk be.
Topológia:
Három routert használunk, amelyeket Host-R, NAT-R és Telent-R-nek nevezünk. A belső hálózatunkon (LAN) van a Host-R gép, az Interneten a Telnet-R nevű telnet kiszolgáló.
Ez egy jó trükk az forgalomirányítók használatának bemutatásához. A forgalomirányítókon letiltható a forgalomirányítás, így a viselkedése olyan lesz mint egy végponti eszközé, amelynek alapértelmezett átjáróra van szüksége.
Állítsuk be a fenti ábra alapján az IP címeket, neveket. A Telnet-R forgalomirányítóra beállíthatunk telnet hozzáférést is.
Most kapcsoljuk ki a forgalomirányítást:
Host-R(config)# no ip routing
Telnet-R(config)# no ip routing
A no ip routing parancs kikapcsolja a forgalomirányítási képességet. Nézzük meg most a forgalomirányító-táblát.
Host-R(config)# show ip route
Ehhez hasonlót kell látnunk:
Host-R#show ip route Default gateway is 192.168.12.2 Host Gateway Last Use Total Uses Interface ICMP redirect cache is empty Host-R#
Nézzük meg a telnetes forgalomirányítón is:
Telnet-R#show ip route
Ehhez hasonló választ látunk:
Telnet-R#show ip route Default gateway is 192.168.23.2 Host Gateway Last Use Total Uses Interface ICMP redirect cache is empty Telnet-R#
Most állítsuk be az alapértelmezett átjárót, mindkét végponton.
Host-R# ip default-gateway 192.168.10.1
Telnet-R# ip default-gateway 192.168.20.1
Mindkét forgalomirányító tudja használni a NAT forgalomirányítót. Teszteljük:
Host-R#ping 192.168.20.3
Hogy lássuk pontosan mi történik, kapcsoljuk be a debug-ot, a telnetes ponton:
Telent-R# debug ip packet
Így láthatjuk a Telnet-R milyen csomagokat fogad.
Végezzük el újra ping tesztet, majd nézzük meg Telnet-R forgalomirányító konzolját.
IP: tableid=0, s=192.168.10.2 (FastEthernet0/0), d=192.168.20.3 (FastEthernet0/0), routed via RIB IP: s=192.168.10.2 (FastEthernet0/0), d=192.168.20.3 (FastEthernet0/0), len 128, rcvd 3
A debug ip packet parancs hatására láthatóvá válik milyen csomagok érkeztek a Telnet-R forgalomirányítóra. A s= mutatja, hogy honnan jöttek a csomagok:
s=192.168.10.2
Az d= mutatja, hogy mi volt a céljuk:
d=192.168.20.3
Most állítsuk be a NAT-ot a NAT forgalomirányítón:
NAT-R(config)#int f0/0 NAT-R(config-if)#ip nat inside
NAT-R(config)#int f0/1 NAT-R(config-if)#ip nat outside
Állítsuk be a NAT-ot:
NAT-R(config)# ip nat inside source static 192.168.10.2 192.168.20.1
Az „Telnet-R” forgalomirányítón ki is kapcsolhatjuk az alapértelmezett átjárót:
Telnet-R(config)# no ip default-gateway
Nézzük meg a milyen címfordítások vannak:
NAT#sh ip nat translations Pro Inside global Inside local Outside local Outside global --- 192.168.20.1 192.168.10.2 --- --- tcp 192.168.20.1:1025 192.168.10.2:1025 192.168.20.3:23 192.168.20.3:23 NAT#
A negyedik statikus NAT beállítás megegyezik az előzőekkel, kivéve, hogy két forgalomirányítón kell a csomagoknak áthaladniuk. A cél a privát hálózatban elérni a szerver weboldalát.
Beállítások:
R1(config)# int g0/0 R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# ip nat inside R1(config-if)# int s0/0/0 R1(config-if)# ip address 195.100.200.2 255.255.255.0 R1(config-if)# ip nat outside R1(config-if)# exit R1(config)# ip nat inside source static 192.168.10.2 195.100.200.2 R1(config)# router rip R1(config-router)# ver 2 R1(config-router)# net 195.100.200.0 R1(config-router)# R1(config-router)# passive-interface g0/0
R2(config)# int g0/0 R2(config-if)# ip address 1.1.1.1 255.0.0.0 R2(config-if)# int s0/0/0 R2(config-if)# ip address 195.100.200.1 255.255.255.0 R2(config)# router rip R2(config-router)# ver 2 R2(config-router)# net 1.0.0.0 R2(config-router)# net 195.100.200.0
Az R1 router külső interfészét összekötjük a szerver IP címével:
Felhasznált:
A dinamikus NAT automatikus leképezést hoz létre egy vagy több belső és egy külső IP címek között. A dinamikus NAT-hoz több IP címre van szükség, ha a belső hálózatról több gép akar kifele látni.
Topológia:
A példában 4 IP címet rendelünk a dinamikus NAT számára.
Beállítás:
R1(config)# int g0/0 R1(config-if)# ip add 192.168.10.1 255.255.255.0 R1(config)# int g0/1 R1(config-if)# ip add 209.100.100.1 255.255.255.0 R1(config)# ip nat pool NATMEDENCE1 209.100.100.2 209.100.100.5 netmask 255.255.255.0 R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255 R1(config)# ip nat inside source list 1 pool NATMEDENCE1 R1(config)# int g0/0 R1(config-if)# ip nat inside R1(config)#int g0/1 R1(config-if)# ip nat outside
Ellenőrzés:
R1# show ip nat translations
Kiterjesztett NAT vagy, ahogy a Cisconál hívják: PAT. Mivel portot is fordítunk.
Egy routeren áthaladó privát címeket szeretnénk nyilvános IP címekké fordítani. A privát címek nem juthatnak ki az Internetre, mivel azt az Internet más helyein is használják. Ilyenkor címfordítást használunk routeren, vagy szerveren.
Internet 192.168.10.0/24 195.100.100.0/24 .1 .1 .11 g0/0 g0/1 .2 PC0-------------==------------<R1>---------------Server0 NAT
Beállítjuk a routereken az IP címeket:
R1(config)# int g0/0 R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# R1(config-if)# int g0/1 R1(config-if)#ip address 195.100.100.1 255.255.255.0 R1(config-if)#no shutdown
A teszteléshez mindenhol beállíthatjuk az átjárót. Ekkor minden mindent elér.
A továbbiakhoz gondoskodjunk a Server0 átjárójának törléséről, mivel a R1 router neki nem átjáró, mert abba az irányba egy véghálózat van. A PC0 ezek után már nem éri a szervert, amíg a NAT nincs beállítva.
A NAT beállítása:
R1(config)# int g0/0 R1(config-if)# ip nat inside R1(config-if)# exit R1(config)# R1(config)# int g0/1 R1(config-if)# ip nat outside R1(config-if)# exit R1(config)# access-list 1 permit 192.168.10.0 0.0.0.255 R1(config)# ip nat inside source list 1 int g0/1 overload
Az access-list sor létrehoz egy ACL-listát, amelynek az azonosítója 1. Ezt felhasználjuk az ip nat kezdetű sorban.
A különbség a NAT 1-gyel szemben, hogy itt két router van.
Internet 192.168.10.0/24 195.100.100.0/24 .1 .1 .2 .11 g0/0 g0/1 g0/0 PC0-------------==------------<R1>---------------<R2> NAT | g0/1 | .1 | | 197.100.100.0/24 | |.5 Server1
A szerveren itt nyilván kell árjáró, mert ő is saját router mögött van.
Beállítjuk a routereken az IP címeket:
R1(config)# int g0/0 R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# R1(config-if)# int g0/1 R1(config-if)#ip address 195.100.100.1 255.0.0.0 R1(config-if)#no shutdown
R2(config)# int g0/0 R2(config-if)# ip address 195.100.100.2 255.255.255.0 R2(config-if)# no shutdown R2(config-if)# R2(config-if)# int g0/1 R2(config-if)#ip address 197.100.100.5 255.255.255.0 R2(config-if)#no shutdown
Megmondjuk az R1 router számára hol található a 197.100.100.0/24-es hálózat:
ip route 197.100.100.0 255.255.255.0 g0/1
A NAT beállítása:
R1(config)# int g0/0 R1(config-if)# ip nat inside R1(config-if)# exit R1(config)# R1(config)# int g0/1 R1(config-if)# ip nat outside R1(config-if)# exit R1(config)# access-list 100 permit ip any any R1(config)# ip nat inside source list 100 int g0/1 overload
Az access-list sor létrehoz egy ACL-listát, amelynek az azonosítója 100. Ezt felhasználjuk az ip nat kezdetű sorban.
Nézzük meg milyen címfordítások voltak:
R1(config)#do show ip nat translation Pro Inside global Inside local Outside local Outside global tcp 1.1.1.2:1025 192.168.8.2:1025 1.1.1.1:80 1.1.1.1:80 R1(config)#
Vagy röviden:
R1#sh ip nat tran
Debug:
R1#debug ip nat