Překlad síťové adresy - Network address translation

Překlad síťových adres mezi soukromou sítí a internetem

Překlad síťových adres ( NAT ) je způsob mapování prostoru IP adres do jiného změnou informací o síťové adrese v hlavičce IP paketů, když jsou pakety přenášeny přes zařízení pro směrování provozu . Tato technika byla původně použita k tomu, aby se vyhnula potřebě přiřadit novou adresu každému hostiteli při přesunu sítě nebo při výměně poskytovatele internetového připojení proti proudu , ale nemohl směrovat adresní prostor sítí. Stala se populárním a nezbytným nástrojem při ochraně globálního adresního prostoru tváří v tvář vyčerpání adres IPv4 . Jednu internetovou směrovatelnou adresu IP brány NAT lze použít pro celou soukromou síť .

Protože překlad síťových adres upravuje informace o IP adresách v paketech, implementace NAT se mohou lišit svým specifickým chováním v různých případech adresování a jejich vlivem na síťový provoz. Specifika chování NAT nejsou běžně dokumentována prodejci zařízení obsahujících implementace NAT.

Základní NAT

Nejjednodušší typ NAT poskytuje individuální překlad IP adres. RFC 2663 označuje tento typ NAT jako základní NAT ; také se mu říká individuální NAT . V tomto typu NAT se mění pouze IP adresy, kontrolní součet hlavičky IP a všechny kontrolní součty vyšší úrovně, které obsahují IP adresu. Základní NAT lze použít k propojení dvou IP sítí, které mají nekompatibilní adresování.

Jeden k mnoha NAT

Mapování síťové adresy

Většina translátorů síťových adres mapuje více soukromých hostitelů na jednu veřejně exponovanou IP adresu. V typické konfiguraci používá místní síť jednu z určených podsítí soukromé IP adresy (RFC 1918). Směrovač v této síti má soukromou adresu tohoto adresního prostoru. Směrovač je také připojen k internetu s veřejnou adresou, obvykle přiřazenou poskytovatelem internetových služeb . Jak provoz přechází z místní sítě na internet, zdrojová adresa v každém paketu je přeložena za běhu ze soukromé adresy na veřejnou adresu. Router sleduje základní data o každém aktivním připojení (zejména cílové adrese a portu ). Když se odpověď vrátí routeru, použije data sledování připojení, která uložila během odchozí fáze, k určení soukromé adresy ve vnitřní síti, na kterou má odpověď přeposlat.

Všechny IP pakety mají zdrojovou IP adresu a cílovou IP adresu. U paketů přecházejících ze soukromé sítě do veřejné sítě bude změněna jejich zdrojová adresa, zatímco u paketů procházejících z veřejné sítě zpět do soukromé sítě bude změněna jejich cílová adresa. Aby se předešlo nejasnostem v překladu odpovědí, jsou nutné další úpravy paketů. Velká část internetového provozu využívá protokol Transmission Control Protocol (TCP) nebo User Datagram Protocol (UDP). U těchto protokolů jsou čísla portů změněna tak, aby kombinace IP adresy (v záhlaví IP ) a čísla portu (v záhlaví transportní vrstvy ) na vráceném paketu mohla být jednoznačně mapována na odpovídající cíl soukromé sítě. RFC 2663 používá pro tento typ NAT termín síťová adresa a překlad portů (NAPT). Mezi další názvy patří překlad adres portů (PAT), IP maškaráda , přetížení NAT a NAT typu mnoho k jednomu . Toto je nejběžnější typ NAT a v běžném používání se stal synonymem pro výraz „NAT“.

Tato metoda umožňuje komunikaci prostřednictvím routeru pouze tehdy, když konverzace pochází ze soukromé sítě, protože počáteční přenos je tím, co stanoví požadované informace v překladových tabulkách. Webový prohlížeč v převlékl síti mohou například procházet webové stránky mimo, ale mimo webový prohlížeč nemůže procházet webové stránky hostované v rámci převlékl síti. Protokoly, které nejsou založeny na TCP a UDP, vyžadují jiné překladové techniky.

Jednou z dalších výhod one-to-many NAT je, že je praktickým řešením vyčerpání adres IPv4 . I velké sítě lze připojit k internetu pomocí jediné veřejné IP adresy.

Metody překladu

Síťová adresa a překlad portů mohou být implementovány několika způsoby. Některé aplikace, které používají informace o adrese IP, mohou potřebovat určit externí adresu překladače síťových adres. Toto je adresa, kterou zjišťují její komunikační kolegové ve vnější síti. Kromě toho může být nutné prozkoumat a kategorizovat typ používaného mapování, například když je požadováno nastavit přímou komunikační cestu mezi dvěma klienty, kteří jsou oba za samostatnými branami NAT.

Za tímto účelem RFC 3489 specifikoval v roce 2003 protokol nazvaný Simple Traversal of UDP over NAT ( STUN ). Klasifikoval implementace NAT jako full-cone NAT , (address) limited-cone NAT , port-limited cone NAT nebo symetrický NAT , a podle toho navrhl metodiku pro testování zařízení. Tyto postupy však byly od té doby zastaralé ze stavu standardů, protože metody jsou nedostatečné pro správné posouzení mnoha zařízení. RFC 5389 standardizoval nové metody v roce 2008 a zkratka STUN nyní představuje nový název specifikace: Session Traversal Utilities pro NAT .

Klasifikace implementace NAT
Full-cone NAT , také známý jako one-to-one NAT
  • Jakmile je interní adresa (iAddr: iPort) namapována na externí adresu (eAddr: ePort), všechny pakety z iAddr: iPort jsou odeslány prostřednictvím eAddr: ePort.
  • Jakýkoli externí hostitel může odesílat pakety na iAddr: iPort odesláním paketů na eAddr: ePort.
Full Cone NAT.svg
(Adresa)-omezený kužel NAT
  • Jakmile je interní adresa (iAddr: iPort) namapována na externí adresu (eAddr: ePort), všechny pakety z iAddr: iPort jsou odeslány prostřednictvím eAddr: ePort.
  • Externí hostitel ( hAddr: libovolný ) může odesílat pakety na iAddr: iPort odesíláním paketů na eAddr: ePort pouze v případě, že iAddr: iPort dříve odeslal paket na hAddr: any . „Libovolné“ znamená, že na čísle portu nezáleží.
Omezený kužel NAT.svg
Port cone NAT kužel Jako adresový kužel omezený NAT, ale omezení zahrnuje čísla portů.
  • Jakmile je interní adresa (iAddr: iPort) namapována na externí adresu (eAddr: ePort), všechny pakety z iAddr: iPort jsou odeslány prostřednictvím eAddr: ePort.
  • Externí hostitel ( hAddr: hPort ) může odesílat pakety na iAddr: iPort odesíláním paketů na eAddr: ePort pouze v případě, že iAddr: iPort dříve odeslal paket na hAddr: hPort.
Port Restricted Cone NAT.svg
Symetrický NAT
  • Každý požadavek ze stejné interní IP adresy a portu na konkrétní cílovou IP adresu a port je mapován na jedinečnou externí zdrojovou IP adresu a port; pokud stejný interní hostitel odešle paket dokonce se stejnou zdrojovou adresou a portem, ale na jiné místo určení, použije se jiné mapování.
  • Pouze externí hostitel, který obdrží paket od interního hostitele, může odeslat paket zpět.
Symetrický NAT.svg

Mnoho implementací NAT tyto typy kombinuje, a proto je lepší odkazovat na konkrétní individuální chování NAT místo použití terminologie Cone/Symmetric. RFC 4787 se pokouší zmírnit zmatek zavedením standardizované terminologie pro pozorované chování. Pro první odrážku v každém řádku výše uvedené tabulky by RFC charakterizovalo Full-Cone, Restricted-Cone a Port-Restricted Cone NAT jako mající mapování nezávislé na koncovém bodě , zatímco by charakterizovalo symetrický NAT jako adresový a mapování závislé na portu . Za druhé kulkou v každém řádku výše uvedené tabulky, RFC 4787 by také označit Full-cone NAT tak, že má Endpoint nezávislé filtrování , omezený-cone NAT tak, že má adresy závislé na filtrování , Port-restricted cone NAT tak, že má adresy a filtrování závislé na portu a symetrické NAT, které mají buď filtrování závislé na adrese, nebo filtrování závislé na adrese a portu . Mezi další klasifikace chování NAT uvedené v dokumentu RFC patří to, zda zachovávají porty, kdy a jak se aktualizují mapování, zda lze externí mapování použít interními hostiteli (tj. Jeho chování při vytváření vlasů ) a úroveň determinismu, které NAT vykazují při aplikaci všech těchto pravidla. Konkrétně většina NAT kombinuje symetrický NAT pro odchozí připojení se statickým mapováním portů , kde jsou příchozí pakety adresované na externí adresu a port přesměrovány na konkrétní interní adresu a port.

Typ překladu NAT a NAT, role zachování portu pro TCP

Problém s přechodem NAT nastává, když se vrstevníci za různými NATy snaží komunikovat. Jedním ze způsobů, jak tento problém vyřešit, je použít přesměrování portů . Dalším způsobem je použití různých technik procházení NAT. Nejoblíbenější technikou pro procházení TCP NAT je děrování TCP .

Děrování TCP vyžaduje, aby NAT dodržoval návrh zachování portu pro TCP. Pro danou odchozí komunikaci TCP se na obou stranách NAT používají stejná čísla portů. Zachování portu NAT pro odchozí připojení TCP je zásadní pro procházení TCP NAT, protože v rámci TCP může být jeden port použit pouze pro jednu komunikaci najednou, takže programy vážou různé TCP sokety na pomíjivé porty pro každou komunikaci TCP, což znemožňuje předpověď portu NAT pro TCP.

Na druhou stranu, pro UDP, NAT nepotřebují zachování portů. Ve skutečnosti může na stejném zdrojovém portu probíhat více komunikací UDP (každá s odlišným koncovým bodem ) a aplikace obvykle znovu používají stejný soket UDP k odesílání paketů na různé hostitele. Díky tomu je předpověď portu přímočará, protože je to stejný zdrojový port pro každý paket.

Uchování portů v NAT pro TCP navíc umožňuje protokolům P2P nabízet menší složitost a menší latenci, protože k objevení portu NAT není potřeba použít třetí stranu (jako STUN), protože samotná aplikace již port NAT zná.

Pokud se však dva interní hostitelé pokusí komunikovat se stejným externím hostitelem pomocí stejného čísla portu, NAT se může pokusit použít jinou externí IP adresu pro druhé připojení nebo může být nutné vzdát se zachování portu a přemapovat port.

V roce 2006 zhruba 70% klientů v sítích P2P používalo nějakou formu NAT.

Implementace

Navázání obousměrné komunikace

V obousměrném NAT lze relaci navázat jak z vnitřní, tak z vnější sféry.

Každý paket TCP a UDP obsahuje číslo zdrojového portu a číslo cílového portu. Každý z těchto paketů je zapouzdřen v IP paketu, jehož hlavička IP obsahuje zdrojovou IP adresu a cílovou IP adresu. Trojnásobné číslo IP adresy/protokolu/portu definuje přidružení k síťovému soketu .

U veřejně přístupných služeb, jako jsou webové a poštovní servery, je důležité číslo portu. Například port 80 se připojuje pomocí soketu k softwaru webového serveru a port 25 k démonu SMTP poštovního serveru . Důležitá je také IP adresa veřejného serveru, která je v globální jedinečnosti podobná poštovní adrese nebo telefonnímu číslu. Všichni hostitelé, kteří chtějí úspěšně komunikovat, musí správně znát IP adresu i číslo portu.

Soukromé IP adresy popsané v RFC 1918 jsou použitelné pouze v soukromých sítích, které nejsou přímo připojeny k internetu. Porty jsou koncovými body komunikace jedinečnými pro tohoto hostitele, takže spojení prostřednictvím zařízení NAT je udržováno kombinovaným mapováním portu a adresy IP. Soukromá adresa uvnitř NAT je mapována na externí veřejnou adresu. Překlad adres portů (PAT) řeší konflikty, ke kterým dochází, když více hostitelů používá stejné číslo zdrojového portu k navázání různých externích připojení současně.

Analogie rozšíření telefonního čísla

Zařízení NAT je podobné telefonnímu systému v kanceláři, která má jedno veřejné telefonní číslo a několik poboček. Zdá se, že odchozí telefonní hovory z kanceláře pocházejí ze stejného telefonního čísla. Příchozí hovor, který neurčuje příponu, však nelze automaticky přesměrovat na jednotlivce uvnitř kanceláře. V tomto scénáři je kancelář privátní LAN, hlavní telefonní číslo je veřejná IP adresa a jednotlivá rozšíření jsou jedinečná čísla portů.

Proces překladu

U NAT veškerá komunikace odesílaná externím hostitelům ve skutečnosti obsahuje externí IP adresu a informace o portu zařízení NAT namísto interních IP adres hostitele nebo čísel portů. NAT překládá pouze IP adresy a porty svých interních hostitelů, přičemž skrývá skutečný koncový bod interního hostitele v soukromé síti.

Když počítač v soukromé (interní) síti odešle IP paket do externí sítě, zařízení NAT nahradí interní zdrojovou IP adresu v záhlaví paketu externí IP adresou zařízení NAT. PAT pak může přiřadit připojení číslo portu ze skupiny dostupných portů, přičemž toto číslo portu vloží do pole zdrojového portu. Paket je pak předán do externí sítě. Zařízení NAT poté provede záznam do překladové tabulky obsahující interní IP adresu, původní zdrojový port a přeložený zdrojový port. Následné pakety ze stejné interní zdrojové IP adresy a čísla portu jsou přeloženy na stejnou externí zdrojovou IP adresu a číslo portu. Počítač přijímající paket, který prošel NAT, naváže spojení s portem a adresou IP uvedenou v pozměněném paketu bez ohledu na to, že se zadávaná adresa překládá.

Po přijetí paketu z externí sítě prohledá zařízení NAT překladovou tabulku podle cílového portu v záhlaví paketu. Pokud je nalezena shoda, cílová IP adresa a číslo portu budou nahrazeny hodnotami nalezenými v tabulce a paket bude předán do vnitřní sítě. V opačném případě, pokud číslo cílového portu příchozího paketu není v překladové tabulce nalezeno, paket je zahozen nebo odmítnut, protože zařízení PAT neví, kam ho odeslat.

Viditelnost provozu

Operace NAT je obvykle transparentní pro interní i externí hostitele. Zařízení NAT může fungovat jako výchozí brána pro interního hostitele, který si obvykle uvědomuje skutečnou adresu IP a port TCP nebo UDP externího hostitele. Externí hostitel však zná pouze veřejnou IP adresu zařízení NAT a konkrétní port, který se používá ke komunikaci jménem konkrétního interního hostitele.

Aplikace

Směrování
K omezení překrývání IP adres lze použít překlad síťové adresy. K překrývání adres dochází, když se hostitelé v různých sítích se stejným IP adresním prostorem pokusí dosáhnout stejného cílového hostitele. Nejčastěji se jedná o nesprávnou konfiguraci a může to být důsledkem sloučení dvou sítí nebo podsítí, zejména při použití adresování soukromé sítě RFC 1918 . Cílový hostitel zaznamenává provoz zjevně přicházející ze stejné sítě a mezilehlé směrovače nemají způsob, jak určit, kam má být odeslán provoz s odpověďmi. Řešením je buď přečíslování, které eliminuje překrývání, nebo překlad síťových adres.
Vyrovnávání zátěže
V aplikacích typu klient – ​​server předávají nástroje pro vyrovnávání zatížení požadavky klientů na sadu serverových počítačů za účelem správy pracovního zatížení každého serveru. K mapování reprezentativní IP adresy klastru serveru na konkrétní hostitele, kteří obsluhují požadavek, lze použít překlad síťové adresy.

Související techniky

IEEE Reverse Address and Port Translation (RAPT nebo RAT) umožňuje hostiteli, jehož skutečná IP adresa se čas od času mění, zůstat dosažitelný jako server prostřednictvím pevné domácí IP adresy. Implementace Cisco RAPT přetěžuje PAT nebo NAT a mapuje více soukromých IP adres na jednu veřejnou IP adresu. Na jednu adresu lze namapovat více adres, protože každá soukromá adresa je sledována číslem portu. PAT používá k rozlišení překladů jedinečná čísla zdrojových portů na vnitřní globální IP adrese. PAT se pokusí zachovat původní zdrojový port. Pokud je tento zdrojový port již použit, PAT přiřadí první dostupné číslo portu od začátku příslušné skupiny portů 0–511, 512–1023 nebo 1024–65535. Pokud již nejsou k dispozici žádné další porty a je nakonfigurováno více než jedna externí IP adresa, PAT se přesune na další IP adresu a pokusí se znovu přidělit původní zdrojový port. Tento proces pokračuje, dokud mu nedojdou dostupné porty a externí IP adresy.

Mapování adresy a portu je návrh společnosti Cisco, který kombinuje překlad adresy plus portu s tunelováním paketů IPv4 přes interní síť IPv6 poskytovatele ISP . Ve skutečnosti je to (téměř) bezstavová alternativa k NAT a DS-Lite na úrovni dopravce, která plně převádí funkci překladu adres /portů IPv4 (a tedy zachování stavu NAT) zcela do implementace stávajícího zařízení NAT v prostorách zákazníka . Tím se zabrání problémům s NAT444 a stavovým stavem NAT na úrovni nosných a také poskytuje přechodový mechanismus pro nasazení nativního IPv6 současně s velmi malou přidanou složitostí.

Problémy a omezení

Hostitelé za routery s povoleným NAT nemají end-to-end konektivitu a nemohou se účastnit některých internetových protokolů. Služby, které vyžadují zahájení připojení TCP z vnější sítě nebo které používají bezstavové protokoly, jako jsou ty využívající UDP , mohou být narušeny. Pokud router NAT nevyvíjí specifické úsilí na podporu takových protokolů, příchozí pakety nemohou dosáhnout svého cíle. Některé protokoly mohou pojmout jednu instanci NAT mezi zúčastněnými hostiteli ( například FTP „pasivního režimu“ ), někdy s pomocí brány na úrovni aplikace (viz níže), ale selhávají, když jsou oba systémy odděleny od internetu pomocí NAT. Použití NAT také komplikuje protokoly tunelování, jako je IPsec, protože NAT upravuje hodnoty v hlavičkách, které narušují kontroly integrity prováděné protokolem IPsec a jinými tunelovacími protokoly.

Konektivita typu end-to-end byla základním principem internetu, podporovaným například Radou pro internetovou architekturu . Aktuální internetové architektonické dokumenty poznamenávají, že NAT je porušením principu end-to-end , ale že NAT má při pečlivém návrhu platnou roli. Existuje podstatně více starostí s používáním IPv6 NAT a mnoho architektů IPv6 věří, že IPv6 byl určen k odstranění potřeby NAT.

Implementaci, která sleduje pouze porty, lze rychle vyčerpat interními aplikacemi, které používají více souběžných připojení (například požadavek HTTP na webovou stránku s mnoha vloženými objekty). Tento problém lze zmírnit sledováním cílové IP adresy kromě portu (tedy sdílení jednoho místního portu s mnoha vzdálenými hostiteli) na úkor složitosti implementace a zdrojů CPU/paměti překladového zařízení.

Protože jsou všechny interní adresy skryté za jednou veřejně přístupnou adresou, není možné, aby externí hostitelé navázali připojení ke konkrétnímu internímu hostiteli bez speciální konfigurace na bráně firewall, aby přesměrovali připojení na konkrétní port. Aplikace, jako je VOIP , videokonference a další aplikace typu peer-to-peer, musí ke svému fungování používat techniky procházení NAT .

Fragmentace a kontrolní součty

Pure NAT, pracující pouze na IP, může, ale nemusí správně analyzovat protokoly, které se zcela zabývají informacemi IP, jako je ICMP , v závislosti na tom, zda je užitečné zatížení interpretováno hostitelem uvnitř nebo vně překladu. Jakmile se prochází zásobník protokolů, dokonce i s takovými základními protokoly, jako jsou TCP a UDP , se protokoly zlomí, pokud NAT neprovede akci mimo síťovou vrstvu.

IP pakety mají v každém záhlaví paketu kontrolní součet, který poskytuje detekci chyb pouze pro záhlaví. IP datagramy se mohou fragmentovat a je nutné, aby NAT tyto fragmenty znovu sestavil, aby umožnil správný přepočet kontrolních součtů vyšší úrovně a správné sledování, které pakety patří ke kterému připojení.

Hlavní protokoly transportní vrstvy, TCP a UDP, mají kontrolní součet, který pokrývá všechna data, která nesou, stejně jako záhlaví TCP nebo UDP, plus pseudo-záhlaví, které obsahuje zdrojovou a cílovou IP adresu paketu nesoucího TCP nebo UDP hlavička. Aby původní NAT úspěšně prošel TCP nebo UDP, musí znovu vypočítat kontrolní součet záhlaví TCP nebo UDP na základě přeložených IP adres, nikoli původních, a tento kontrolní součet vložit do záhlaví TCP nebo UDP prvního paketu fragmentované sady paketů. Přijímající NAT musí znovu vypočítat kontrolní součet IP na každém paketu, který předá cílovému hostiteli, a také rozpoznat a znovu vypočítat záhlaví TCP nebo UDP pomocí přeložených adres a pseudohlavičky. Nejde o zcela vyřešený problém. Jedním z řešení je, aby přijímající NAT znovu sestavil celý segment a poté znovu vypočítal kontrolní součet vypočítaný napříč všemi pakety.

Počáteční hostitel může provést vyhledávání MTU cesty, aby určil velikost paketu, který lze přenášet bez fragmentace, a poté v příslušném poli záhlaví paketu nastavil bit Don't fragment (DF). Toto je samozřejmě pouze jednosměrné řešení, protože odpovídající hostitel může odesílat pakety jakékoli velikosti, které mohou být fragmentovány před dosažením NAT.

DNAT

Překlad adres cílové sítě (DNAT) je technika pro transparentní změnu cílové IP adresy koncového paketu a provádění inverzní funkce pro všechny odpovědi. Tuto transformaci paketu může provést jakýkoli směrovač umístěný mezi dvěma koncovými body.

DNAT se běžně používá k publikování služby umístěné v soukromé síti na veřejně přístupné adrese IP. Toto použití DNAT se také nazývá přesměrování portů nebo DMZ při použití na celém serveru , který je vystaven síti WAN a stává se analogickým s nechráněnou vojenskou demilitarizovanou zónou (DMZ).

SNAT

Význam pojmu SNAT se liší podle dodavatele. Mnoho prodejců má vlastní definice pro SNAT :

  • source NAT je běžné rozšíření, jako protějšek cílového NAT ( DNAT )
  • stavový NAT používá společnost Cisco Systems
  • WatchGuard používá statický NAT
  • zabezpečený NAT používají sítě F5 a společnost Microsoft (pokud jde o server ISA )

Překlad zabezpečené síťové adresy (SNAT) společnosti Microsoft je součástí serveru Microsoft Internet Security and Acceleration Server a je rozšířením ovladače NAT integrovaného do systému Microsoft Windows Server . Poskytuje sledování a filtrování připojení pro další síťová připojení potřebná pro protokoly FTP , ICMP , H.323 a PPTP a také možnost konfigurovat transparentní proxy server HTTP .

Dynamický překlad síťových adres

Jak funguje dynamický NAT.

Dynamický NAT, stejně jako statický NAT, není v menších sítích běžný, ale nachází se ve větších korporacích se složitými sítěmi. Dynamický NAT se liší od statického NAT v tom, že kde statický NAT poskytuje interní mapování veřejné statické IP adresy jedna k jedné, dynamický NAT obvykle používá skupinu dostupných veřejných IP adres.

NAT hairpinning

NAT hairpinning , také známý jako NAT loopback nebo NAT reflexe , je funkce v mnoha spotřebitelských směrovačích, která umožňuje přístup ke službě prostřednictvím veřejné IP adresy z místní sítě. To eliminuje potřebu použití samostatného rozlišení názvu domény pro hostitele uvnitř sítě než pro veřejnou síť pro web.

Následující příklad popisuje příklad sítě:

  • Veřejná adresa: 203.0.113.1 . Toto je adresa rozhraní WAN na routeru.
  • Interní adresa routeru: 192.168.1.1
  • Adresa serveru: 192.168.1.2
  • Adresa místního počítače: 192.168.1.100

Pokud je paket odeslán počítačem na veřejnou adresu v 192.168.1.100 , paket bude normálně směrován na výchozí bránu (router), pokud není ve směrovacích tabulkách počítače nastavena explicitní trasa . Směrovač s funkcí zpětné smyčky NAT detekuje, že 203.0.113.1 je adresa jeho rozhraní WAN, a zachází s paketem, jako by přicházel z tohoto rozhraní. Určuje cíl pro tento paket na základě pravidel DNAT (port forwarding) pro cíl. Pokud byla data odeslána na port 80 a pro port 80 směrovaný na 192.168.1.2 existuje pravidlo DNAT , pak hostitel na dané adrese přijme paket.

Pokud není k dispozici žádné platné pravidlo DNAT, router paket zahodí. ICMP Cíl nedostupný Odpověď může být odeslána. Pokud existovala nějaká pravidla DNAT, překlad adres je stále účinný; router stále přepisuje zdrojovou IP adresu v paketu. Místní počítač ( 192.168.1.100 ) odešle paket od 192.168.1.100 , ale server ( 192.168.1.2 ) jej přijme od 203.0.113.1 . Když server odpoví, postup je stejný jako u externího odesílatele. Obousměrná komunikace mezi hostiteli v síti LAN je tedy možná prostřednictvím veřejné IP adresy.

NAT v IPv6

V IPv6 se překlad síťových adres běžně nepoužívá , protože jedním z cílů návrhu IPv6 je obnovit síťové připojení typu end-to-end. Zpětná smyčka NAT není běžně nutná. Přestože je to stále možné, velký adresovací prostor IPv6 odstraňuje potřebu šetřit adresy a každému zařízení může být přidělena jedinečná globálně směrovatelná adresa. To znamená, že podobných jedinečných výsledků lze dosáhnout použitím jedinečných místních adres v kombinaci s překladem předpony sítě .

Aplikace ovlivněné NAT

Některé protokoly aplikační vrstvy (například FTP a SIP ) odesílají v rámci svých dat aplikace explicitní síťové adresy. FTP v aktivním režimu například používá samostatná připojení pro řízení provozu (příkazy) a pro datový provoz (obsah souboru). Při požadavku na přenos souboru hostitel, který požadavek zadá, identifikuje odpovídající datové připojení podle adres jeho síťové vrstvy a transportní vrstvy . Pokud hostitel zadávající požadavek leží za jednoduchým firewallem NAT, překlad adresy IP a/nebo čísla portu TCP způsobí, že informace přijaté serverem budou neplatné. Protokol SIP (Session Initiation Protocol) ovládá mnoho volání VoIP ( Voice over IP ) a má stejný problém. SIP a SDP mohou používat více portů k nastavení připojení a přenosu hlasového proudu prostřednictvím RTP . IP adresy a čísla portů jsou zakódovány v datech užitečného zatížení a musí být známy před procházením NAT. Bez speciálních technik, jako je například STUN , je chování NAT nepředvídatelné a komunikace může selhat.

Software nebo hardware Application Layer Gateway (ALG) může tyto problémy opravit. Softwarový modul ALG spuštěný na zařízení s bránou firewall NAT aktualizuje veškerá data užitečného zatížení zneplatněná překladem adres. ALG musí rozumět protokolu vyšší vrstvy, který potřebují opravit, a proto každý protokol s tímto problémem vyžaduje samostatný ALG. Například v mnoha systémech Linux existují moduly jádra nazývané trackery připojení, které slouží k implementaci ALG. ALG však nefunguje, pokud je řídicí kanál šifrován (např. FTPS ).

Dalším možným řešením tohoto problému je použití technik procházení NAT pomocí protokolů, jako je STUN nebo ICE , nebo proprietárních přístupů v řadiči hranic relace . Přechod NAT je možný v aplikacích založených na TCP i UDP, ale technika založená na UDP je jednodušší, lépe pochopitelná a kompatibilnější se staršími NAT. V obou případech musí být protokol na vysoké úrovni navržen s ohledem na traversal NAT a nefunguje spolehlivě napříč symetrickými NAT nebo jinými špatně chovanými staršími NAT.

Dalšími možnostmi jsou UPnP Internet Gateway Device Protocol , NAT-PMP (NAT Port Mapping Protocol) nebo Port Control Protocol (PCP), ale tyto vyžadují zařízení NAT k implementaci tohoto protokolu.

Většina tradičních protokolů klient -server (FTP je hlavní výjimkou) však neposílá kontaktní informace vrstvy 3, a proto nevyžadují žádné speciální zpracování NAT. Ve skutečnosti je vyhýbání se komplikacím NAT prakticky požadavkem při navrhování nových protokolů vyšších vrstev dnes (např. Použití SFTP místo FTP).

NAT může také způsobit problémy tam, kde je aplikováno šifrování IPsec, a v případech, kdy je za NAT umístěno více zařízení, jako jsou telefony SIP . Telefony, které šifrují jejich signalizaci pomocí IPsec, zapouzdřují informace o portu v šifrovaném paketu, což znamená, že zařízení NA (P) T nemají přístup k portu a jeho překlad. V těchto případech se zařízení NA (P) T vrátí k jednoduché operaci NAT. To znamená, že veškerý provoz vracející se do NAT je mapován na jednoho klienta, což způsobí selhání služby více než jednomu klientovi „za“ NAT. Existuje několik řešení tohoto problému: jedním je použít TLS , který pracuje na úrovni 4 v referenčním modelu OSI, a proto nezakrývá číslo portu; další je zapouzdření IPsec do UDP - tím druhým je řešení zvolené společností TISPAN k dosažení bezpečného procházení NAT nebo NAT s podporou „IPsec Passthru“ .

Interactive Connectivity Establishment je technika procházení NAT, která nespoléhá na podporu ALG.

Zranitelnost protokolu DNS oznámená Danem Kaminskym 8. července 2008 je nepřímo ovlivněna mapováním portů NAT. Aby se zabránilo otravě mezipaměti DNS , je velmi žádoucí nepřekládat čísla zdrojových portů UDP odchozích požadavků DNS ze serveru DNS za firewallem, který implementuje NAT. Doporučeným řešením chyby zabezpečení DNS je přimět všechny servery DNS ukládající do mezipaměti používat randomizované zdrojové porty UDP. Pokud funkce NAT de-randomizuje zdrojové porty UDP, stane se server DNS zranitelným.

Příklady softwaru NAT

Viz také

Poznámky

Reference

externí odkazy