NAT (Network Address Translation) to mechanizm, który podmienia adresy IP w nagłówkach pakietów w locie — najczęściej po to, by całe stado urządzeń z prywatnymi adresami (np. 192.168.0.0/16 czy 10.0.0.0/8) mogło wychodzić do internetu przez jeden publiczny adres. Twój router robi to w tle setki razy na sekundę, a Ty nawet o tym nie wiesz.
Po co to komu
Publicznych adresów IPv4 jest skończona liczba (i dawno się skończyły). NAT pozwala podpiąć dziesiątki domowych urządzeń — laptopa, telefon, telewizor, lodówkę z aspiracjami — pod jeden adres od dostawcy. Przy okazji daje efekt uboczny w postaci podstawowej izolacji: ktoś z zewnątrz nie zobaczy bezpośrednio Twojego komputera, bo nie zna jego prywatnego adresu.
Najpopularniejsza odmiana to PAT (Port Address Translation), zwana też NAT overload lub masquerade. Router pamięta w tablicy translacji, że pakiet z 192.168.1.10:51000 wyszedł na świat jako publiczne_IP:40000 — i kiedy wraca odpowiedź, wie, komu ją oddać. Numer portu jest tu kluczem, który rozróżnia setki równoległych połączeń idących przez ten sam adres.
W praktyce
Na Linuksie z iptables klasyczny masquerade dla sieci domowej wygląda tak:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Tablicę aktywnych translacji podejrzysz przez conntrack -L albo cat /proc/net/nf_conntrack. Jeśli chcesz wpuścić ruch z zewnątrz na konkretny komputer (np. serwer gry), robisz port forwarding — czyli DNAT, statyczną regułę typu „wszystko na port 25565 przekieruj na 192.168.1.50„.
Na co uważać
Najczęstszy mit: NAT to firewall. Nie jest. To, że adresy są ukryte, utrudnia życie, ale nie zastępuje reguł filtrowania. Druga pułapka to CGNAT (Carrier-Grade NAT) u dostawcy — Twój router dostaje wtedy adres prywatny zamiast publicznego, więc port forwarding po prostu nie zadziała i żadne klikanie w panelu tego nie naprawi. Trzeci klasyk: gry i VoIP potrafią kapryszyć przez NAT, stąd całe protokoły obejściowe jak STUN, UPnP czy NAT hole punching.
W IPv6, gdzie adresów jest pod dostatkiem, NAT w wersji „oszczędzania adresów” w zasadzie znika — choć pojęcia translacji nadal się pojawiają.
Pojęcia powiązane
PAT, port forwarding (DNAT), CGNAT, prywatne adresy IP (RFC 1918), firewall, iptables/nftables, STUN i UPnP, IPv4 vs IPv6.