🌐 Autokonfiguracja adresów IPv6 w Linuksie: SLAAC vs. DHCPv6
Szczegółowe wyjaśnienie mechanizmów Stateful i Stateless Address Autoconfiguration, ich różnic, konfiguracji routerów (Radvd) i klientów DHCPv6 w Linuksie, oraz typowych problemów
📘 Wprowadzenie
W przeciwieństwie do IPv4, IPv6 oferuje zaawansowane mechanizmy autokonfiguracji, które znacząco upraszczają zarządzanie adresacją. W systemach Linux możliwa jest konfiguracja zarówno z wykorzystaniem SLAAC (Stateless Address Autoconfiguration), jak i DHCPv6 (Stateful). W niniejszym artykule omawiamy ich różnice, sposób działania, konfigurację i potencjalne problemy.

⚙️ SLAAC vs. DHCPv6 – podstawowe różnice
| Cecha | SLAAC | DHCPv6 |
|---|---|---|
| 👤 Typ konfiguracji | Stateless (bezstanowa) | Stateful (stanowa) |
| 🧩 Adres IP | Generowany automatycznie | Przydzielany przez serwer DHCP |
| 🌐 Potrzeba serwera | Nie | Tak (dhcpd6 lub inny) |
| 📡 Router Advertisement | Wymagany (Radvd) | Może współistnieć z SLAAC |
| 📄 Inne dane (DNS, NTP) | Nie zawsze dostępne | Pełna konfiguracja systemowa |
📡 SLAAC (Stateless Address Autoconfiguration)
🔍 Jak działa SLAAC?
- Host nasłuchuje pakietów Router Advertisement (RA) wysyłanych przez router.
- Odbiera prefiks IPv6 oraz inne opcje.
- Generuje adres IP lokalnie (na podstawie EUI-64 lub losowo).
- Sprawdza unikalność adresu (Duplicate Address Detection – DAD).
⚙️ Konfiguracja routera z radvd
📄 Plik konfiguracyjny: /etc/radvd.conf
interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
};
🔧 Instalacja i uruchomienie:
sudo apt install radvd
sudo systemctl enable radvd
sudo systemctl start radvd
📦 DHCPv6 (Stateful)
🧠 Jak działa DHCPv6?
- Klient wysyła zapytanie DHCPv6 Solicit.
- Serwer DHCPv6 odpowiada ofertą adresu.
- Klient akceptuje adres, serwer go przypisuje i rejestruje.
⚙️ Konfiguracja serwera DHCPv6 (isc-dhcp-server)
📄 Plik /etc/dhcp/dhcpd6.conf:
subnet6 2001:db8:1::/64 {
range6 2001:db8:1::10 2001:db8:1::100;
option dhcp6.name-servers 2001:db8:1::1;
}
🔧 Uruchomienie:
sudo apt install isc-dhcp-server
sudo systemctl enable isc-dhcp-server
sudo systemctl start isc-dhcp-server
🖥️ Konfiguracja klienta DHCPv6 (dhclient)
sudo dhclient -6 -v eth0
🛠️ Typowe problemy i rozwiązania
❗ Brak adresu IPv6 z SLAAC
- 🔍 Sprawdź, czy
radvddziała poprawnie i interfejs jest aktywny. - 🛡️ Upewnij się, że firewall nie blokuje ICMPv6 RA.
- 🔄 Sprawdź prefiks i długość maski w
radvd.conf.
❗ DHCPv6 nie przypisuje adresu
- ⚠️ Upewnij się, że klient wysyła zapytania DHCPv6 (
tcpdump port 546). - ✅ Sprawdź zgodność ustawień serwera z prefiksem sieciowym.
- 🧱 Sprawdź dostępność zakresu adresów i uprawnień serwera DHCP.
🔄 Kombinacja SLAAC + DHCPv6 (Stateless DHCPv6)
W tym modelu:
- SLAAC przydziela adresy IP.
- DHCPv6 przekazuje dodatkowe informacje (DNS, NTP, domena).
📄 radvd.conf (dla kombinacji):
interface eth0 {
AdvSendAdvert on;
prefix 2001:db8:1::/64 {
AdvOnLink on;
AdvAutonomous on;
};
RDNSS 2001:db8:1::1 {
AdvRDNSSLifetime 3600;
};
};
📄 dhclient.conf – konfiguracja klienta do pobierania tylko opcji:
interface "eth0" {
request domain-name-servers, domain-name;
}
📈 Praktyczne zastosowania i wybór rozwiązania
| Środowisko | Rekomendacja |
|---|---|
| 🏠 Sieć domowa | SLAAC z opcjonalnym DHCPv6 |
| 🏢 Firmowa infrastruktura | DHCPv6 (Stateful) dla większej kontroli |
| 🛠️ Sieci mieszane | Dual-stack z SLAAC + DHCPv6 |
| 🌐 ISP/Operatorzy sieci | DHCPv6 lub własne systemy provisioningowe |
✅ Podsumowanie
Autokonfiguracja IPv6 w Linuksie to potężne narzędzie, które pozwala administratorom na elastyczne zarządzanie adresacją. Wybór między SLAAC a DHCPv6 powinien być uzależniony od:
- potrzeb kontroli nad urządzeniami,
- rodzaju środowiska sieciowego,
- wymagań organizacyjnych.
Dzięki wykorzystaniu radvd, isc-dhcp-server, dhclient oraz znajomości typowych problemów i ich rozwiązań, możliwe jest stworzenie wydajnej i stabilnej infrastruktury IPv6 w oparciu o system Linux.






