Linux Router (NAT, IP Forwarding)
LINUX
Priorytet: Normalny
Szkic
Zadanie 131: Linux jako Router (NAT i Forwarding)
Cel zadania
Celem zadania jest przekształcenie jednej z maszyn wirtualnych (np. z Zadania 130) w router, który udostępni połączenie internetowe drugiej maszynie znajdującej się w sieci wewnętrznej.
Wymagania
-
Środowisko:
- Kontynuacja Zadania 130.
- Maszyna 1 (Router): Musi posiadać dwie karty sieciowe:
- Karta 1: Sieć wewnętrzna (skonfigurowana w Zad. 130).
- Karta 2: NAT (lub Mostkowana), która ma dostęp do internetu (w VirtualBox ustaw jako "NAT" lub "Sieć NAT").
- Maszyna 2 (Klient): Pozostaje w sieci wewnętrznej (tylko 1 karta).
-
Konfiguracja Maszyny 1 (Router):
- Skonfiguruj interfejsy sieciowe (Netplan):
- Interfejs LAN (wewnętrzny): Statyczny IP (np.
172.16.0.1/22- lub ten który ustawiłeś w Zad. 130). - Interfejs WAN (internet): Dynamiczny (DHCP) lub statyczny (zgodny z podsiecią NAT VirtualBoxa).
- Interfejs LAN (wewnętrzny): Statyczny IP (np.
- Włącz przekazywanie pakietów (IP Forwarding) w jądrze systemu.
- Skonfiguruj NAT (Maskaradę) przy użyciu
iptables(lubufw), aby ruch z sieci wewnętrznej był tłumaczony na adres interfejsu WAN.
- Skonfiguruj interfejsy sieciowe (Netplan):
-
Konfiguracja Maszyny 2 (Klient):
- Ustaw Bramę Domyślną (Gateway) na adres IP Maszyny 1 (interfejs wewnętrzny).
- Ustaw serwer DNS (np.
8.8.8.8lub1.1.1.1).
Kroki do wykonania
Krok 1: Dodanie karty sieciowej (Maszyna 1)
- Wyłącz Maszynę 1.
- W ustawieniach VirtualBox -> Sieć -> Karta 2 -> Włącz kartę sieciową -> Podłączona do: NAT.
- Uruchom maszynę.
Krok 2: Konfiguracja Netplan (Maszyna 1)
- Sprawdź nazwę nowego interfejsu (
ip a). - Edytuj plik w
/etc/netplan/. - Dodaj konfigurację dla drugiego interfejsu (zazwyczaj
dhcp4: truedla NAT). - Zastosuj zmiany:
sudo netplan apply. - Sprawdź, czy masz internet na Maszynie 1 (
ping google.com).
Krok 3: Włączenie routingu (Maszyna 1)
- Edytuj plik
/etc/sysctl.conf. - Odkomentuj linię:
net.ipv4.ip_forward=1. - Przeładuj ustawienia:
sudo sysctl -p.
Krok 4: Konfiguracja NAT (Maszyna 1)
Możesz użyć iptables (tradycyjnie) lub innego narzędzia.
Przykład iptables (zakładając, że enp0s8 to interfejs WAN z internetem):
sudo iptables -t nat -A POSTROUTING -o enp0s8 -j MASQUERADE
Pamiętaj, aby zapisać reguły iptables (np. pakiet iptables-persistent), aby przetrwały restart.
Krok 5: Konfiguracja Klienta (Maszyna 2)
- Na Maszynie 2 edytuj Netplan.
- Dodaj
gateway4: ADRES_IP_MASZYNY_1_WEW(np.172.16.0.1). - Dodaj sekcję
nameserversi adresy (np.[8.8.8.8, 1.1.1.1]). sudo netplan apply.
Krok 6: Weryfikacja
- Z Maszyny 2 spróbuj pingować
8.8.8.8(test połączenia IP). - Z Maszyny 2 spróbuj pingować
google.com(test DNS). - Użyj
traceroute 8.8.8.8na Maszynie 2, aby zobaczyć, czy ruch przechodzi przez Maszynę 1.
Zadanie do oddania
Przygotuj sprawozdanie zawierające:
- Maszyna 1: Wynik
ip a(pokazujący 2 interfejsy). - Maszyna 1: Wynik
sysctl net.ipv4.ip_forward. - Maszyna 1: Zrzut reguł NAT (
sudo iptables -t nat -L -v). - Maszyna 2: Wynik
ip route(pokazujący default gateway). - Maszyna 2: Wynik
ping google.com(potwierdzenie dostępu do internetu).