A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat | Előző változat Utolsó változat Következő változat mindkét oldalon | ||
oktatas:halozat:cisco:nat [2019/02/08 19:24] |
oktatas:halozat:cisco:nat [2020/04/19 14:24] admin [Dinamikus NAT] |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | [[oktatas:hálózat:cisco|< Cisco]] | ||
+ | ====== NAT ====== | ||
+ | * **Szerző:** Sallai András | ||
+ | * Copyright (c) Sallai András, 2017, 2018, 2019 | ||
+ | * Licenc: GNU Free Documentation License 1.3 | ||
+ | * Web: http://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: | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | <code> | ||
+ | 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# | ||
+ | </code> | ||
+ | |||
+ | ==== 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: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | {{:oktatas:hálózat:cisco:statikus_nat_07.png|}} | ||
+ | |||
+ | |||
+ | A következőket kell beállítani: | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== 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: | ||
+ | <code> | ||
+ | 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# | ||
+ | </code> | ||
+ | |||
+ | Nézzük meg a telnetes forgalomirányítón is: | ||
+ | |||
+ | Telnet-R#show ip route | ||
+ | |||
+ | Ehhez hasonló választ látunk: | ||
+ | <code> | ||
+ | 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# | ||
+ | </code> | ||
+ | |||
+ | |||
+ | 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. | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | <code> | ||
+ | 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# | ||
+ | </code> | ||
+ | |||
+ | ==== 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: | ||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | 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: | ||
+ | |||
+ | <code cisco> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | |||
+ | <code> | ||
+ | Internet | ||
+ | 192.168.10.0/24 195.100.100.0/24 | ||
+ | .1 .1 | ||
+ | .11 g0/0 g0/1 .2 | ||
+ | PC0-------------==------------<R1>---------------Server0 | ||
+ | NAT | ||
+ | </code> | ||
+ | |||
+ | Beállítjuk a routereken az IP címeket: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | 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: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | Megmondjuk az R1 router számára hol található a 197.100.100.0/24-es hálózat: | ||
+ | <code> | ||
+ | ip route 197.100.100.0 255.255.255.0 g0/1 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | A NAT beállítása: | ||
+ | |||
+ | <code> | ||
+ | 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 | ||
+ | </code> | ||
+ | |||
+ | 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: | ||
+ | <code> | ||
+ | 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)# | ||
+ | </code> | ||
+ | |||
+ | Vagy röviden: | ||
+ | <code> | ||
+ | R1#sh ip nat tran | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Debug: | ||
+ | R1#debug ip nat | ||
+ | |||