NAT i PAT - translacja adresów sieciowych
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
- 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.
- Dynamiczny NAT: Pobieranie adresu publicznego z dostępnej puli na czas trwania połączenia.
- 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ć.
- Edytuj plik konfiguracyjny:
sudo nano /etc/sysctl.conf - Znajdź i usuń komentarz (
#) z linii:net.ipv4.ip_forward=1 - Zastosuj zmiany bez restartu:
sudo sysctl -p
Krok 2: Konfiguracja Iptables (Masquerade)
Załóżmy, że:
eth0to interfejs podłączony do Internetu (adres publiczny).eth1to 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
- Sprawdź nazwę swojego interfejsu sieciowego wychodzącego na świat (
ip link). - Włącz IP Forwarding w systemie.
- Skonfiguruj regułę MASQUERADE dla swojego interfejsu.
- 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"