NAT

Z Wiki UnArt Slavičín
Skočit na navigaciSkočit na vyhledávání

Network Address Translation (NAT,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 adresa, č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 následovníci) Linuxová implementace je například u iptables.

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í 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

Externí odkazy

  • RFC 4008 – Standards Track – Definitions of Managed Objects for Network Address Translators (NAT)
  • RFC 3022 – Traditional IP Network Address Translator (Traditional NAT)
  • RFC 1631 – Obsolete – The IP Network Address Translator (NAT)
  • RFC 3489 - STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)