Překlad síťových adres (NAT) je proces úpravy informací o IP adresách v hlavičkách IP paketů během jejich přenosu přes zařízení pro směrování provozu.
Existují dva různé typy NAT:
- NAT
- Statický NAT: Nejjednodušší typ NAT zajišťuje překlad IP adres jedna ku jedné. Často se také označuje jako NAT jedna ku jedné. U tohoto typu NAT je třeba měnit pouze IP adresy, kontrolní součet IP hlavičky a všechny kontrolní součty vyšší úrovně, které obsahují IP adresu. Zbytek paketu může zůstat nedotčen (alespoň pro základní funkce TCP/UDP, některé protokoly vyšší úrovně mohou vyžadovat další překlad). Základní NAT lze použít v případě požadavku na propojení dvou IP sítí s nekompatibilní adresací. U statického NAT existují překlady v překladové tabulce NAT, jakmile nakonfigurujete příkaz(y) statického NAT, a zůstávají v překladové tabulce, dokud příkaz(y) statického NAT neodstraníte.
- Dynamický NAT: Dynamický NAT má oproti statickému NAT některé podobnosti a rozdíly. Stejně jako statický NAT vytváří směrovač NAT mapování jedna ku jedné mezi vnitřní místní a vnitřní globální adresou a mění IP adresy v paketech při jejich výstupu a vstupu do vnitřní sítě. Mapování vnitřní lokální adresy na vnitřní globální adresu však probíhá dynamicky. Dynamický NAT vytváří fond možných vnitřních globálních adres a definuje kritéria shody, která určují, které vnitřní místní IP adresy mají být přeloženy pomocí NAT. Dynamická položka zůstává v tabulce tak dlouho, dokud občas probíhá provoz. Při dynamické NAT neexistují překlady v tabulce NAT, dokud směrovač nepřijme provoz, který vyžaduje překlad. Dynamické překlady mají časový limit, po jehož uplynutí jsou z překladové tabulky vymazány.
- PAT
- Statický PAT: Statické překlady PAT umožňují přeložit konkrétní port UDP nebo TCP na globální adrese na konkrétní port na místní adrese. Statický PAT je stejný jako statický NAT s tím rozdílem, že umožňuje zadat protokol (TCP nebo UDP) a port pro skutečné a mapované adresy. Statický PAT umožňuje identifikovat stejnou mapovanou adresu v mnoha různých statických příkazech za předpokladu, že port je pro každý příkaz jiný. Stejnou mapovanou adresu nelze použít pro více statických příkazů NAT. U statického PAT existují překlady v překladové tabulce NAT, jakmile nakonfigurujete statický příkaz (příkazy) PAT, a zůstávají v překladové tabulce, dokud neodstraníte statický příkaz (příkazy) PAT.
- Přetížení NAT nebo PAT: Je běžné skrýt celý adresní prostor IP, obvykle sestávající z privátních adres IP, za jedinou adresu IP (nebo v některých případech malou skupinu adres IP) v jiném (obvykle veřejném) adresním prostoru. Tento typ NAT se nazývá PAT in overload. Dynamický záznam zůstává v tabulce tak dlouho, dokud občas probíhá provoz. U PAT v přetížení neexistují překlady v tabulce NAT, dokud směrovač nepřijme provoz, který vyžaduje překlad. Překlady mají časový limit, po jehož uplynutí jsou z překladové tabulky vymazány.
Příklad č. 1: Statický zdrojový NAT
Jak přeložit IP adresu 172.16.0.5 na IP adresu 10.16.0.5?
Definice ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Definice ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
Definice položky statického NAT:
ip nat inside source static 172.16.0.5 10.16.0.5
Při statickém NAT existuje překlad v překladové tabulce NAT, jakmile nakonfigurujete příkaz statického NAT, a zůstane v překladové tabulce, dokud příkaz statického NAT neodstraníte:
Ciscozine#sh ip nat translationsPro Inside global Inside local Outside local Outside global--- 10.16.0.5 172.16.0.5 --- ---Ciscozine#
Pokud klient odešle paket ICMP nebo požadavek HTTP na webový server, bude v tabulce NAT:
Ciscozine#sh ip nat translationsPro Inside global Inside local Outside local Outside globalicmp 10.16.0.5:1 172.16.0.5:1 10.0.0.100:1 10.0.0.100:1tcp 10.16.0.5:56080 172.16.0.5:56080 10.0.0.100:80 10.0.0.100:80--- 10.16.0.5 172.16.0.5 --- ---Ciscozine#
Pamatujte: Protože mapovaná adresa je stejná pro každé následující spojení se statickým NAT a existuje trvalé pravidlo překladu, statický NAT umožňuje hostitelům v cílové síti iniciovat provoz na přeloženého hostitele (pokud existuje seznam přístupu, který to umožňuje).
Příklad č. 2: Dynamické zdrojové NAT
Jak přeložit síť 172.16.0.0/28 v síti 10.16.0.0/29. V případě, že je síť 172.16.0.0/28 přeložena v síti 10.16.0.0/29, je možné ji přeložit.
Definice ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Definice ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
Definice nat pool použitého při překladu NAT:
Ciscozine(config)#ip nat pool dynamic-ip 10.0.16.1 10.0.16.6 prefix-length 29
Definice, která síť bude přeložena:
Ciscozine(config)#ip access-list standard client-listCiscozine(config-std-nacl)#permit 172.16.0.0 0.0.0.15
Definice dynamického zdrojového NAT:
Ciscozine(config)#ip nat inside source list client-list pool dynamic-ip
Při dynamickém NAT neexistují překlady v tabulce NAT, dokud směrovač nepřijme provoz, který vyžaduje překlad.
Ciscozine#sh ip nat translationsCiscozine#
ale když některé pakety odpovídají seznamu ACL..
Ciscozine#sh ip nat translations Pro Inside global Inside local Outside local Outside globalicmp 10.0.16.1:2 172.16.0.1:2 10.0.0.100:2 10.0.0.100:2tcp 10.0.16.2:35694 172.16.0.2:35694 10.0.0.100:80 10.0.0.100:80tcp 10.0.16.1:56185 172.16.0.1:56185 10.0.0.100:80 10.0.0.100:80--- 10.0.16.1 172.16.0.1 --- ------ 10.0.16.2 172.16.0.2 --- ---Ciscozine#
Poznámka: Pokud přijde nový paket od dalšího vnitřního hostitele a potřebuje položku NAT, ale všechny sdružené IP adresy jsou použity, směrovač paket jednoduše zahodí.
To lze zkontrolovat zapnutím příkazu „debug ip nat“.
Feb 12 19:26:09.895: NAT: translation failed (E), dropping packet s=172.16.0.5 d=10.0.0.100
Uživatel to musí zkusit znovu, dokud položka NAT nevyprší, v tomto okamžiku funkce NAT funguje pro dalšího hostitele, který odesílá paket. V podstatě platí, že vnitřní globální fond adres musí být stejně velký jako maximální počet souběžných hostitelů, kteří potřebují současně používat internet – pokud nepoužijeme PAT.
Pamatujte: Hlavní rozdíl mezi dynamickým NAT a rozsahem adres pro statický NAT spočívá v tom, že statický NAT umožňuje vzdálenému hostiteli navázat spojení s překládaným hostitelem (pokud existuje přístupový seznam, který to umožňuje), zatímco dynamický NAT nikoli. U statického NAT je také potřeba stejný počet mapovaných adres jako skutečných adres.
Příklad č. 3: Statický PAT
Jak vystavit dvě různé služby na internetu:
- Webový server (172.16.0.) je možné vystavit dvěma různým službám.5) naslouchá na portu tcp 80; tento server odpovídá na veřejné adrese 88.88.88.88:80 z Internetu (venku).
- Server SSH (172.16.0.6) naslouchá na portu tcp 22; tento server odpovídá na veřejné adrese 88.88.88.88:666 z internetu (venku) .
Definice ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Definice ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
Definice statického PAT:
Webový server odpovídá na portu tcp 80 na rozhraní „venku“.
ip nat inside source static tcp 172.17.0.5 80 88.88.88.88 80
Server SSH odpovídá na portu tcp 666 na rozhraní ‚outside‘ ; v tomto případě se skutečný port (22 tcp) překládá na port 666 tcp, když přijde požadavek z internetu.
ip nat inside source static tcp 172.17.0.6 22 88.88.88.88 666
Stejně jako statický NAT existuje statický překlad PAT v překladové tabulce NAT, jakmile nakonfigurujete příkaz statického PAT, a zůstává v překladové tabulce, dokud příkaz statického PAT neodstraníte.
Ciscozine#sh ip nat translations Pro Inside global Inside local Outside local Outside globaltcp 88.88.88.88:80 172.16.0.5:80 --- ---tcp 88.88.88.88:666 172.16.0.6:22 --- ---Ciscozine#
Pokud internetový klient odešle požadavek HTTP nebo připojení SSH (na portu tcp 666), v tabulce NAT bude:
Ciscozine#sh ip nat translations Pro Inside global Inside local Outside local Outside globaltcp 88.88.88.88:80 172.16.0.5:80 56.56.56.56:54686 56.56.56.56:54686tcp 88.88.88.88:80 172.16.0.5:80 --- ---tcp 88.88.88.88:666 172.16.0.6:22 56.56.56.56:33704 56.56.56.56:33704tcp 88.88.88.88:666 172.16.0.6:22 --- ---Ciscozine#
Příklad č. 4: PAT – přetížení NAT
Jak sdílet internetové připojení.
Definice ip nat inside:
Ciscozine(config)#interface fa0/0Ciscozine(config-if)#ip nat inside
Definice ip nat outside:
Ciscozine(config)#interface fa0/1Ciscozine(config-if)#ip nat outside
Definice, která síť bude přeložena:
Ciscozine(config)#ip access-list standard client-listCiscozine(config-std-nacl)#permit 172.16.0.0 0.0.0.255
Definice NAT Overload:
Ciscozine(config)#ip nat inside source list client-list interface fastethernet0/1 overload
Podobně jako u dynamického NAT neexistují překlady v tabulce NAT, dokud směrovač nepřijme provoz, který vyžaduje překlad:
Ciscozine#sh ip nat translationsCiscozine#
ale pokud některé pakety odpovídají ACL..
Ciscozine#show ip nat translationsPro Inside global Inside local Outside local Outside globaltcp 88.88.88.88:7921 172.16.0.2:7921 95.100.96.233:443 95.100.96.233:443tcp 88.88.88.88:8651 172.16.0.5:8651 173.194.44.18:80 173.194.44.18:80tcp 88.88.88.88:8652 172.16.0.111:8652 173.194.44.18:443 173.194.44.18:443tcp 88.88.88.88:8653 172.16.0.223:8653 173.194.70.84:443 173.194.70.84:443udp 88.88.88.88:64116 172.16.0.222:64116 8.8.8.8:53 8.8.8.8:53udp 88.88.88.88:64756 172.16.0.223:64756 8.8.4.4:53 8.8.4.4:53Ciscozine#
Existují další typy NAT/PAT?
Odpověď zní ANO! Jedním z hojně používaných typů NAT/PAT je ip nat outside source; tento příkaz umožňuje překládat zdrojovou adresu paketu, který vstupuje do „vnějšího“ rozhraní a opouští „vnitřní“ rozhraní.
Zjednodušeně řečeno, pokud vidíte první příklad č. 1
Příkaz:
ip nat outside source static 10.0.0.100 192.168.0.100
překládá adresu 10.0.0.100 na 192.168.0.100 , takže klient musí volat adresu 192.168.0 .100 ip adresu, aby kontaktoval web serveru, a ne 10.0.0.100.
Dalším particolárním typem nat je ip nat inside destination, který se používá v případě, že více vnitřních zařízení jsou identické servery se zrcadleným obsahem, které se zvenčí jeví jako jeden server vyvažující zátěž.
Definujete fond adres obsahující adresy skutečných hostitelů zakončený „typ rotary“, čímž jsou servery k dispozici způsobem round-robin. Přístupový seznam nyní povoluje IP adresu virtuálního hostitele, tj. to, co si vnější svět myslí, že je adresa hostitele. Virtuální hostitel je tedy 123.123.123.132, přičemž skuteční hostitelé jsou 172.16.0.2 až 10.
Částečná konfigurace
interface FastEthernet0/0ip address 172.16.0.0 255.255.255.0ip nat inside!interface FastEthernet0/1ip address 88.88.88.88 255.255.255.252ip nat outside!ip nat pool real-ip-server 172.16.0.2 172.16.0.10 prefix-length 24 type rotaryip nat inside destination list 1 pool real-ip-server!ip route 0.0.0.0 0.0.0.0 FastEthernet0/1!access-list 1 permit 123.123.123.123
Tento překlad nemá obousměrný charakter. K jeho provedení budete muset použít statický NAT jedna ku jedné. Funkcionality typu „ip nat inside source static“ lze dosáhnout pomocí výše uvedené konfigurace s použitím jedné adresy ve fondu NAT, ale to by fungovalo pouze pro provoz zvenčí dovnitř.
Kde použít nat inside/outside?
Typicky se „ip nat inside“ konfiguruje na rozhraních v místním prostředí, která nelze směrovat do internetu (typicky privátní rozsah IP adres), a „ip nat outside“ na rozhraní, které je připojeno k internetu.
Kdy směrovač provádí NAT?
Vnitřní na vnější:
- Jestliže IPSec, pak zkontrolujte vstupní seznam přístupů
- dešifrování – pro CET (Cisco Encryption Technology) nebo IPSec
- zkontrolujte vstupní seznam přístupů
- zkontrolujte vstupní omezení rychlosti
- vstupní účtování
- přesměrování do webové mezipaměti
- směrování politik
- směrování
- NAT inside to outside (lokální překlad na globální)
- crypto (kontrola mapy a označení pro šifrování)
- kontrola výstupního seznamu přístupů
- kontrola (Context-based Access Control (CBAC))
- TCP intercept
- encryption
- Queueing
Outside to Inside:
- Pokud IPSec, pak zkontrolovat vstupní seznam přístupů
- dešifrování – pro CET nebo IPSec
- zkontrolovat vstupní seznam přístupů
- zkontrolovat vstupní limity rychlosti
- vstupní účetnictví
- přesměrování do webové cache
- NAT outside to inside (global to local překlad)
- politika směrování
- směrování
- crypto (kontrola mapy a označení pro šifrování)
- kontrola výstupního seznamu přístupů
- kontrola CBAC
- TCP intercept
- šifrování
- Queueing
Některé užitečné příkazy:
- Pro zobrazení některých statistik o NAT: show ip nat statistics
- Pro zobrazení kompletního seznamu statických/dynamických položek NAT/PAT: show ip nat translations
- Pro vymazání dynamické položky NAT: clear ip na translation *
- Pro ladění NAT: debug ip nat
.