Typy NAT wyjaśnione: dlaczego twoje połączenie działa inaczej za routerem

Typy NAT - diagram pokazujący, jak router NAT obsługuje translację adresów sieciowych dla wielu urządzeń

Zrozumienie typów NAT to pierwszy krok do wyjaśnienia, dlaczego Twoje urządzenia czasem mają problemy z komunikacją przez Internet. Zerwane połączenie wideo, gra, która nie może dołączyć do lobby, albo aplikacja VoIP działająca bez zarzutu w domu, ale sprawiająca kłopoty w biurze - za wszystkimi tymi problemami może stać translacja adresów sieciowych. To fundamentalny mechanizm, który decyduje o tym, jak Twoje urządzenia łączą się z Internetem. Wiedza o tym, czym jest NAT, dlaczego istnieją różne jego typy i jakie ograniczenia każdy z nich niesie, może zaoszczędzić Ci godzin diagnostyki i pomóc podejmować lepsze decyzje dotyczące konfiguracji sieci.

Najważniejsze informacje:

  • Translacja adresów sieciowych (NAT) pozwala wielu urządzeniom współdzielić jeden publiczny adres IP, ale wprowadza ograniczenia połączeń, które różnią się w zależności od typu NAT.
  • Typy NAT - otwarty, umiarkowany i ścisły (lub Typ 1, 2 i 3 w nomenklaturze konsol) - bezpośrednio wpływają na połączenia peer-to-peer, gry sieciowe i komunikację w czasie rzeczywistym.
  • Podwójny NAT - dwa routery pracujące szeregowo - to częsta przyczyna niewyjaśnionych problemów z łącznością w sieciach domowych i małych firmach.
  • Dla każdego typu NAT istnieją konkretne rozwiązania: od włączenia UPnP, przez konfigurację DMZ, po zamówienie statycznego IP u dostawcy Internetu.

Czym jest translacja adresów sieciowych?

Każde urządzenie łączące się z Internetem potrzebuje adresu IP. Problem polega na tym, że globalna pula adresów IPv4 jest wyczerpana. RFC 1918 częściowo rozwiązało ten problem, definiując zakresy prywatnych adresów IP (takie jak 192.168.x.x czy 10.x.x.x), które można wielokrotnie używać wewnątrz dowolnej sieci lokalnej. Router NAT stoi na granicy między Twoją siecią prywatną a Internetem i tłumaczy prywatne adresy na jeden publiczny adres IP przydzielony przez dostawcę Internetu.

Kiedy Twój laptop wysyła żądanie do serwera WWW, router NAT przepisuje adres źródłowy z Twojego prywatnego IP (np. 192.168.1.50) na Twój publiczny adres IP przed przekazaniem pakietu. Gdy odpowiedź wraca, router odwraca tłumaczenie i dostarcza dane do właściwego urządzenia. Z perspektywy Internetu wszystkie urządzenia w Twojej sieci wyglądają jak jedna maszyna.

To eleganckie i praktyczne rozwiązanie, ale ma pewien efekt uboczny: niechciane połączenia przychodzące nie mają oczywistego celu. Router nie wie, które urządzenie wewnętrzne powinno odebrać pakiet, którego nikt nie żądał. Właśnie tę niejednoznaczność różne typy NAT rozwiązują na różne sposoby.

Router NAT tłumaczący prywatne adresy IP na jeden publiczny adres IP - translacja adresów sieciowych

Przegląd typów NAT

Nazewnictwo różni się nieco w zależności od tego, czy czytasz o konsolach do gier, czy o teorii sieci, ale zachowanie poszczególnych typów jest spójne. Oto jak główne typy NAT działają w praktyce.

Full Cone NAT (otwarty NAT / Typ 1)

Gdy urządzenie nawiązuje połączenie wychodzące, router tworzy mapowanie, które akceptuje dowolny pakiet przychodzący wysłany na ten publiczny adres IP i port - niezależnie od tego, kto go wysyła. To najbardziej permisywny typ. Połączenia peer-to-peer, gry wieloosobowe i aplikacje czasu rzeczywistego działają bez żadnych ograniczeń. Spotykany jest wtedy, gdy urządzenie jest podłączone bezpośrednio do modemu bez routera pośredniego lub gdy urządzenie zostało umieszczone w strefie DMZ routera.

Address-Restricted Cone NAT (umiarkowany NAT / Typ 2)

Router zezwala na pakiety przychodzące tylko z zewnętrznego adresu IP, z którym urządzenie wewnętrzne wcześniej nawiązało kontakt. Port zewnętrzny nie ma znaczenia. To najczęstszy typ NAT w routerach domowych i stanowi rozsądny kompromis między bezpieczeństwem a łącznością. Większość gier online i połączeń wideo działa tu bez problemów, choć niektóre scenariusze peer-to-peer wymagają dodatkowej negocjacji.

Port-Restricted Cone NAT

Pakiety przychodzące są akceptowane tylko wtedy, gdy pochodzą z dokładnie tego adresu IP i numeru portu, z którym urządzenie wewnętrzne wcześniej się kontaktowało. To bardziej restrykcyjne niż address-restricted NAT. Narzędzia do komunikacji w czasie rzeczywistym mogą mieć trudności, o ile nie korzystają z serwerów STUN lub TURN do przebicia się przez NAT.

Symmetric NAT (ścisły NAT / Typ 3)

Każde połączenie wychodzące otrzymuje unikalne mapowanie zewnętrznego portu, a pakiety przychodzące są akceptowane wyłącznie od dokładnego celu, z którym urządzenie wewnętrzne pierwotnie się kontaktowało. Dwa urządzenia za symmetric NAT nie mogą nawiązać bezpośredniego połączenia peer-to-peer. Ścisły NAT jest typowy dla firmowych zapór sieciowych i niektórych urządzeń klasy operatorskiej. Jest najbezpieczniejszy, ale najbardziej problematyczny dla aplikacji czasu rzeczywistego.

Typ NAT Nazwa konsolowa Reguła ruchu przychodzącego P2P / gry sieciowe
Full Cone Otwarty / Typ 1 Dowolne źródło Doskonały
Address-Restricted Cone Umiarkowany / Typ 2 Tylko znany adres IP Dobry
Port-Restricted Cone Umiarkowany / Typ 2 Znany adres IP + port Przeciętny
Symmetric Ścisły / Typ 3 Wyłącznie dokładny cel Słaby

Translacja adresów portów i jej rola

Translacja adresów portów (PAT) jest często używana zamiennie z NAT, ale warto rozróżnić te pojęcia. Podczas gdy podstawowy NAT mapuje jeden prywatny adres IP na jeden publiczny, PAT mapuje wiele prywatnych adresów IP na jeden publiczny, śledząc unikalne numery portów dla każdej sesji. Gdy Twój router obsługuje jednocześnie ruch z laptopa, telefonu i smart TV, to właśnie PAT wykonuje całą tę pracę.

PAT pozwala routerowi odróżnić strumień Netflix na telewizorze od sesji przeglądarki na laptopie, mimo że oba wyglądają jakby pochodziły z tego samego publicznego adresu IP. Każde połączenie wychodzące otrzymuje unikalny port źródłowy w tablicy translacji. Gdy odpowiedzi docierają, router dopasowuje port docelowy do właściwego urządzenia wewnętrznego.

Dlatego właśnie aplikacje korzystające z konkretnych numerów portów mogą przestać działać za routerem NAT. Jeśli dwa urządzenia próbują użyć portu źródłowego 5000, router musi przemapować jeden z nich - a jeśli aplikacja odbierająca oczekuje stałego portu, połączenie nie dochodzi do skutku. To częsty problem z VoIP opartym na protokole SIP oraz niektórymi starszymi protokołami peer-to-peer.

Problem podwójnego NAT

Podwójny NAT występuje wtedy, gdy dwa routery wykonują translację adresów szeregowo. Typowy scenariusz: dostawca Internetu dostarcza urządzenie łączące funkcje modemu i routera, które już wykonuje NAT. Następnie podłączasz do niego własny router, aby uzyskać lepsze pokrycie Wi-Fi lub większą kontrolę nad siecią. Teraz każde urządzenie w Twojej sieci przechodzi przez dwie warstwy NAT, zanim dotrze do Internetu.

Objawy są subtelne, ale frustrujące. Reguły przekierowania portów ustawione na wewnętrznym routerze nie działają, bo zewnętrzny router nie wie, że powinien kierować ruch do niego. UPnP może działać niestabilnie. Klienci VPN mogą mieć problem z nawiązaniem tunelu. Konsole do gier prawie zawsze będą raportować ścisły lub umiarkowany NAT, nawet po poprawnej konfiguracji wewnętrznego routera.

Podwójny NAT możesz potwierdzić, porównując adres IP WAN widoczny w panelu administracyjnym routera z Twoim rzeczywistym publicznym adresem IP. Jeśli różnią się i adres WAN należy do zakresu prywatnego (10.x.x.x, 172.16-31.x.x lub 192.168.x.x), jesteś za podwójnym NAT. Skorzystaj z naszego narzędzia do sprawdzania IP , aby znaleźć swój rzeczywisty publiczny adres IP i porównać go z adresem WAN podawanym przez router.

Najlepszym rozwiązaniem jest przełączenie urządzenia dostawcy Internetu w tryb bridge, co wyłącza jego funkcję NAT i sprawia, że translacją zajmuje się tylko Twój router. Jeśli dostawca nie zezwala na tryb bridge, możesz umieścić swój wewnętrzny router w strefie DMZ zewnętrznego routera, co efektywnie daje mu bezpośrednią ścieżkę do Internetu.

Praktyczny przykład: konsola do gier za routerem

Wyobraź sobie, że podłączasz PlayStation 5 do domowego routera. Adres WAN routera to 203.0.113.45 (prawdziwy publiczny adres IP od dostawcy Internetu). Konsola otrzymuje prywatny adres 192.168.1.10.

Gdy uruchamiasz grę wieloosobową, konsola łączy się z serwerem matchmakingu pod adresem 198.51.100.22 na porcie 3478. Router tworzy wpis PAT: wewnętrzny adres 192.168.1.10:49152 jest mapowany na zewnętrzny 203.0.113.45:49152. Serwer matchmakingu odpowiada i sesja działa. Na razie wszystko gra.

Teraz gra próbuje nawiązać bezpośrednie połączenie peer-to-peer do czatu głosowego z innym graczem. Konsola tego gracza wysyła pakiet bezpośrednio na adres 203.0.113.45:49153. Jeśli Twój router używa address-restricted cone NAT, sprawdza, czy 192.168.1.10 kiedykolwiek kontaktowało się z adresem IP drugiego gracza. Jeśli serwer matchmakingu ich ze sobą skojarzył - tak, i połączenie się udaje. Jeśli Twój router używa symmetric NAT, przypisał inny port zewnętrzny dla każdego przepływu wychodzącego, więc pakiet przychodzący trafia na port, o którym router nie ma żadnego wpisu, i zostaje odrzucony. Czat głosowy po cichu przestaje działać.

Rozwiązaniem jest tu włączenie UPnP (aby konsola mogła żądać spójnego mapowania portów), ustawienie statycznego prywatnego adresu IP dla konsoli i dodanie reguły przekierowania portów, albo umieszczenie konsoli w strefie DMZ. Każde podejście ma swoje kompromisy omówione w następnej sekcji.

Jak poprawić typ NAT - konkretne kroki

Właściwe rozwiązanie zależy od Twojej konkretnej konfiguracji i tego, ile bezpieczeństwa jesteś gotów poświęcić na rzecz lepszej łączności. Oto najbardziej praktyczne opcje, uszeregowane od najmniej do najbardziej inwazyjnych.

1. Włącz UPnP na routerze

Universal Plug and Play pozwala aplikacjom automatycznie żądać mapowań portów od routera. Większość routerów konsumenckich to obsługuje. Zaloguj się do panelu administracyjnego routera (zazwyczaj pod adresem 192.168.1.1 lub 192.168.0.1), znajdź ustawienie UPnP w sekcji Zaawansowane lub Ustawienia WAN i włącz je. Uruchom ponownie urządzenie, które potrzebuje lepszego NAT, i sprawdź wynik. UPnP jest wygodny, ale niesie ryzyko bezpieczeństwa w sieciach z niezaufanymi urządzeniami - używaj go tylko w zaufanych sieciach domowych.

2. Skonfiguruj statyczne przekierowanie portów

Przypisz statyczny prywatny adres IP do urządzenia, które chcesz poprawić (za pomocą rezerwacji DHCP w routerze), a następnie utwórz regułę przekierowania portów mapującą wymagany port zewnętrzny na wewnętrzny adres IP tego urządzenia. Jest to bezpieczniejsze niż UPnP, ponieważ sam kontrolujesz, które porty są otwarte. Sprawdź dokumentację konkretnej aplikacji, aby dowiedzieć się, których portów potrzebuje.

3. Rozwiąż problem podwójnego NAT

Jak opisano powyżej, przełącz urządzenie dostawcy Internetu w tryb bridge lub umieść swój router w strefie DMZ urządzenia dostawcy. Jeśli oceniasz narzędzia SaaS wymagające niezawodnej łączności sieciowej, podwójny NAT jest jedną z pierwszych rzeczy do wykluczenia, gdy produkt działa niestabilnie w różnych lokalizacjach biurowych. Możesz też sprawdzić, czy Twój adres IP nie trafił na żadną listę blokad w wyniku błędnej konfiguracji routingu - skorzystaj z naszego narzędzia do sprawdzania list blokad IP.

4. Zamów statyczny publiczny adres IP

Jeśli dostawca Internetu przydziela Ci dynamiczny adres IP, który okresowo się zmienia, spójne przekierowanie portów może przestać działać. Statyczny publiczny adres IP kosztuje niewielką miesięczną opłatę u większości dostawców, ale sprawia, że przekierowanie portów jest niezawodne i upraszcza konfigurację zdalnego dostępu. Dla firm korzystających z narzędzi SaaS wymagających przychodzących webhooków lub callbacków API, koszt ten jest często uzasadniony.

5. Rozważ IPv6

IPv6 całkowicie eliminuje potrzebę stosowania NAT, ponieważ każde urządzenie otrzymuje globalnie unikalny adres. IPv6 (RFC 8200) jest coraz szerzej wspierany przez dostawców Internetu i systemy operacyjne. Jeśli Twój dostawca oferuje IPv6, włączenie go na routerze może rozwiązać wiele problemów związanych z NAT w aplikacjach obsługujących sieć dual-stack. Sprawdź swoją aktualną wersję IP i łączność za pomocą naszego narzędzia do sprawdzania adresu IP.

6. Użyj VPN z obsługą NAT traversal

Niektóre protokoły VPN, w tym WireGuard, dobrze radzą sobie z NAT traversal i mogą zapewnić urządzeniom za ścisłym NAT bardziej otwartą ścieżkę połączenia. Jest to szczególnie przydatne dla pracowników zdalnych łączących się z siecią firmową z domu, gdzie NAT jest restrykcyjny. Pamiętaj, że dodanie VPN zwiększa opóźnienia, co ma znaczenie w aplikacjach czasu rzeczywistego. Dokumentacja WireGuard szczegółowo opisuje zachowanie NAT traversal.

Szybka wskazówka diagnostyczna: Jeśli podejrzewasz, że Twój adres IP powoduje problemy z łącznością wykraczające poza NAT, sprawdź, czy nie pojawia się na żadnych listach blokad opartych na DNS. Błędnie skonfigurowane routery i współdzielone adresy dostawców Internetu są czasem oznaczane jako podejrzane. Zapoznaj się z naszym przewodnikiem na temat usuwania adresu IP z listy blokad , gdzie znajdziesz instrukcję krok po kroku.

Podsumowanie

Typy NAT to nie tylko abstrakcyjne pojęcie sieciowe. Mają bezpośredni, mierzalny wpływ na to, czy Twoje aplikacje łączą się niezawodnie, jak działają usługi peer-to-peer i czy reguły przekierowania portów rzeczywiście przynoszą efekty. Rozumienie różnicy między full cone, address-restricted a symmetric NAT daje Ci konkretne narzędzie do diagnozowania problemów z połączeniem zamiast zgadywania. Sam scenariusz podwójnego NAT odpowiada za zaskakująco dużą liczbę zgłoszeń do pomocy technicznej w produktach SaaS wymagających połączeń przychodzących. Zacznij od powyższych kroków diagnostycznych, ustal, z jakim typem NAT i topologią masz do czynienia, i zastosuj celowane rozwiązanie zamiast losowo zmieniać ustawienia routera.

Narzędzie do sprawdzania adresu IP pokazujące publiczny adres IP i szczegóły połączenia

Sprawdź swój publiczny adres IP i szczegóły połączenia

Poznaj swój rzeczywisty publiczny adres IP, wykryj podwójny NAT i sprawdź, jak Twoja sieć prezentuje się w Internecie - wszystko w jednym darmowym narzędziu.

Wypróbuj nasze darmowe narzędzie →

Podstawowy NAT mapuje jeden prywatny adres IP na jeden publiczny adres IP. Translacja adresów portów (PAT) mapuje wiele prywatnych adresów IP na jeden publiczny adres IP, przypisując unikalne numery portów do każdej sesji. Większość routerów domowych używa PAT, dlatego wiele urządzeń może jednocześnie współdzielić jeden publiczny adres IP bez konfliktów.

Porównaj adres IP WAN widoczny w panelu administracyjnym routera ze swoim rzeczywistym publicznym adresem IP (sprawdź go za pomocą narzędzia do sprawdzania IP). Jeśli adres WAN routera należy do zakresu prywatnego (10.x.x.x, 172.16-31.x.x lub 192.168.x.x) zamiast być zgodny z Twoim publicznym adresem IP, jesteś za podwójnym NAT.

UPnP może zmienić ścisły NAT na umiarkowany lub otwarty, pozwalając aplikacjom automatycznie żądać mapowań portów. Działa to jednak tylko wtedy, gdy masz jedną warstwę NAT. Przy podwójnym NAT włączenie UPnP na wewnętrznym routerze nie pomoże, bo zewnętrzny router nadal blokuje niechciany ruch przychodzący.

Symmetric NAT przypisuje unikalny port zewnętrzny dla każdego odrębnego połączenia wychodzącego. Gdy zdalny host próbuje połączyć się z powrotem, używając zaobserwowanego portu, router nie ma pasującego wpisu i odrzuca pakiet. Dwa urządzenia za symmetric NAT nie są w stanie przewidzieć wzajemnych przypisań portów, co sprawia, że bezpośrednie połączenia peer-to-peer są niemożliwe bez serwera pośredniczącego.

Dla ruchu IPv6 - tak. IPv6 zapewnia każdemu urządzeniu globalnie unikalny adres, eliminując potrzebę translacji adresów. Jednak większość sieci nadal obsługuje ruch IPv4 równolegle z IPv6, więc problemy z NAT utrzymują się dla połączeń IPv4 do czasu pełnego przejścia Internetu na nowy protokół - co w większości środowisk zajmie jeszcze wiele lat.