Network address translation

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

Network Address Translation (NAT, česky překlad síťových adres ) je v informačních technologiích způsob úpravy síťového provozu přes router přepisem zdrojové nebo cílové IP adresy, případně i hlaviček protokolů vyšší vrstvy (číslo portu u TCP[1], UDP[2], ICMP Query ID u ICMP [3], atd.) NAT může být implementován softwarově na běžném počítači, např. pomocí iptables/netfilter[4], nebo bývá realizován přímo ve firmware routeru. [5] 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), znemožňuje však přímou komunikaci mezi klienty a může snížit rychlost přenosu.[6]

Druhy síťového překladu adres[editovat | editovat zdroj]

Source NAT[editovat | editovat zdroj]

V IP datagramu se dle pravidla změní zdrojová IP, případně i zdrojový port u protokolů TCP/UDP. Výraz S-Nat je využíván některými firmami i k označení "secure NATu" [7].

Destination NAT[editovat | editovat zdroj]

V IP datagramu se dle pravidla změní cílová IP/cílový port TCP/UDP. D-NAT se často používá v tzv. captive portálech veřejných Wi-Fi hotspotů, nebo při zveřejnění služby, umístěné v privátní síti, pro veřejně přístupnou IP adresu.

Maškaráda[editovat | editovat zdroj]

Je nejčastěji používanou variantou NATu, dorazí-li na router z LAN IP datagram, je mu změněna zdrojová IP a tcp/udp port, paket je následně odeslán dále dle routovací tabulky. Změněný i původní port včetně původní IP je uchován v NAT tabulce. Příchozím paketům na vnějším rozhraní routeru je porovnáván cílový port oproti NAT tabulce, podle které je následně přepsána cílová adresa. Příkladem může být NAT v domácích routerech překládající adresy v rozsahu domácí privátní sítě na veřejnou adresu přidělenou poskytovatelem, nebo jiný privátní rozsah poskytovatele (v případě použití tzv. carrier-grade NATu)

NAT 1:1[editovat | editovat zdroj]

Adresy jsou překládány tak, že adresa, nebo dokonce jen služba v síti lokální má vyhrazenu adresu na vnějším rozhraní routeru. [8] Tato konfigurace bývá řešením menších ISP pro poskytutí veřejných IPv4 koncovým uživatelů za carrier-grade NATem. [9]

Carrier-grade NAT (CGN)[editovat | editovat zdroj]

CGN je topologie sítě, kdy provoz mezi koncovým zařízením a Internetem není překládán jen mezi IP rozsahem LAN domácí/firemní sítě a sítí poskytovatele, ale dochází ještě k dalšímu překládání IP v rámci vnitřní sítě poskytovatele. IANA vyhrazuje pro takové sítě zvláštní rozsah 100.64.0.0/10 [10]. Taková konfigurace bývá označována jako NAT444.[11]

Implementace[editovat | editovat zdroj]

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 u iptables.

Pro BSD je možné použít IP Filter a z něj pak ipnat.

Specifika provozu na sítích se síťovým překladem[editovat | editovat zdroj]

Výhody[editovat | editovat zdroj]

  • umožňuje připojit více počítačů na jednu veřejnou IP adresu, čímž se obchází nedostatek IPv4 adres
  • ztěžuje rozkrytí struktury sítě připojené za NATem, nicméně NAT sám o sobě nelze považovat za bezpečnostní opatření [12]

Nevýhody[editovat | editovat zdroj]

  • Zařízení za NATem nemají skutečné připojení k Internetu a není např. možné se snadno připojit k jinému zařízení za NATem
  • nemožnost blokování (greylisting) IP, za kterou jsou kromě zlomyslného uživatele nebo napadeného zařízení rovněž legitimní uživatelé [13]
  • NAT znemožňuje správnou funkcionalitu některých software [14]
  • snižuje výdrž baterie u mobilních zařízení [15]

Obcházení problémů s NAT[editovat | editovat zdroj]

NAT-T techniky (anglicky NAT traversal) je sada metod umožňujících komunikaci mezi zařízeními za NATem. [16]

UPnP (anglicky Universal Plug and Play) je protokol umožňující automatickou konfiguraci přesměrování portů na routeru. UPnP však vyžaduje vysokou úroveň přístupu na daný router, což je v případě např. CGN nemyslitelné.

Bezpečnostní rizika NAT[editovat | editovat zdroj]

Bezpečnostní díra DNS protokolu, kterou 8. července 2008 ohlásil Dan Kaminsky, byla nepřímo způsobena NAT mapováním portů. Aby se tomu zabránilo, tak je potřeba, aby se nepřekládala původní čísla UDP portů odchozích DNS požadavků ze serveru, který je za NATem. Doporučuje se, aby pomocné DNS servery využívaly náhodné porty. Když NAT způsobí, že porty nebudou náhodné, tak bude DNS server zranitelný.

Reference[editovat | editovat zdroj]

V tomto článku byl použit překlad textu z článku Network address translation na anglické Wikipedii.

  1. NAT Behavioral Requirements for TCP:https://tools.ietf.org/html/rfc5382
  2. Network Address Translation (NAT) Behavioral Requirements for Unicast UDP: https://tools.ietf.org/html/rfc4787
  3. NAT Behavioral Requirements for ICMP: https://tools.ietf.org/html/rfc5508
  4. Quick-Tip: Linux NAT in Four Steps using iptables: http://www.revsys.com/writings/quicktips/nat.html
  5. Cisco, Configuring NAT: http://www.cisco.com/c/en/us/td/docs/security/asa/asa80/configuration/guide/conf_gd/cfgnat.html
  6. Sarabjeet Singh Chugh, Impact of Network Address Translation on Router Performance: http://scholar.lib.vt.edu/theses/available/etd-10062003-170440/unrestricted/thesis.pdf
  7. https://msdn.microsoft.com/en-us/library/aa503380.aspx
  8. http://shorewall.net/NAT.htm
  9. Pravidla a informace pro přidělení a provozování veřejné IP adresy: http://www.drakknet.cz/useruploads/files/Pravidla%20VIP%201.0.pdf
  10. IANA-Reserved IPv4 Prefix for Shared Address Space: https://tools.ietf.org/html/rfc6598
  11. http://chrisgrundemann.com/index.php/2011/nat444-cgn-lsn-breaks/
  12. http://chrisgrundemann.com/index.php/2011/nat444-cgn-lsn-breaks/
  13. Issues with IP Address Sharing: http://tools.ietf.org/html/rfc6269
  14. Assessing the Impact of Carrier-Grade NAT on Network Applications: http://tools.ietf.org/html/rfc7021#page-17
  15. Issues with IP Address Sharing: http://tools.ietf.org/html/rfc6269#page-22
  16. http://www.abclinuxu.cz/slovnik/nat-t

Externí odkazy[editovat | editovat zdroj]

  • Přelez, přeskoč a podlez NAT
  • 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)