NAT (Network Address Translation)
Kdy potřebujeme NAT?
Podobně jako u beztřídního směrování mezi doménami (CIDR) vznikl překlad adres NAT v prvé řadě proto, aby zpomalil vyčerpávání dostupného adresního prostoru IP. Dovoluje totiž reprezentovat mnoho privátních IP adres menším počtem veřejných IP adres. Poté se ukázalo, že překlad adres NAT je také užitečný při migracích a slučování sítí, sdílení zátěže serverů a vytváření "virtuálních serverů". V této kapitole si proto popíšeme základy fungování překladu adres NAT a běžně používanou terminologii. Překlad adres NAT skutečně omezuje mimořádný počet veřejných IP adres, které by podnikové sítě jinak vyžadovaly. Tato technologie přijde vhod i v situacích, kdy dochází ke sloučení dvou podniků s duplicitními schématy interního adresování. Překlad adres NAT pomáhá i tehdy, je-Ii nutné změnit poskytovatele služeb Internetu (lSP) a správce sítě se chce vyhnout komplikacím se změnami schématu interního adresování.
Překlad adres NAT se vyplatí využít v následujících případech:
• Potřebujete se připojit k Internetu a hostitelé nemají globálně jedinečné IP adresy. • Přejdete k novému poskytovateli služeb Internetu, který vyžaduje, abyste změnili číslování sítě. • Chcete sloučit dva intranety s duplicitními adresami.
Překlad adres NAT se obvykle používá u hraničního směrovače. Schéma je znázorněno na obrázku 1 1 .1.
Nyní si možná říkáte: "Překlad adres NAT je bezva. Je to ta nejskvělejší síťová hračka, kterou rozhodně musím mít." Raději se ale neukvapujte. Překlad adres NAT má i několik zásadních nevýhod. Abychom si rozuměli: Někdy představuje ideální řešení, ale musíte také vědět o jeho negativech. Přehled výhod i nevýhod použití překladu adres NAT naleznete v tabulce 1 1 .1.
Typy překladů adres NAT
V této sekci si vysvětlíme princip tří typů překladu adres NAT:
Statický NAT: Tento typ překladu adres NAT umožňuje mapování lokálních a globálních adres podle schématu 1: 1. Pamatujte, že statická verze překladu adres vyžaduje, aby měl každý hostitel v síti reálnou IP adresu v Internetu.
Dynamický NAT: Tato verze dovoluje mapovat neregistrovanou IP adresu na registrovanou IP adresu z příslušného fondu těchto adres. Oproti statickému NAT není nutné staticky konfigurovat směrovač, aby mapoval vnitřní adresu na vnější. Je ale potřeba mít k dispozici dostatek reálných využitelných IP adres pro každého uživatele, který bude odesílat pakety do Internetu nebo je přijímat.
Přetížení: Jedná se o nejoblíbenější typ konfigurace překladu adres NAT. Uvědomte si, že přetížení je v praxi formou dynamického NAT, které mapuje více neregistrovaných IP adres na jedinou registrovanou IP adresu (I:N) použitím více portů. Co je na tom tak mimořádného? Tento mechanismus se totiž rovněž označuje jako PAT
(Port Address Translation). Když totiž využij ete mechanismus PAT (přetížení NAT), můžete k Internetu připojit tisíce uživatelů pomocí pouze jediné globální IP adresy - docela efektní, že? Zcela vážně: přetížení NAT představuje hlavní důvod, proč v Internetu zatím nedošly platné IP adresy. Opravdu - to není vtip.
Poznámka Žádný strach, konfiguraci všech tří typu překladu adres NAT si ukážeme na konci této kapitoly.
Názvosloví NAT
Pojmy, které popisují adresy používané u překladu adres NAT, jsou docela jednoduché. Adresy používané po překladu adres NAT se označují jako globální adresy. Obvykle se jedná o veřejné adresy fungující v Internetu. Nezapomeňte však, že pokud se nepotřebujete připojit k Internetu, bez veřejných adres se obejdete.
Lokální jsou adresy, které se používají před překladem adres NAT. Vnitřní lokální adresa je tedy v praxi privátní adresa odesílajícího hostitele, který požaduje přístup k Internetu, zatímco vnější lokální adresa označuje adresu cílového hostitele. Druhá adresa je obvykle veřejná (webová adresa, poštovní server atd.) a slouží jako cíl paketu.
Vnitřní lokální adresa se po překladu nazývá vnitřní globální adresa a vnější globální adresa se změní na název cílového hostitele. V tabulce 1 1.2 naleznete kompletní přehled této terminologie a získáte jasnou představu o různých názvech, které se u překladu adres NAT používají.
V příkladu znázorněném na obrázku 1 1 .2 odešle hostitel 1 0. 1. l.l odchozí paket hraničnímu směrovači, který je nakonfigurován pro překlad adres NAT. Směrovač identifikuje IP adresu jako vnitřní lokální IP adresu určenou do vnější sítě, přeloží ji a zaznamená překlad do tabulky NAT.
Paket je odeslán na vnější rozhraní s novou přeloženou zdrojovou adresou. Externí hostitel vrátí paket cílovému hostiteli a směrovač NAT pomocí tabulky NAT přeloží vnitřní globální IP adresu zpět na vnitřní lokální IP adresu. Takto to funguje v nejjednodušším případě. Podívejme se na složitější konfiguraci s přetížením, které se také označuje jako mechanismus PAT (Port Address Translation). Princip fungování tohoto mechanismu je vysvětlen na obrázku 1 1.3.
Adresy všech vnitřních hostitelů se překládají na jedinou IP adresu - odtud termín přetížení (overloading). Opět je potřeba zdůraznit, že díky přetížení (mechanismu PAT) v Internetu zatím nebyly vyčerpány dostupné IP adresy. Znovu se podívejte na tabulku NAT na obrázku 1 1.3. Kromě vnitřní lokální IP adresy a vnější globální IP adresy se nyní objevují i čísla portů. Tato čísla portů pomáhají směrovači určit, který hostitel má přijmout zpětný provoz.
Lokální host se v tomto případě identifikuje podle čísla portu na transportní vrstvě. Pokud by bylo nutné zdrojové hostitele identifikovat pomocí IP adres, jednalo by se o statický NAT a adresy by brzy přestaly stačit. Mechanismus PAT umožňuje rozlišovat hostitele na transportní vrstvě a díky tomu může až 65 000 hostitelů (teoreticky) sdílet jednu reálnou IP adresu.
Konfigurace statického NAT
Příkaz ip nat inside source v předchozím výstupu směrovače určuje, které IP adresy se budou překládat. V uvedeném příkladu konfigurace nastaví příkaz ip nat insid source statický překlad mezi vnitřní lokální IP adresou 1 0.1.1.1 a vnější globální IP adresou 1 70.46.2.2.
Z další části konfigurace je patrné, že v rámci každého rozhraní je uveden příkaz ip nat. Příkaz ip nat inside označuje toto rozhraní jako vnitřní. Příkaz ip natouts i de definuje příslušné rozhraní jako vnější. Při pohledu zpět na příkaz ip nat inside source je zřejmé, že odkazuje na vnitřní rozhraní jako zdroj neboli počáteční bod překladu. Příkaz by bylo možné použít i ve tvaru ip nat outside source, který označuje, že zdrojem neboli počátečním bodem překladu bude rozhraní, které bylo nastaveno jako vnější.
Konfigurace dynamického NAT
Dynamické NAT znamená, že je k dispozici fond adres, který poskytuje reálné IP adresy skupině uživatelů vnitřní sítě. Nepoužívají se čísla portů, takže je potřeba mít reálnou IP adresu pro každého uživatele, který požaduje připojení mimo lokální síť. Následuje ukázkový výstup konfigurace dynamického NAT:
Příkaz ip nat inside source list 1 pool todd sděluje směrovači, aby přeložil IP adresy odpovídající příkazu acces s -list 1 na adresu, která se nachází ve fondu IP adres NAT s názvem todd. Přístupový seznam v tomto případě neslouží k povolování nebo blokování provozu, jako je tomu u filtrování provozu z bezpečnostních důvodů. Místo toho zde umožňuje vybrat nebo označit tzv. zajímavý provoz. Zajímavý provoz zjištěný na základě přístupového seznamu je načten do procesu NAT, který jej přeloží. Jedná se o běžné využití přístupových seznamů, které nejsou omezeny pouze na nudné blokování provozu na rozhraní.
Příkaz ip nat pool todd 1 70.1 6 8.2.2 1 92 . 1 6 8.2. 254 vytváří fond adres pro distribuci hostitelům, kteří požadují překlad adres NAT.
Konfigurace PAT (přetíženého NAT)
Poslední příklad dokládá konfiguraci přetížení vnitřní globální adresy. Jedná se o typickou aplikaci překladu adres NAT, se kterou se v současnosti setkáte. Statický či dynamický NAT se používá jen zřídka. Výjimku může představovat například statické mapování serveru. Následuje ukázkový výstup konfigurace PAT:
Jediný rozdíl mezi uvedenou konfigurací mechanismu PAT a předchozí konfigurací dynamického NAT naštěstí spočívá v tom, že se fond adres redukoval na jedinou IP adresu a na konci příkazu ip nat inside source se nachází klíčové slovo overload. Ve výpisu si všimněte, že jedna IP adresa ve fondu dostupných adres je IP adresa vnějšího rozhraní. To je ideální v případě, že konfigurujete přetížení NAT pro sebe v domácnosti nebo malé pobočce, která má od poskytovatele služeb Internetu k dispozici jen jedinou IP adresu. Pokud byste však měli po ruce další adresu (jako např. 1 70. 168.2.2), mohli byste ji uvést. To by mohlo být užitečné ve velmi velkých implementacích s tolika vnitřními uživateli, že by bylo nutné na vnějším rozhraní nastavit více než jednu přetíženou IP adresu.
Jednoduchá kontrola NAT
Jakmile nakonfigurujete používaný typ NAT (obvykle přetížení - PAT), potřebujete mít možnost konfiguraci ověřit. Chcete-li zobrazit základní informace o překladu IP adres, zadejte následující příkaz:
Router#show ip nat translation
Při pohledu na překlad IP adres NAT si můžete všimnout mnoha překladů z jednoho hostitele na stejného cílového hostitele. To je typické pro mnoho webových připojení.
Kromě toho lze konfiguraci překladu adres NAT zkontrolovat příkazem debug ip nat. výstup obsahuje odesílající adresu, překlad a cílovou adresu každého řádku ladění:
Router#debug ip nat
Jak je možné položky NAT z tabulky překladů vymazat? Použijte příkaz clear ip nat translation. Chcete-li z tabulky NAT odstranit všechny položky, uveďte na konec příkazu symbol hvězdičky (*).
Testování NAT a řešení problémů
Překlad adres NAT pomocí zařízení Cisco poskytuje rozsáhlé možnosti a to bez velkého úsilí, protože konfigurace jsou skutečně docela jednoduché. Samozřejmě, nic není dokonalé, takže setkáte-li se s nějakými potížemi, můžete vyhledat jejich nejčastější příčiny v následujícím seznamu:
• Zkontrolujte dynamické fondy - sdružují vhodný rozsah adres? • Zkontrolujte, zda se žádné dynamické fondy nepřekrývají. • Zkontrolujte, zda se nepřekrývají adresy použité ke statickému mapování s adresami v dynamických fondech. • Ověřte, zda přístupové seznamy obsahují správné adresy k překladu. • Zajistěte, aby nechyběly žádné potřebné adresy a aby naopak nebyly uvedeny adresy, které v seznamu být nemají. • Zkontrolujte, zda jsou správně určena vnitřní i vnější rozhraní.
Je potřeba mít na paměti, že nejčastější problémy s novou konfigurací NAT vůbec nesouvisejí s překladem adres NAT, ale obvykle se jedná o chybu směrování. Přesvědčete se tedy, zda vzhledem k tomu, že měníte zdrojovou nebo cílovou adresu v paketu, směrovač dokáže novou adresu po překladu zpracovat! Do tabulky NAT lze teoreticky umístit libovolný počet mapování. Kapacita tabulky však ve skutečnosti závisí na faktorech typu paměti a procesoru nebo hranicích oboru dostupných adres či portů. Počet možných položek je proto omezen. Každé mapování NAT spotřebuje asi 160 bajtů paměti. Někdy (avšak ne příliš často) je potřeba počet položek omezit kvůli výkonnostním hlediskům nebo systémovým zásadám. V těchto situacích vám pomůže příkaz ip nat translation max - entries.
Při řešení problémů je užitečný i příkaz s h ow ip nat stati sti es. Poskytuje souhrn konfigurace překladu adres NAT a uvádí počet aktivních typů překladů. Vyhodnocuje také počet úspěšných i neúspěšných přístupů k existujícímu mapování - při neúspěchu dochází k pokusu o vytvoření mapování. Příkaz také odhalí překlady, jejichž doba platnosti vypršela. Chcete-li zkontrolovat dynamické fondy, jejich typy, celkový počet dostupných adres, počet úspěšně a neúspěšně přidělených adres spolu s počtem provedených překladů, stačí zadat příkaz pool ( refeount).
Víte, že lze také z tabulky NAT ručně vymazat položky dynamického NAT? Tato funkce se velmi hodí v situacích, kdy se potřebujete zbavit určité chybné položky. Nemusíte přitom čekat, než vyprší její platnost. Ruční vymazání také oceníte v případě, že chcete kvůli změně konfigurace fondu adres vymazat celou tabulku NAT.
Měli byste také vědět, že software Cisco lOS nedovoluje měnit nebo odstraňovat fondy adres, jestliže jsou některé adresy z příslušného fondu mapovány v tabulce NAT. Příkaz cleair ip nat translations umožňuje rušit položky. Lze označit jedinou položku pomocí globální a lokální adresy a prostřednictvím překladů TCP a UDP (včetně portů), nebo jednoduše vymazat celou tabulku uvedením znaku hvězdičky (*). Uvědomte si však, že přitom odstraníte pouze dynamické položky, protože statické položky tento příkaz neodebírá.
Kromě toho je nutné zmínit, že všechny cílové adresy paketů patřící vnějším zařízením, které odpovídají libovolnému vnitřnímu zařízení, se označují jako lG adresy. To znamená, že počáteční mapování je potřeba uchovat v tabulce NAT, aby byly všechny pakety přicházející z konkrétního připojení překládány konzistentně. Ukládání položek do tabulky NAT také omezuje počet opakovaných vyhledávání, ke kterým by dochá
Jinými slovy: Když je položka poprvé uložena do tabulky NAT, začne odpočítávání časovače. Interval tohoto časovače se označuje jako doba platnosti překladu. Pokaždé, kdy je směrovačem přeložen paket pro danou položku, dojde k vynulování časovače. Pokud časovač vyprší, je položka bez dalších formalit odstraněna z tabulky NAT a dynamicky přidělené adresy jsou vráceny do fondu. Společnost Cisco používá výchozí časový limit překladu 86 400 sekund (24 hodin), ale tuto hodnotu můžete změnit příkazem ip nat translation timeout. Než přejdeme k sekci o konfiguraci a v praxi si uvedené příkazy vyzkoušíme, projděme si několik ukázek překladu adres NAT. Přitom si můžete ověřit, zda dokážete odvodit potřebnou konfiguraci. Nejdříve se podívejte na obrázek 1 1.4 a položte si dvě otázky: Kde byste v tomto návrhu implementovali překlad adres NAT a jaký typ NAT byste nakonfigurovali?
Na obrázku 1 1.4 by bylo vhodné konfiguraci NAT umístit na směrovač v ústředí a jednalo by se o dynamické NAT s přetížením (PAT). Jaký typ překladu adres NAT se používá v této ukázce?
ip nat pool todd - nat 170.168.10.10.170.1 68.1 0.20 netmask 255 . 255.255 .0
Výše uvedený příkaz používá dynamické NAT. Odpověď prozrazuje klíčové slovo poo 1 v příkazu. Kromě toho obsahuje fond více než jednu adresu, což znamená, že se pravděpodobně neuplatňuje mechanismus PAT. V následujícím příkladu na překlad adres NAT vyjdeme z obrázku 1 1.5 a pokusíme se určit potřebnou konfiguraci.
Příklad na obrázku 1 1 .5 znázorňuje hraniční směrovač, který je nutné nakonfigurovat pro překlad adres NAT. Směrovač umožní použít šest veřejných IP adres 1 92. 1 .2. 1 09 až 1 14. Ve vnitřní síti však máme 63 hostitelů, kteří pracují s privátními adresami od 192. 168. 1 0.65 do 1 26. Jaká bude konfigurace překladu adres NAT u hraničního směrovače?
Příkaz ip nat pocl Todd 1 92.1.2.109 1 92.1 .2. 109 netmask 255 . 255 . 255.2 48 nastaví název fondu Todd a vytvoří dynamický fond adres, aby mohl překlad adres NAT používat adresu 192. 1 .2. 1 09. Místo příkazu netma s k lze uvést výraz prefix -1 ength 29. (Určitě vás napadlo, že by se tato syntaxe hodila i u rozhraní směrovače, ale bohužel to není možné.) Druhá odpověď by poskytla úplně stejný výsledek, tj. jedinou vnitřní globální adresu 1 92. 1 .2.109, ale vypadá poněkud odlišně: ip nat pool Todd 102.1.2.105 1 92.1.2.1 10 netmask 255 . 25 5 . 255.2 48. Jedná se o plýtvání, protože druhá až šestá adresa by se uplatnily jen v případě konfliktu s číslem portu TCP.
Pokud nerozumíte druhému řádku s nastavením access -1 i s t, přečtěte si kapitolu 1 0, "Zabezpečení". Příkaz ip nat inside source list 1 pool Todd overload nastaví dynamický fond pro použití mechanismu PAT (Port Address Translation) na základě příkazu overload. Nezapomeňte na příslušná rozhraní přidat příkazy ip nat inside a ip nat outside.
Konfigurace NAT v datové síti
Nyní propojíme směrovač Corp se směrovačem R3 pomocí sítě 64. 1.1.4/30 a spojení FO/O sítě LAN u směrovače R3 pomocí sítě 64. 1.1 .8/30. Po aktivaci překladu adres NAT si následně ukážeme kontrolní příkazy, o kterých jsme se již v této kapitole vícekrát zmínili. Datová síť je znázorněna na obrázku 1 1 .6 a vnitřní lokální adresy, které se používají i na jiných místech knihy, shrnuje tabulka 11.3.
Obrázek 1 1 .6 samozřejmě představuje stejnou síť, se kterou jsme se již setkali, ale je zde několik rozdílů. Spojení mezi směrovači Corp a R3 nyní používá globální adresy PAT. Nemohou komunikovat proto, že jiná připojení směrovače Corp mají privátní IP adresy. (V praxi by ISP tyto adresy nepochybně zablokoval. Ukažme si tedy, jak zapojení zprovoznit.) Pamatujte, že je při použití překladu adres NAT označujeme jako "vnitřní lokální adresy", tzn. jedná se o zatím nepřeložené adresy. Poskytovatel připojení k Internetu blokuje adresní rozsahy IP. Jak postupovat? Nejdříve musíme nakonfigurovat překlad adres NAT u směrovače Corp.
Nyní je jasné, že je potřeba zajistit komunikaci ze všech sítí připojených ke směrovači Corp do všech sítí připojených ke směrovači R3 pomocí nové globální adresy 64.1.1 .5/30. Jistě souhlasíte, což je dobře. Pusťme se do toho:
V závěru výstupu je uveden fond. Vše vypadá dobře, takže můžeme přejít ke konfiguraci překladu adres NAT pomocí nástroje SDM.
Konfigurace NAT z nástroje SDM
K
Konfigurace překladu adres NAT pomocí nástroje SDM je mnohem snazší, než by asi čekal každý, kdo si zatím nepřečetl kapitolu 1 0. Stačí jen klepnout na položky Configure -+ NAT a spustí se praktický průvodce, který usnadňuje vytvoření pravidla překladu adres NAT. Hodně to připomíná vytvoření firewallu v kapitole 10 a podobně jako v kapitole 10 je průvodců více. Opět si můžete vybrat mezi základním a rozšířeným: Basíc NAT - tohoto průvodce zvolte v případě, že máte ve své důvěryhodné síti několik málo počítačů či hostitelů, které potřebujete připojit k Internetu. Průvodce vám pomůže vytvořit základní konfiguraci překladu adres NA T. Advanced NAT - máte-li ve vnitřní síti zónu DMZ nebo servery, ke kterým potřebují přistupovat uživatelé zvnějšku, rozhodně vyberte konfiguraci Advanced NAT. Jako první se objeví obrazovka Create NAT Configuration.
Shrnutí
Tato kapitola byla opravdu zábavná. Určitě to sami uznáte. Dozvěděli jste se mnoho informací o překladu adres NAT (Network Address Translation) a postup konfigurace statického a dynamického NAT a mechanismu PAT (Port Address Translation), který se také označuje jako přetížení NAT. Ukázali jsme si také způsob použití jednotlivých variant překladu adres NAT v síti a také postupy jejich konfigurace. Kromě toho jsme pro názornost použili stejnou datovou síť jako v ostatních kapitolách této knihy a přidali jsme do ní přetížení NAT (PAT). Prošli jsme si také několik příkazů pro kontrolu a řešení potíží a závěrem kapitoly jsme si předvedli, jak lze překlad adres NAT rychle a snadno konfigurovat nástrojem SDM.
Klíčové poznatky ke zkoušce
Seznamte se s pojmem NAT - možná vás to překvapí, protože jsme zatím nezmínili, že překlad adres NAT má i několik synonym. V oboru IT se označuje jako síťová maškaráda či IP maškaráda a někteří odpůrci zkratek rozepisují akronym NAT jako nativní překlad adres (Native Address Translation). Nezávisle na názvu se v zásadě vždy jedná o proces přepisu zdrojových a cílových adres IP paketů při jejich průchodu směrovačem nebo firewallem. Zaměřte se pouze na proces, ke kterému dochází, a pokuste se mu porozumět (tj. jeho podstatným aspektům).
Pamatujte si tři metody překladu adres NAT - tři metody se označují jako statický a dynamický NAT a přetížení, kterému se také říká mechanismus PAT (Port Address Translation).
Naučte se princip statického NAT - tento typ překladu adres NAT umožňuje mapování lokálních a globálních adres podle schématu 1: 1.
Naučte se princip dynamického NAT - tato verze dovoluje mapovat neregistrovanou IP adresu na registrovanou IP adresu z příslušného fondu těchto adres.
Seznamte se s principem přetížení - přetížení je v praxi formou dynamického NAT, které mapuje více neregistrovaných IP adres na jedinou registrovanou IP adresu (1 :N) použitím více portů. Označuje se rovněž jako PAT (Port Address Translation).