DHCPv6

Protokół Dynamicznej Konfiguracji Hostów dla sieci IPv6.

Wprowadzenie: Nowy Protokół dla Nowego Internetu

Przejście z protokołu internetowego w wersji 4 (IPv4) na protokół internetowy w wersji 6 (IPv6) stanowi jedną z najważniejszych ewolucji w historii internetu. IPv6 został zaprojektowany, aby rozwiązać krytyczny problem wyczerpywania się adresów IPv4, ale wprowadził także szereg nowych funkcji i zmienił niektóre fundamentalne koncepcje sieciowe. Jednym z obszarów, który uległ gruntownemu przeprojektowaniu, była konfiguracja hostów.

W świecie IPv4, Dynamic Host Configuration Protocol (DHCP) stał się niekwestionowanym standardem automatyzacji przydzielania adresów IP, masek podsieci i innych parametrów sieciowych. Był to system w pełni scentralizowany: urządzenie klienckie było całkowicie zależne od serwera DHCP, aby uzyskać dostęp do sieci. IPv6 wprowadził jednak nową, zdecentralizowaną metodę przydzielania adresów bezpośrednio do swojego podstawowego pakietu protokołów, zwaną . Ta fundamentalna zmiana oznaczała, że rola DHCP musiała zostać ponownie oceniona i dostosowana do nowego paradygmatu IPv6.

Rezultatem jest , protokół o podobnej nazwie do swojego poprzednika, ale działający zupełnie inaczej. To nie jest tylko aktualizacja, ale nowy protokół zaprojektowany do współistnienia z natywnymi możliwościami autokonfiguracji IPv6 i ich uzupełniania. Zrozumienie DHCPv6 wymaga najpierw zrozumienia nowego krajobrazu przydzielania adresów, który stworzył IPv6.

Krajobraz Autokonfiguracji w IPv6: SLAAC

Zanim zagłębimy się w DHCPv6, kluczowe jest zrozumienie jego głównego odpowiednika: bezstanowej autokonfiguracji adresów (SLAAC). W wielu sieciach IPv6 urządzenia mogą uzyskać globalnie unikalny, routowalny adres IP bez obecności jakiegokolwiek serwera DHCP. Proces ten jest wbudowany w protokół Neighbor Discovery Protocol (NDP), podstawowy komponent IPv6.

Jak Działa SLAAC: Ogłoszenia Routera

Proces SLAAC opiera się na komunikatach wysyłanych przez routery w sieci lokalnej.

  1. Zapytania Routera: Kiedy urządzenie z włączonym IPv6 łączy się z siecią, wysyła komunikat Router Solicitation na specjalny adres multicast, w zasadzie pytając: „Czy w tej sieci są jakieś routery?”
  2. Ogłoszenia Routera (RA): Routery w sieci okresowo wysyłają komunikaty Router Advertisement, a także wysyłają je natychmiast w odpowiedzi na zapytanie. Ten komunikat RA jest kluczem do SLAAC i zawiera krytyczne informacje:
    • Prefiks Sieciowy: Pierwsze 64 bity adresu IPv6 dla danej sieci lokalnej (np. 2001:db8:acad::/642001:db8:acad::/64).
    • Czas Życia Prefiksu: Jak długo prefiks jest ważny.
    • Brama Domyślna: Adres samego routera, którego klient użyje jako swojej bramy domyślnej.
    • Flagi Zarządzania: Dwie krytyczne jednobitowe flagi, flaga „M” (Managed Address Configuration) i flaga „O” (Other Configuration), które omówimy później.
  3. Generowanie Adresu: Urządzenie klienckie otrzymuje 64-bitowy prefiks sieciowy z komunikatu RA. Następnie generuje pozostałe 64 bity własnego adresu, znane jako identyfikator interfejsu. Może to zrobić na dwa podstawowe sposoby:
    • EUI-64: Klient bierze swój 48-bitowy adres MAC i rozszerza go do 64-bitowego identyfikatora za pomocą standardowego algorytmu.
    • Losowe/Rozszerzenia Prywatności: Aby uniknąć śledzenia przez statyczny identyfikator interfejsu oparty na adresie MAC, nowoczesne systemy operacyjne zazwyczaj generują tymczasowy, losowy 64-bitowy identyfikator, który zmienia się w czasie.
  4. Sprawdzenie Unikalności: Przed użyciem adresu, klient wykonuje proces wykrywania duplikatów adresów (Duplicate Address Detection - DAD), aby upewnić się, że żadne inne urządzenie w sieci lokalnej już go nie używa. Ma teraz globalnie unikalny adres IPv6 i zna swoją bramę domyślną.

Ograniczenie SLAAC

Chociaż SLAAC jest potężne, ma jedno poważne ograniczenie: dostarcza tylko adres IP i bramę. Nie dostarcza adresu serwera DNS. Urządzenie z adresem wygenerowanym tylko przez SLAAC nie byłoby w stanie rozwiązywać nazw domenowych. Jest to kluczowa luka, którą zaprojektowano DHCPv6, aby ją wypełnić.

Tryby Działania DHCPv6: Stanowy vs. Bezstanowy

Ponieważ urządzenia IPv6 mogą już uzyskać adres IP za pomocą SLAAC, DHCPv6 zostało zaprojektowane, aby być bardziej elastyczne niż jego odpowiednik dla IPv4. Może działać w dwóch głównych trybach, które są kontrolowane przez flagi „M” i „O” w komunikatach RA routera.

Bezstanowy DHCPv6 („Mam adres, potrzebuję tylko opcji”)

Jest to najczęstszy tryb w nowoczesnych sieciach IPv6. W tym trybie urządzenie używa SLAAC do wygenerowania własnego adresu IP. Komunikat RA routera ma flagę M ustawioną na 0 (nie używaj DHCPv6 do adresów) i flagę O ustawioną na 1 (użyj DHCPv6 do „innych” konfiguracji).

Po skonfigurowaniu adresu IP za pomocą SLAAC, klient widzi flagę „O” i wie, że musi skontaktować się z serwerem DHCPv6, aby uzyskać pozostałe dane konfiguracyjne. Wysyła zapytanie DHCPv6 prosząc wyłącznie o opcje, takie jak adresy serwerów DNS i listę domen do przeszukiwania. Ten tryb nazywany jest „bezstanowym”, ponieważ serwer DHCPv6 nie musi przechowywać rekordu ani „stanu” dzierżaw adresów IP; po prostu dostarcza bezstanowe informacje każdemu klientowi, który o nie poprosi.

Stanowy DHCPv6 („Potrzebuję adresu i wszystkich opcji”)

Ten tryb działa prawie dokładnie tak samo jak DHCPv4. Administrator sieci chce zachować pełną kontrolę nad przydzielaniem adresów IP. W tym trybie komunikat RA routera ma flagę M ustawioną na 1 (użyj DHCPv6 do adresów).

Kiedy klient widzi tę flagę, ignoruje SLAAC do konfiguracji adresu i zamiast tego wykonuje pełne zapytanie DHCPv6, aby zażądać adresu IP i wszystkich innych parametrów konfiguracyjnych od serwera. Ten tryb nazywany jest „stanowym”, ponieważ serwer DHCPv6 musi utrzymywać bazę danych (stan) o tym, które adresy IP zostały przydzielone którym klientom, wraz z ich czasami dzierżawy. Jest to przydatne w środowiskach korporacyjnych, gdzie wymagana jest ścisła kontrola i rejestrowanie przydziałów IP.

Proces Komunikacji DHCPv6

Proces komunikacji w DHCPv6 jest koncepcyjnie podobny do DORA w DHCPv4, ale nazwy komunikatów są inne, i używa on multicastu zamiast broadcastu. Klienci wysyłają komunikaty na adres multicastowy wszystkich agentów przekazujących i serwerów DHCP (ff02::1:2ff02::1:2), a serwery odpowiadają na adres link-local klienta.

Wymiana Czterech Komunikatów (Stanowa)

W przypadku stanowego przydzielania adresów zwykle stosuje się wymianę czterech komunikatów:

  1. Solicit: Klient wysyła komunikat 'Solicit' na adres multicastowy wszystkich serwerów, szukając serwera DHCPv6. Jest to odpowiednik Discover z DHCPv4.
  2. Advertise: Dostępne serwery DHCPv6 na łączu odpowiadają komunikatem 'Advertise', wskazując, że są dostępne do świadczenia usług DHCP. Jest to odpowiednik Offer.
  3. Request: Klient wybiera jeden z serwerów i wysyła komunikat 'Request', prosząc o określony adres IP i inne parametry konfiguracyjne. Jest to odpowiednik Request.
  4. Reply: Serwer finalizuje przydział i odpowiada komunikatem 'Reply', potwierdzając dzierżawę i dostarczając żądane opcje. Jest to odpowiednik Acknowledge.

Wymiana Dwóch Komunikatów (Rapid Commit)

Aby przyspieszyć proces, DHCPv6 wprowadza opcję „Rapid Commit”. Jeśli klient dołączy tę opcję do swojego komunikatu 'Solicit', a serwer ją obsługuje, serwer może natychmiast odpowiedzieć komunikatem 'Reply', kończąc proces w zaledwie dwóch komunikatach (Solicit i Reply) zamiast czterech.

Wymiana w Trybie Bezstanowym DHCPv6

Dla konfiguracji bezstanowej wymiana jest prostsza. Klient wysyła komunikat 'Information-Request', a serwer odpowiada komunikatem 'Reply' zawierającym tylko żądane opcje konfiguracyjne (jak DNS), bez informacji o dzierżawie adresu IP.

Kluczowe Identyfikatory w DHCPv6: DUID i IA

DHCPv6 wprowadza dwie nowe i ważne koncepcje do identyfikacji klientów i zarządzania przydziałami adresów: DUID i IA.

DUID (Unikalny Identyfikator DHCP)
W DHCPv4 klienci są zazwyczaj identyfikowani przez ich adres MAC. Jest to problematyczne, ponieważ adresy MAC mogą się zmienić w przypadku wymiany karty sieciowej. DHCPv6 zastępuje to DUID. DUID ma być stabilnym identyfikatorem, unikalnym dla wszystkich klientów i serwerów DHCP, i powinien pozostać stały dla danego urządzenia przez cały jego cykl życia, niezależnie od zmian kart sieciowych. Istnieje kilka typów DUID:
  • DUID-LLT (Adres Warstwy Łącza plus Czas): Łączy adres MAC interfejsu ze znacznikiem czasu z momentu wygenerowania DUID. Jest to najczęstszy typ.
  • DUID-EN (Numer Przedsiębiorstwa): Generowany przez producenta na podstawie jego prywatnego numeru przedsiębiorstwa i unikalnego identyfikatora, który sam przypisuje.
  • DUID-LL (Adres Warstwy Łącza): Używa po prostu adresu MAC interfejsu.
IA (Powiązanie Tożsamości)
IA to konstrukcja, za pomocą której serwer i klient DHCPv6 zarządzają i identyfikują zbiór adresów i dzierżaw. Klient tworzy IA i przypisuje mu unikalny IAID (Identyfikator Powiązania Tożsamości). Żądając adresów, klient dołącza jedno lub więcej IA do swojego żądania. Serwer zwraca przydzielone adresy zgrupowane w tych samych IA. Pozwala to jednemu klientowi na zarządzanie wieloma zestawami adresów do różnych celów. Najczęstsze typy IA to:
  • IA_NA (Powiązanie Tożsamości dla Adresów Nietymczasowych): Używane do żądania jednego lub więcej standardowych, nietymczasowych adresów IPv6.
  • IA_TA (Powiązanie Tożsamości dla Adresów Tymczasowych): Używane do żądania jednego lub więcej adresów tymczasowych, które często są używane dla zachowania prywatności.
  • IA_PD (Powiązanie Tożsamości dla Delegacji Prefiksów): Jest to potężna funkcja unikalna dla DHCPv6. Pozwala urządzeniu (zazwyczaj routerowi domowemu) zażądać całego prefiksu sieciowego IPv6 od serwera DHCPv6 dostawcy internetu. Router może następnie użyć tego prefiksu do konfiguracji urządzeń we własnej sieci lokalnej za pomocą SLAAC lub własnego serwera DHCPv6.
    DHCPv6 | Teleinf Edu