NAT i PAT

Translacja Adresów Sieciowych i Translacja Adresów Portów dla sieci prywatnych.

Brak Adresów w Internecie i Potrzeba „Recepcjonisty”

Jak się dowiedzieliśmy, system adresacji IPv4, z jego pulą ~4,3 miliarda adresów, nie został stworzony z myślą o eksplozji liczby urządzeń podłączonych do internetu, którą obserwujemy dzisiaj. Świat już dawno wyczerpał nowe adresy IPv4 do przydzielenia. Stworzyło to ogromny problem: jak miliardy nowych urządzeń w naszych domach i biurach mogą uzyskać dostęp do internetu, jeśli nie ma dla nich unikalnych adresów publicznych?

Wyobraź sobie duży biurowiec z tysiącami pracowników, z których każdy ma własny numer telefonu wewnętrznego (np. wew. 101, 245, 501). Firma ma jednak tylko jeden, publiczny numer telefonu, który zna świat zewnętrzny. Kiedy pracownik chce zadzwonić do klienta, nie używa swojego numeru wewnętrznego. Zamiast tego dzwoni przez recepcję, która łączy rozmowę, używając publicznego numeru firmy. Kiedy klient oddzwania, wybiera publiczny numer i prosi recepcjonistę o połączenie z konkretnym pracownikiem.

działa jak cyfrowy recepcjonista dla sieci. To technologia wbudowana w routery, która pozwala całej prywatnej sieci urządzeń (twoim domowym komputerom, telefonom, inteligentnym głośnikom) na dostęp do internetu przy użyciu jednego publicznego adresu IP dostarczonego przez Twojego dostawcę usług internetowych (ISP).

Prywatne vs. Publiczne Adresy IP: Dwa Światy

Aby zrozumieć NAT, kluczowe jest rozróżnienie dwóch typów adresów IPv4:

Prywatne Adresy IP

Są jak wewnętrzne numery telefonów w naszej biurowej analogii. Są zarezerwowane do użytku wewnątrz sieci prywatnej (jak Twoja domowa sieć Wi-Fi). Routery w publicznym internecie są skonfigurowane tak, aby ignorować i nigdy nie przekazywać pakietów z tych zakresów adresów. Oznacza to, że są one całkowicie odizolowane od świata zewnętrznego.

Bloki adresów zarezerwowane do użytku prywatnego (zdefiniowane w ) to:

  • 10.0.0.0 do 10.255.255.255 (10.0.0.0/8)
  • 172.16.0.0 do 172.31.255.255 (172.16.0.0/12)
  • 192.168.0.0 do 192.168.255.255 (192.168.0.0/16)

Publiczne Adresy IP

Są jak główny publiczny numer telefonu firmy. Publiczny adres IP to globalnie unikalny i rutowalny adres przydzielany przez ISP. To jest adres, który reszta internetu widzi, gdy odwiedzasz stronę internetową lub wysyłasz e-mail. Serwery, strony internetowe i każda usługa, która musi być bezpośrednio osiągalna z dowolnego miejsca w internecie, musi mieć publiczny adres IP.

Zadaniem NAT jest działanie jako most, tłumacząc adresy między światem prywatnym, wewnętrznym, a publicznym, zewnętrznym.

Rodzaje Translacji Adresów Sieciowych

Istnieją trzy główne sposoby implementacji NAT, z których każdy służy innemu celowi.

1. Statyczny NAT

Statyczny NAT tworzy stałe mapowanie jeden-do-jednego między prywatnym adresem IP a publicznym adresem IP.
Analogia: Działa to jak przydzielenie prezesowi firmy dedykowanej, bezpośredniej publicznej linii telefonicznej, która dzwoni bezpośrednio na jego biurko, omijając główną recepcję.

Zawsze, gdy pakiet jest wysyłany z urządzenia wewnętrznego (np. `192.168.1.50`), router zawsze tłumaczy jego źródłowy adres IP na ten sam publiczny adres IP (np. `212.77.98.9`). I odwrotnie, każdy ruch przychodzący z internetu na adres `212.77.98.9` jest zawsze przekazywany do `192.168.1.50`. Używa się go głównie do hostowania publicznych usług, takich jak serwer WWW lub poczty, na urządzeniu, które ma prywatny adres IP. Nie oszczędza on adresów, ponieważ wymaga jednego adresu publicznego na każde urządzenie wewnętrzne.

2. Dynamiczny NAT

Dynamiczny NAT mapuje pulę prywatnych adresów IP na pulę publicznych adresów IP na zasadzie "kto pierwszy, ten lepszy".
Analogia: Biuro ma niewielką liczbę publicznych linii telefonicznych (np. 5). Gdy którykolwiek ze 100 pracowników chce wykonać połączenie zewnętrzne, recepcjonista przydziela mu następną dostępną linię publiczną. Linia jest aktywna na czas rozmowy, a następnie wraca do puli, aby mógł z niej skorzystać ktoś inny.

W tym modelu organizacja ma grupę urządzeń wewnętrznych i mniejszą grupę (pulę) publicznych adresów IP. Gdy urządzenie wewnętrzne chce uzyskać dostęp do internetu, router NAT wybiera nieużywany adres IP z puli publicznej i tworzy tymczasowe mapowanie jeden-do-jednego. Mapowanie to jest przechowywane w tablicy translacji tylko na czas trwania sesji. Głównym ograniczeniem jest to, że liczba jednoczesnych połączeń z internetem jest ograniczona do liczby dostępnych publicznych adresów IP w puli. Jeśli wszystkie publiczne adresy IP są w użyciu, kolejne urządzenie wewnętrzne próbujące wyjść na zewnątrz będzie musiało czekać.

3. Translacja Adresów Portów (PAT) / Przeciążanie NAT

Jest to zdecydowanie najpopularniejsza forma NAT, używana praktycznie w każdym domowym i małym biurowym routerze. PAT pozwala wielu urządzeniom wewnętrznym na jednoczesne współdzielenie jednego publicznego adresu IP.
Analogia: Biuro ma tysiące pracowników, ale tylko jeden publiczny numer telefonu. Recepcjonista jest niezwykle uzdolniony. Gdy pracownik wykonuje połączenie wychodzące, recepcjonista notuje zarówno jego numer wewnętrzny, jak i przypisuje unikalny numer identyfikacyjny rozmowy. Gdy klient oddzwania, podaje ID rozmowy, a recepcjonista natychmiast wie, na który numer wewnętrzny pracownika przekierować rozmowę.

PAT, często nazywany Przeciążaniem NAT (NAT Overload), wykorzystuje nie tylko adresy IP, ale również numery portów do śledzenia rozmów. To mechanizm, który zbadamy szczegółowo w następnej części.

Dogłębnie: Jak Działa Translacja Adresów Portów (PAT)

Aby zrozumieć PAT, musimy najpierw wprowadzić pojęcie numerów portów. Adres IP dostarcza pakiet do właściwego urządzenia („adres budynku”), ale dostarcza go do właściwej aplikacji na tym urządzeniu („numer mieszkania lub biura”). Każde nawiązywane połączenie (np. otwarcie nowej karty w przeglądarce) używa unikalnego numeru portu źródłowego.

PAT sprytnie wykorzystuje te numery portów do rozróżniania wielu różnych sesji komunikacyjnych pochodzących z sieci prywatnej.

Przykład Działania PAT Krok po Kroku

Wyobraźmy sobie, że dwa komputery w Twojej domowej sieci chcą jednocześnie przeglądać stronę internetową.

  • Publiczny IP Twojego Routera: 83.25.10.20
  • Prywatny IP Komputera A: 192.168.1.100
  • Prywatny IP Komputera B: 192.168.1.101
  • Publiczny IP serwera WWW: 212.77.98.9 (nasłuchujący na standardowym porcie web 443)
  1. Komputer A wysyła żądanie: Przeglądarka na Komputerze A chce połączyć się ze stroną. Tworzy pakiet. Adres źródłowy w pakiecie to `192.168.1.100` i wybiera losowy, wysoki port źródłowy, powiedzmy `12345`. Celem jest `212.77.98.9:443`.
  2. Router A wykonuje PAT: Pakiet dociera do Twojego routera. Router widzi, że jest on kierowany do internetu. Wykonuje translację:
    • Zamienia prywatny adres IP źródła (`192.168.1.100`) na swój publiczny adres IP źródła (`83.25.10.20`).
    • Zamienia oryginalny port źródłowy (`12345`) na nowy, unikalny port publiczny ze swojego dostępnego zakresu, powiedzmy `61001`.
    • Zapisuje tę translację w swojej tablicy NAT: 192.168.1.100:12345 ↔ 83.25.10.20:61001.
    • Wysyła zmodyfikowany pakiet do internetu. Serwer WWW widzi żądanie przychodzące z `83.25.10.20:61001`.
  3. Jednocześnie Komputer B wysyła żądanie: Twoje inne urządzenie również chce połączyć się z tą samą stroną. Tworzy pakiet ze źródłem `192.168.1.101` i wybiera inny losowy port, powiedzmy `54321`. Cel to `212.77.98.9:443`.
  4. Router B wykonuje PAT: Ten drugi pakiet również dociera do routera. Router wykonuje podobną translację:
    • Zamienia adres IP źródła `192.168.1.101` na ten sam publiczny IP `83.25.10.20`.
    • Zamienia port źródłowy `54321` na inny unikalny port publiczny, np. `61002`.
    • Dodaje drugi wpis do swojej tablicy NAT: 192.168.1.101:54321 ↔ 83.25.10.20:61002.
    • Wysyła ten zmodyfikowany pakiet. Serwer widzi całkowicie oddzielne żądanie przychodzące z `83.25.10.20:61002`.
  5. Podróż powrotna: Serwer WWW odpowiada. Wysyła jeden pakiet z odpowiedzią z powrotem do `83.25.10.20:61001` (dla Komputera A) i drugi do `83.25.10.20:61002` (dla Komputera B).
  6. Router Tłumaczy z Powrotem:
    • Gdy dociera pakiet przeznaczony na port `61001`, router sprawdza swoją tabelę, znajduje wpis ...↔ 83.25.10.20:61001 i wie, że należy on do 192.168.1.100:12345. Odwraca translację i przekazuje pakiet do Komputera A.
    • Gdy dociera pakiet na port `61002`, znajduje drugi wpis i poprawnie przekazuje ten pakiet do Komputera B.

Dzięki temu mapowaniu portów router może zarządzać dziesiątkami tysięcy jednoczesnych sesji ze wszystkich urządzeń w sieci lokalnej, używając tylko jednego publicznego adresu IP.

Zalety i Wady NAT

NAT jest niezbędną technologią, ale nie jest pozbawiony wad.

Zalety

  • Oszczędza adresy IPv4: To jego główna i najsłynniejsza zaleta. PAT pozwala na współdzielenie jednego publicznego adresu IPv4 przez setki lub tysiące urządzeń, radykalnie spowalniając wyczerpywanie się adresów.
  • Zapewnia podstawową warstwę bezpieczeństwa: NAT z natury działa jak prosta zapora sieciowa (firewall) ze stanem. Domyślnie połączenia przychodzące z internetu nie mogą być inicjowane do wewnętrznych urządzeń prywatnych, ponieważ router nie ma wpisu w tablicy NAT, aby je przetłumaczyć. Połączenie przychodzące jest dozwolone tylko wtedy, gdy jest odpowiedzią na połączenie wychodzące, które już nawiązało urządzenie wewnętrzne.
  • Elastyczność sieci: Administratorzy mogą z dużą elastycznością projektować i zarządzać schematem adresacji w sieci prywatnej, bez potrzeby koordynacji z ISP lub zmiany wszystkich adresów wewnętrznych, jeśli zmieni się publiczny adres IP.

Wady

  • Łamie zasadę komunikacji End-to-End: Pierwotną wizją internetu było to, że każde urządzenie może bezpośrednio komunikować się z każdym innym. NAT łamie ten model, ponieważ urządzenie wewnętrzne jest ukryte za publicznym adresem routera. Serwer w internecie widzi router, a nie rzeczywiste urządzenie, z którym się komunikuje.
  • Komplikuje działanie niektórych aplikacji: Aplikacje, które polegają na inicjowaniu połączeń przychodzących, takie jak udostępnianie plików peer-to-peer (P2P), niektóre gry online i protokoły VoIP, mogą mieć problemy z działaniem przez NAT. Wymaga to często skomplikowanych obejść, takich jak przekierowanie portów lub serwery STUN/TURN.
  • Narzut wydajnościowy: Chociaż minimalny na nowoczesnym sprzęcie, proces inspekcji i modyfikacji nagłówków IP i transportowych każdego pojedynczego pakietu dodaje niewielkie opóźnienie i zużywa zasoby routera.
  • Utrata identyfikowalności: Ponieważ wielu użytkowników jest ukrytych za jednym adresem, może być trudniej prześledzić złośliwą aktywność z powrotem do konkretnego urządzenia.
    NAT i PAT | Teleinf Edu