Usługi

DHCPv6

Dynamic Host Configuration Protocol dla sieci IPv6.

Wprowadzenie: konfiguracja hostów w IPv6

Przejście z protokołu internetowego w wersji 4 (IPv4) na protokół internetowy w wersji 6 (IPv6) zmieniło sposób konfiguracji hostów. IPv6 zwiększył przestrzeń adresową i wprowadził mechanizmy autokonfiguracji oparte na komunikatach Neighbor Discovery. Konfiguracja hostów korzysta więc z kilku współpracujących mechanizmów.

W IPv4 Dynamic Host Configuration Protocol (DHCP) automatyzuje przydzielanie adresów i parametrów sieciowych. IPv6 dodaje do tego mechanizm bezstanowej autokonfiguracji adresów, zwany . Host może użyć SLAAC bez serwera DHCPv6, jeżeli router rozgłasza odpowiedni prefiks. DHCPv6 uzupełnia ten mechanizm o przydzielanie adresów, delegowanie prefiksów i inne parametry.

Rezultatem jest . Protokół ma podobną rolę do DHCPv4, lecz używa własnych komunikatów, opcji i identyfikatorów. Współistnieje z SLAAC, ponieważ routery nadal przekazują prefiksy i informacje o trasie w Router Advertisement.

Autokonfiguracja IPv6 za pomocą SLAAC

Bezstanowa autokonfiguracja adresów (SLAAC) pozwala hostowi utworzyć adres na podstawie informacji z Router Advertisement. W wielu sieciach IPv6 urządzenie może uzyskać globalny adres unicast bez serwera DHCPv6, jeżeli router udostępni prefiks. Proces należy do Neighbor Discovery Protocol (NDP), który działa w podstawowym stosie IPv6.

SLAAC: ogłoszenia routera

Proces SLAAC opiera się na komunikatach wysyłanych przez routery w lokalnym segmencie. Host używa ich do poznania prefiksu, routera domyślnego i czasów ważności adresu.

  1. Zapytania routera: Gdy urządzenie z włączonym IPv6 dołącza do sieci, wysyła komunikat Router Solicitation do grupy multicast wszystkich routerów ff02::2ff02::2. Prosi w ten sposób o Router Advertisement.
  2. Ogłoszenia routera (RA): Routery okresowo wysyłają komunikaty Router Advertisement i mogą wysłać je od razu po otrzymaniu zapytania. RA zawiera informacje używane przez SLAAC:
    • Prefiks sieciowy: Dla prefiksu /64/64 używanego przez SLAAC jest to pierwsze 64 bity adresu, na przykład 2001:db8:acad::/642001:db8:acad::/64.
    • Czasy życia prefiksu: Prefiks ma czas preferowany i ważny, które określają używanie utworzonych adresów.
    • Router domyślny: Host wybiera router na podstawie źródłowego adresu link-local RA i pola Router Lifetime. RA nie przekazuje osobnego pola adresu bramy domyślnej.
    • Flagi zarządzania: Jednobitowa flaga „M” (Managed Address Configuration) wskazuje użycie DHCPv6 do adresów, a flaga „O” (Other Configuration) wskazuje inne dane konfiguracyjne.
  3. Generowanie adresu: Urządzenie otrzymuje prefiks i długość prefiksu z RA. Dla prefiksu /64/64 generuje pozostałe 64 bity, zwane identyfikatorem interfejsu. Może to zrobić na dwa sposoby:
    • EUI-64: Starszy sposób tworzy identyfikator na podstawie 48-bitowego adresu MAC i algorytmu rozszerzenia do 64 bitów.
    • Losowe identyfikatory i rozszerzenia prywatności: Host może używać tymczasowych identyfikatorów zmienianych w czasie, aby ograniczyć śledzenie interfejsu na podstawie adresu MAC.
  4. Sprawdzenie unikalności: Przed użyciem adresu host wykonuje Duplicate Address Detection (DAD), aby sprawdzić, czy inne urządzenie na łączu go nie używa. Po pomyślnym DAD adres może zostać przypisany do interfejsu. DAD sprawdza unikalność na łączu, a routowalność zależy od użytego prefiksu.

Zakres informacji z SLAAC

Podstawowy SLAAC dostarcza adres i wybór routera domyślnego. DNS może zostać przekazany w RA za pomocą opcji RDNSS i DNSSL albo przez DHCPv6. DHCPv6 jest więc jednym ze sposobów uzupełnienia konfiguracji o DNS, NTP i inne parametry.

Tryby działania DHCPv6: znaczenie flag M i O

Urządzenie IPv6 może utworzyć adres przez SLAAC, lecz DHCPv6 może przydzielać adresy, delegować prefiksy i przekazywać inne opcje. Flagi „M” i „O” w komunikacie Router Advertisement wskazują dostępność tych usług. Nie przekazują samego adresu ani trasy domyślnej, ponieważ te informacje pochodzą z odpowiednich pól RA.

Bezstanowy DHCPv6: adres z SLAAC, opcje z DHCPv6

W tym trybie urządzenie używa SLAAC do utworzenia adresu. Komunikat RA ma flagę M ustawioną na 0, co wskazuje, że host nie musi pobierać adresu przez DHCPv6, oraz flagę O ustawioną na 1, co wskazuje dostępność innych danych konfiguracyjnych przez DHCPv6.

Po skonfigurowaniu adresu klient może wysłać komunikat Information-Request z listą żądanych opcji, takich jak adresy DNS, lista domen do przeszukiwania lub parametry czasu. Serwer zwraca te dane w Reply. Tryb jest bezstanowy, ponieważ serwer nie przydziela w nim adresów i nie musi utrzymywać wiązań ich dzierżaw. Serwer może jednak rejestrować obsługę klienta zgodnie z własną konfiguracją.

Stanowy DHCPv6: adresy i opcje z serwera

W tym trybie komunikat RA ma flagę M ustawioną na 1, co wskazuje dostępność adresów przez DHCPv6. Klient może zażądać adresu w IA_NA. IA_TA służy do żądania tymczasowych adresów IPv6 przydzielanych przez DHCPv6. Serwer ustala czasy ważności adresu i przechowuje wiązanie z klientem.

Flaga M nie usuwa informacji przekazywanych przez RA. Jeżeli prefiks ma ustawioną flagę A, host może nadal używać SLAAC zgodnie z polityką systemu. DHCPv6 dostarcza adresy oraz pozostałe opcje, a serwer utrzymuje stan przydziałów i czasów dzierżawy. Ułatwia to centralne rejestrowanie adresów w sieciach, w których wymagane jest powiązanie konfiguracji z identyfikatorem klienta.

Proces komunikacji DHCPv6

DHCPv6 używa UDP. Klient nasłuchuje na porcie 546, a serwer i agent przekazujący na porcie 547. Zamiast broadcastu używany jest multicast. Klient rozpoczyna wyszukiwanie od grupy wszystkich agentów przekazujących i serwerów DHCPv6 ff02::1:2ff02::1:2. Odpowiedź może zostać wysłana bezpośrednio na adres link-local klienta. Przez router pośredniczący żądanie jest przenoszone w komunikacie RELAY-FORW, a odpowiedź wraca w komunikacie RELAY-REPL.

Podstawowa wymiana czterech komunikatów

Stanowe przydzielanie adresu zwykle wykorzystuje następującą wymianę czterech komunikatów:

  1. Solicit: Klient wysyła komunikat 'Solicit' do grupy ff02::1:2ff02::1:2, poszukując serwera DHCPv6. Odpowiada to funkcji Discover w DHCPv4.
  2. Advertise: Dostępny serwer odpowiada komunikatem 'Advertise' i przedstawia swoje możliwości oraz oferowane parametry. Przez relay odpowiedź wraca do segmentu klienta.
  3. Request: Klient wybiera serwer i wysyła komunikat 'Request', wskazując żądane adresy lub prefiksy oraz inne opcje. Serwer jest identyfikowany przez zawartość komunikatu.
  4. Reply: Serwer finalizuje przydział i odpowiada komunikatem 'Reply', przekazując adresy, czasy dzierżawy oraz zaakceptowane opcje. Odpowiada to funkcji Acknowledge.

Wymiana dwóch komunikatów: Rapid Commit

Opcja „Rapid Commit” pozwala skrócić wymianę. Jeżeli klient umieści ją w komunikacie 'Solicit', a serwer ją obsługuje, serwer może odpowiedzieć od razu komunikatem 'Reply'. W takim przypadku przydział obejmuje dwa komunikaty: Solicit i Reply.

Wymiana informacji bez przydziału adresu

W konfiguracji bezstanowej klient wysyła komunikat 'Information-Request', zawierający między innymi listę żądanych opcji. Serwer odpowiada komunikatem 'Reply' z parametrami takimi jak DNS, lista domen lub inne dane konfiguracyjne, bez przydzielania adresu w IA_NA.

Identyfikatory DHCPv6: DUID i IA

DHCPv6 używa dwóch konstrukcji do identyfikacji klientów i zarządzania przydziałami: DUID oraz IA. DUID opisuje klienta lub serwer, natomiast IA grupuje adresy albo delegowane prefiksy związane z jednym klientem.

DUID (Unikalny Identyfikator DHCP)
DHCPv4 może identyfikować klienta przez Client Identifier albo adres sprzętowy. DHCPv6 używa DUID, czyli identyfikatora klienta lub serwera, który powinien być niepowtarzalny w obsługiwanym środowisku. DUID powinien pozostać stabilny po zmianie interfejsu, lecz jego trwałość zależy od implementacji i przechowywania danych. Istnieje kilka typów DUID:
  • DUID-LLT (adres warstwy łącza i czas): Łączy adres warstwy łącza, na przykład MAC, z czasem utworzenia DUID. Stabilność wymaga zachowania identyfikatora w trwałej pamięci urządzenia.
  • DUID-EN (numer przedsiębiorstwa): Jest tworzony przez producenta lub organizację na podstawie jej numeru przedsiębiorstwa i przypisanego identyfikatora.
  • DUID-LL (adres warstwy łącza): Zawiera typ sprzętu oraz adres warstwy łącza interfejsu, bez znacznika czasu.
Nowsza specyfikacja definiuje także DUID-UUID, oparty na uniwersalnym identyfikatorze UUID.
IA (Powiązanie Tożsamości)
IA to konstrukcja, przez którą klient i serwer zarządzają zbiorem adresów, prefiksów oraz ich dzierżaw. Klient przypisuje IA unikalny IAID (Identity Association Identifier), aby odróżniać skojarzenia tego samego typu. Żądając konfiguracji, klient dołącza jedno lub więcej IA, a serwer zwraca parametry zgrupowane w odpowiednich skojarzeniach. Pozwala to obsługiwać kilka interfejsów, adresów i prefiksów jednego klienta. Podstawowe typy IA to:
  • IA_NA (powiązanie dla adresów nietymczasowych): Służy do żądania jednego lub większej liczby zwykłych adresów IPv6 z dzierżawą.
  • IA_TA (powiązanie dla adresów tymczasowych): Służy do żądania tymczasowych adresów IPv6 z DHCPv6. Mechanizmy prywatności mogą być także realizowane przez tymczasowe identyfikatory SLAAC.
  • IA_PD (powiązanie dla delegacji prefiksów): Pozwala routerowi żądać prefiksu IPv6 od serwera, na przykład serwera dostawcy internetu. Router może następnie rozgłaszać delegowany prefiks w swojej sieci i użyć SLAAC albo własnego serwera DHCPv6 do konfiguracji urządzeń.

Powiązane artykuły