NAT i PAT - translacja adresów sieciowych

LSK
Priorytet: Normalny Szkic

Zadanie 1011: NAT i PAT - translacja adresów sieciowych

Wstęp

NAT (Network Address Translation) to technika przesyłania ruchu sieciowego przez router, która polega na zamianie adresów IP w nagłówkach pakietów. Głównym celem NAT jest umożliwienie wielu urządzeniom w sieci lokalnej (używającym adresów prywatnych) korzystania z jednego wspólnego adresu publicznego do łączenia się z Internetem.

Kluczowe pojęcia:

  • Adresy prywatne: Pule adresów (np. 192.168.x.x, 10.x.x.x), które nie są rutowalne w Internecie.
  • Adres publiczny: Unikalny adres IP widoczny w globalnej sieci Internet.
  • PAT (Port Address Translation): Rozszerzenie NAT (często nazywane NAPT lub Masquerading), które pozwala wielu urządzeniom współdzielić jeden adres publiczny, rozróżniając ich połączenia po numerach portów źródłowych.

Typy translacji adresów

  1. Statyczny NAT (2-way NAT): Mapowanie 1:1 jednego adresu prywatnego na jeden konkretny adres publiczny. Stosowane głównie dla serwerów wewnątrz sieci.
  2. Dynamiczny NAT: Pobieranie adresu publicznego z dostępnej puli na czas trwania połączenia.
  3. PAT (Masquerade): Najpopularniejsza forma NAT (np. w routerach domowych), gdzie cały ruch z sieci lokalnej wychodzi przez ten sam adres publiczny routera.

Konfiguracja NAT/PAT w systemie Ubuntu

W systemie Linux Ubuntu, rolę routera wykonującego NAT najczęściej realizuje jądro systemu z wykorzystaniem narzędzia iptables (lub nowszego nftables).

Krok 1: Włączenie przekazywania pakietów (IP Forwarding)

Domyślnie Linux nie przekazuje pakietów między interfejsami (nie działa jak router). Musisz to zmienić.

  1. Edytuj plik konfiguracyjny:
    sudo nano /etc/sysctl.conf
    
  2. Znajdź i usuń komentarz (#) z linii: net.ipv4.ip_forward=1
  3. Zastosuj zmiany bez restartu:
    sudo sysctl -p
    

Krok 2: Konfiguracja Iptables (Masquerade)

Załóżmy, że:

  • eth0 to interfejs podłączony do Internetu (adres publiczny).
  • eth1 to interfejs podłączony do sieci lokalnej.

Aby włączyć PAT (Masquerading) dla sieci lokalnej, użyj polecenia:

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Krok 3: Zezwolenie na ruch w łańcuchu FORWARD

Jeśli masz aktywne reguły zapory sieciowej, upewnij się, że pakiety mogą swobodnie przepływać:

sudo iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

Krok 4: Zapisywanie konfiguracji

Reguły iptables znikają po restarcie. Aby je zachować, zainstaluj pakiet iptables-persistent:

sudo apt update
sudo apt install iptables-persistent

Podczas instalacji zostaniesz zapytany, czy zapisać aktualne reguły IPv4 – wybierz TAK.


Zadanie dla ucznia

  1. Sprawdź nazwę swojego interfejsu sieciowego wychodzącego na świat (ip link).
  2. Włącz IP Forwarding w systemie.
  3. Skonfiguruj regułę MASQUERADE dla swojego interfejsu.
  4. Wylistuj aktywne reguły translacji adresów poleceniem:
    sudo iptables -t nat -L -v -n
    

Git Help

git add .
git commit -m "UTK Zadanie 1011: NAT and PAT configuration"