[[oktatas:hálózat:cisco|< Cisco]] ====== NAT ====== * **Szerző:** Sallai András * Copyright (c) Sallai András, 2017, 2018, 2019 * Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC Attribution-Share Alike 4.0 International]] * Web: https://szit.hu ===== A NAT ===== A **NAT** a **Network Address Translation** rövidítése, magyarul címfordítás. Háromféle NAT: * statikus NAT * dinamikus NAT * kiterjesztett NAT (PAT) ===== Statikus NAT ===== ==== Statikus NAT 1 ==== Adott a következő hálózat: {{:oktatas:hálózat:cisco:statikus_nat_06.png|}} 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# ==== Statikus NAT 2 ==== 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-------------------------------------------Server0 g0/0 g0/1 {{:oktatas:hálózat:cisco:statikus_nat_07.png|}} 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 ==== Statikus NAT 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: {{:oktatas:hálózat:cisco:statikus_nat_08.png|}} 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# ==== Statikus NAT 4 ==== 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. {{:oktatas:hálózat:cisco:statikus_nat_09.png|}} 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: * 195.100.200.2 * 192.168.10.2 Felhasznált: * http://www.omnisecu.com/cisco-certified-network-associate-ccna/how-to-configure-static-nat-in-cisco-router.php ===== Dinamikus NAT ===== 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: {{:oktatas:hálózat:cisco:dinamikus_nat_10.png|}} 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 ===== ==== Kiterjesztett NAT 1 ==== 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-------------==---------------------------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. ==== Kiterjesztett NAT 2 ==== 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-------------==--------------------------- 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. === NAT beállítása Cisco IOS-en === 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. ==== Ellenőrzés, monitorozás ==== 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