Překlad síťových adres
Network Address Translation (NAT, česky překlad síťových adres) je v počítačových sítích způsob úpravy síťového provozu procházejícícho přes router přepisem zdrojové nebo cílové IP adresy, případně i hlaviček protokolů vyšší vrstvy (např. číslo portu u TCP,UDP,ICMP Query ID u ICMP atd.). NAT může být implementován softwarově na běžném počítači (např. v jádře Linuxu pomocí iptables/netfilter) nebo může být realizován přímo ve firmware či hardware routeru.NAT se většinou používá pro přístup více počítačů z lokální sítě do Internetu prostřednictvím jediné veřejné IP adresy (viz gateway). NAT však znemožňuje přímou komunikaci mezi klienty (end–to–end spojení) a může snížit rychlost přenosu.
Druhy
síťového překladu adres
Source NAT
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".
Destination NAT
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 (NAT 1:N)
Maškaráda (dynamický NAT) je zřejmě nejčastěji používanou
variantou NATu. Dorazí-li na router z vnitřní sítě IP datagram, je mu změněna
zdrojová IP a tcp/udp port, paket je následně odeslán dále dle směrovací
tabulky. Změněný i původní port včetně původní IP je uchován v dynamické 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
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. Tato konfigurace bývá
řešením menších ISP pro poskytnutí veřejných IPv4 koncovým uživatelů za
carrier-grade NATem.
Carrier-grade NAT (CGN)
Související informace naleznete také v článku
Carrier-grade NAT.
Carrier-grade NAT (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.
Implementace
Ve světě Windows je to například program WinRoute od Kerio
Technologies Inc. Funkce je implementována i v samotných Windows (Windows 2000 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
Výhody
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í
Nevýhody
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é
NAT znemožňuje správnou funkcionalitu některých software
snižuje výdrž
baterie u mobilních zařízení
Obcházení problémů s NAT
Pro obcházení
problémů, které NAT způsobuje, jsou k dispozici různé techniky umožňující
(přímou) komunikaci mezi zařízeními za NAT – viz NAT traversal nebo Hole
punching. Protokol UPnP (anglicky Universal Plug and Play) umožňuje automatickou
konfiguraci přesměrování portů na routeru, avšak vyžaduje vysokou úroveň důvěry
mezi ovládající stanicí a routerem, což například v případě Carrier-grade NAT
není možné.
Bezpečnostní
rizika NAT
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ý.