Network address translation
Network Address Translation (NAT, česky překlad síťových adres, také Network Masquerading (síťová maškaráda), Native Address Translation (nativní překlad adres) nebo IP Masquerading(IP Maškaráda)) je způsob úpravy síťového provozu přes router přepisem výchozí a/nebo cílové IP adresy, často i změnu čísla TCP/UDP portu u průchozích IP paketů. K tomu patří i změna kontrolního součtu (u IP i TCP/UDP), aby změny byly brány v úvahu. NAT se většinou používá pro přístup více počítačů z lokální sítě na Internet pod jedinou veřejnou adresou (viz gateway). NAT ovšem může způsobit problémy v komunikaci mezi klienty a snížit rychlost přenosu.
Definice
Překlad síťových adres je funkce, která umožňuje překládání adres. Což znamená, že adresy z lokální sítě přeloží na jedinečnou adresu, která slouží pro vstup do jiné sítě (např. Internetu), adresu překládanou si uloží do tabulky pod náhodným portem, při odpovědi si v tabulce vyhledá port a pošle pakety na IP adresu přiřazenou k danému portu. NAT je vlastně jednoduchým proxy serverem. NAT může být softwarového typu (Nat32, Kerio Winroute firewall), nebo hardwarového typu (router s implementací nat).
Vlastní komunikace
Klient odešle požadavek na komunikaci, směrovač se podívá do tabulky a zjistí, zdali se jedná o adresu lokální, nebo adresu venkovní. V případě venkovní adresy si do tabulky uloží číslo náhodného portu, pod kterým bude vysílat a k němu si přiřadí IP adresu
Výhody
umožňuje připojit více počítačů na jednu veřejnou IP adresu - řeší se tak nedostatek přidělených veřejných IP adres.
zvyšuje bezpečnost počítačů připojených za NATem (potenciální útočník nezná opravdovou IP adresu)
Omezení
Nemáte skutečné připojení k Internetu a tak vám budou fungovat jen ty aplikace, kterým to nevadí. Pokud patříte mezi uživatele, kteří si myslí, že WWW a Internet jsou synonyma, pak si nejspíš překladu vůbec nevšimnete, v opačném případě můžete narazit na situace, kdy vám některé aplikace nebudou fungovat. U některých to půjde vyřešit konfigurací snadno, u jiných obtížně a funkčnost může zůstat omezená, u některých to nepůjde vůbec.
Implementace
Ve světě Windows je to například program WinRoute od Kerio Technologies Inc. Funkce je implementována i v samotných Windows (Win2K a novějších) Linuxová implementace je například uiptables.
Pro BSD je možné použít IP Filter a z něj pak ipnat.
Network address translation neboli překlad síťových adres, je funkce síťového routeru sloužící pro překládání adres z lokálních sítí na jedinečnou adresu, umožňující přístup do sítě jiné, například do Internetu.
Vznikl jako důsledek omezeného počtu veřejných IP adres (IPv4 má 32 bitů a část z nich je navíc rezervována pro speciální účely). Každý uživatel dnešního internetu nemůže mít adresu z vnějšího rozsahu, NAT umožňuje celou vnitřní síť ukrýt za adresu jedinou.
V typické konfiguraci používá lokální síť některý z rozsahů IP adres (192.168.x.x, 172.16.x.x-172.31.x.x a 10.x.x.x). Router má přidělenu soukromou adresu, ale také je spojen s Internetem, buď jedinou veřejnou adresou (overloaded NAT), nebo několika veřejnými adresami, přidělenými poskytovatelem připojení k Internetu (Internet Service Provider). Jakmile jde paket z lokální sítě do Internetu, je jeho zdrojová adresa (soukromá) přeložena na veřejnou. Router si uchovává základní data o každém aktivním spojení (adresu cíle, port). Když se vrátí odpověď na router, využije data získaná při odchozí fázi a určí kam na vnitřní síť je třeba odpověď zaslat. Pro systém na Internetu se jeví router jako zdroj i cíl komunikace.
Pakety posílané protokoly TCP a UDP obsahují kontrolní součet zahrnující i hlavičku s adresami, tudíž je třeba kromě přepsání IP adres také přepočítat kontrolní součet pro IP adresu novou.
NAT zvyšuje bezpečnost počítačů za ním připojených (útočník nezná strukturu sítě a nemůže se spojit přímo s konkrétním počítačem). NAT ovšem firewall nenahrazuje a existují způsoby, jak počítače za NATem napadnout.
Druhy síťového překladu adres
- Network Address Port Translation (NAPT, PAT, IP maškaráda), kdy dochází k mapování čísel portů. Několik strojů pak může sdílet jednu veřejnou IP adresu.
- NAT jedna ku jedné (basic NAT, static NAT), umožňující pouze překlad adres, nikoli mapování portů. Tato možnost vyžaduje IP adresu pro každé samostatné spojení.
Omezení NATu
Počítače za NATem mají jistá omezení, nemohou běžně provozovat některé Internetové protokoly. Například služby vyžadující příchozí TCP spojení z vnější sítě. Případem problémových protokolů jsou například FTP nebo SIP, které přenášejí informaci s adresou navíc uvnitř paketu. Při překladu adres se musí pakety zpracovávat celé a to může být velice náročné, proto tyto protokoly nebývají podporovány.
Problémy se dají vyřešit několika způsoby:
ALG (Application Layer Gateway), softwarový modul běžící na zařízení s NATem
Techniky tunelování NATu užitím protokolů jako jsou STUN (Simple Traversal UDP through NAT), ICE (Interactive Connectivity Establishment) nebo TURN (Traversal Using Relay NAT)
UPnP (Universal Plug and Play) nebo Bonjour (NAT-PMP) vyžadující kooperaci se zařízením s NAT
DNAT
DNAT je technika pro transparentní změnu cílové IP adresy paketu na cestě a pro vykonání opačné funkce pro jakékoliv odpovědi. Tuto transformaci může vykonat kterýkoliv router umístěný mezi dvěma koncovými body.
DNAT se obvykle používá při zveřejnění služby, umístěné v privátní síti, pro veřejně přístupnou IP adresu.
SNAT
Použití termínu SNAT je u každé softwarové firmy jiné. To znamená že každá firma má svou definici pro SNAT. Microsoft například používá tento název pro Bezpečný (Secure) NAT. Obecná definice je Zdrojový (Source) NAT, tedy protějšek Cílového NATu (DNAT).