Wstęp do protokołu DHCPv6
Zagadnienia związane z protokołem DHCPv6
RFC 3315 – Dynamic Host Configuration Protocol for IPv6 (DHCPv6)
- DHCPv6 Client – Urządzenie inicjujące proces przydzielania adresu IPv6, oraz innych informacji rozgłaszanych przez serwer DHCPv6 (Takich jak adres serwera DNS czy nazwa domenowa).
- DHCPv6 Server – Serwer DHCP odpowiadający na zapytania klienta, może lecz nie musi być w tej samej sieci co klient.
- DHCPv6 Relay Agent – Urządzenie pośrednie, umożliwiające komunikację klienta z serwerem DHCP, w sytuacji gdy obydwa urządzenia znajdują się w innej sieci (Przeważnie jest to ruter).
- Inne zagadnienia związane z protokołem DHCPv6:
- DUID (DHCP Unique Identifier) – Numer identyfikujący urządzenia wspierającego protokół DHCPv6. Zarówno klient jak i serwer DHCP posiadają po jednej unikalnej 2-bajtowej wartości, która wraz z zmienną tworzy numer DUID (Referencja RFC 3315 ogranicza wielkość wartości DUID do 128 bajtów). Obecnie występują trzy rodzaje wartości DUID:
- Adres Link-Local połączony z czasem.
- Unikalny numer ID nadany przez organizację IANA.
- Adres Link-Layer.
- IA (Identity Association) – Kombinacja adresów przypisanych do jednego interfejsu sieciowego.
- IAID (Identity Association Identifier) – Unikalna wartość przypisane do interfejsu sieciowego.
- DUID (DHCP Unique Identifier) – Numer identyfikujący urządzenia wspierającego protokół DHCPv6. Zarówno klient jak i serwer DHCP posiadają po jednej unikalnej 2-bajtowej wartości, która wraz z zmienną tworzy numer DUID (Referencja RFC 3315 ogranicza wielkość wartości DUID do 128 bajtów). Obecnie występują trzy rodzaje wartości DUID:
- Adresy IPv6 oraz porty wykorzystywane przez serwer DHCPv6:
- All_DHCP_Relay_Agents_and_Servers (FF02::1:2) – Multicast-owy adres Link-Local określający wszystkie serwery DHCPv6 oraz wszystkich agentów pośredniczących (Relay Agents).
- All_DHCP_Servers (FF05::1:3) – Multicast-owy adres Site-Local określający wszystkie serwery DHCPv6.
- UDP port 546 – Server DHCPv6 oraz agent pośredniczący (Relay) wysyłają wiadomości DHCP do klienta na porcie docelowym UDP 546.
- UDP port 547 – Klient wysyła wiadomości DHCP do serwera DHCPv6 bądź agenta pośredniczącego (Relay) na porcie docelowym UDP 547.
Wiadomości protokołu DHCPv6
- SOLICIT (1) – Wiadomość wysyłana przez klienta w celu zlokalizowania serwera bądź wielu serwerów DHCPv6.
- ADVERTISE (2) – Odpowiedź serwera DHCPv6 na wiadomość SOLICIT.
- REQUEST (3) – Zapytanie klienta skierowane do jednego z wybranych serwerów DHCPv6, z prośbą o przydzielenie adresu IPv6 oraz innych informacji protokołu DHCPv6 (Takich jak adres serwera DNS czy nazwa domenowa).
- REPLAY (7) – Odpowiedź serwera DHCPv6 na wiadomość REQUEST. Zawiera adres IPv6 oraz inne informację protokołu DHCPv6. Odpowiedź REPLAY jest również stosowana w odpowiedzi na wiadomość SOLICIT w sytuacji skonfigurowania serwera DHCPv6 z opcją Rapid Commit Option.
- INFORMATION-REQUEST (11) – Zapytanie klienta wysłane do jednego z wybranych serwerów DHCPv6, z prośbą o przesłanie innych informacji protokołu DHCPv6 bez jednoczesnego przydzielania adresu IPv6.
- RENEW (5) – Prośba klienta o przedłużenie dzierżawy adresu IPv6 (Zawiera adres oraz inne informacje protokołu DHCP).
- RELEASE (8) – Prośba klienta o unieważnienie dzierżawy adresu IPv6.
- DECLINE (9) – Wiadomość wysłana przez klienta DHCP w celu poinformowania serwera DHCPv6, że wydzierżawiony przez serwer adres występuje już w sieci lokalnej (Duplikacja wykryta za pomocą funkcji DAD).
Podstawowa zasada działania protokołu DHCPv6
- Wymiana informacji pomiędzy klientem a serwerem DHCPv6, jest zbliżona w swym działaniu do zasad protokołu DHCP względem protokołu IPv4, istnieje jednak pomiędzy nimi pewna różnica wynikająca z np. braku adresu rozgłoszeni-owego w protokole IPv6.
- Proces wymiany danych pomiędzy klientem a serwerem DHCPv6 wygląda następująco:
- Klient wysyła zapytanie SOLICIT (multicast address).
- Serwer odpowiada komunikatem ADVERTISE (unicast address).
- Klient kolekcjonuje otrzymane komunikaty ADVERTISE, zebrane od wielu serwerów DHCPv6. W celu wybrania najlepszej propozycji względem propagowanego prefiksu.
- Klient potwierdza wybranie adresu IPv6 za pomocą komunikatu REQUEST.
- Serwer potwierdza rezerwację adresu za pomocą komunikatu CONFIRM.
- Oprócz tradycyjnej cztero-fazowej negocjacji adresu IPv6, istnieje jeszcze jedna opcjonalna, dwuetapowa negocjacja (Rapid two-way message Exchange), w której klient wraz z serwerem DHCPv6 wymieniają jedynie komunikaty SOLICIT oraz REPLY.
Aby opcja dwuetapowej negocjacji adresu IPv6 była dostępna, obydwa urządzenia muszą być skonfigurowane w trybie szybkiego zatwierdzania pakietów protokołu DHCP „rapid-commit” (RFC 4039).
Proces cztero-stopniowej negocjacji jest wykorzystywany w sieci posiadającej więcej niż jeden serwer DHCPv6. Natomiast w przypadku sieci z jednym serwerem, możliwe staje się wykorzystanie negocjacji dwuetapowej.
Stateful DHCPv6 – Relay Agent
- W sytuacji, w której docelowy serwer DHCPv6 znajduje się w innej sieci niż host. Protokół DHCP wykorzystuje dwa adresy IPv6. Źródłowy Link-Local oraz docelowy multicast, kierowany do wszystkich agentów pośredniczących (Relay).
- Adres źródłowy Link-Local – Klient wykorzystuje własny adres IPv6 Link-Local w celu nadania zapytania DHCPv6.
- Adres Multicast-owy FF02::1:2 – Link-Local Multicast Address jest wykorzystywany jako adres docelowy skierowany do wszystkich serwerów znajdujących się w sieci lokalnej oraz ruterów działających jako agenci przekierowania (Relay).
W przypadku agenta Relay względem protokołu IPv6, ruter pełniący tę rolę zmienia adres źródłowy (Link-Local klienta DHCP) na swój własny adres unicast-owy. Jest to istotna różnica w stosunku do protokołu IPv4.
Działanie protokołu DHCPv6
Proces działania protokołu DHCPv6
Wiadomości RS, RA zostały opisane w artykule: Router Solicitation oraz Router Advertisement.

- Jeżeli klient protokołu DHCPv6 nie otrzymał jeszcze wiadomości Router Advertisement, sam zainicjuje proces pozyskiwania adresu IPv6 za pomocą wiadomości Router Solicitation, wysłanej na adres FF02::2.
- Ruter systematycznie co 200 sekund, bądź w odpowiedzi na zapytania Router Solicitation wysyła odpowiedzi Router Advertisement, ze skonfigurowanymi przez administratora flagami A, O oraz M.
- Klient wyśle wiadomość SOLICIT do wszystkich dostępnych serwerów DHCPv6 (Na adres IPv6 FF02::1:2). W niektórych przypadkach klient może wysłać wiadomość SOLICIT na opcjonalnie skonfigurowany adres Unicast.
- Serwer odpowie na wiadomość SOLICIT, wiadomością ADVERTISE. Jeżeli klient otrzyma więcej niż jedną wiadomość ADVERTISE rozpocznie proces wyboru najlepszej oferty (RFC 3315 rozdział 17.1.3).
- Klient wyśle wiadomość REQUEST bądź INFORMATION-REQUEST w zależności od wybranej metody pobierania adresu IPv6 (Stateful bądź Stateless DHCPv6) w oparciu o wartości otrzymanych flag A, O oraz M.
- Jeżeli flaga M posiada wartość 1, klient wyśle wiadomość REQUEST.
- Jeżeli flaga M posiada wartość 0 a flaga O wartość 1, klient wyśle wiadomość INFORMATION-REQUEST.
- Serwer odpowie na wiadomość REQUEST, wiadomością REPLAY zawierającą adres IPv6 oraz inne informacje protokołu DHCPv6. W przypadku otrzymania wiadomości INFORMATION-REQUEST, serwer odpowie wiadomością REPLAY zawierającą jedynie pozostałe informacje protokołu DHCPv6 bez adresu IPv6.
- W sytuacji, w której czas dzierżawy adresu IPv6 zbliża się ku końcowi, klient wyśle wiadomość RENEW z prośbą o wydłużenie tego czasu.
- Serwer odpowie na otrzymaną wiadomość RENEW, wiadomością REPLAY, potwierdzając tym samym przedłużenie czasu dzierżawy.
Zarówno wiadomość RENEW jak i REPLAY zawierają adres IP wraz z innymi informacjami protokołu DHCPv6.
- Jeżeli klient nie potrzebuje już przydzielonego adresu IPv6, wyśle wiadomość zwalniającą posiadany adres (RELEASE).
Serwer wysyła wiadomość potwierdzającą REPLAY, w odpowiedzi na wiadomość RELEASE bądź DECLINE.
Zasada działania protokołu DHCPv6 Relay Agent
W przypadku łączenie się z serwerem DHCPv6 za pośrednictwem rutera pośredniczącego (Relay Agent), proces przydziału adresu IPv6 przez serwer DHCPv6 wygląda następująco:
- Jeżeli klient protokołu DHCPv6 nie otrzymał jeszcze wiadomości Router Advertisement, sam zainicjuje proces pozyskiwania adresu IPv6 za pomocą wiadomości Router Solicitation, wysłanej na adres FF02::2.
- Ruter systematycznie co 200 sekund, bądź w odpowiedzi na zapytania Router Solicitation wysyła odpowiedzi Router Advertisement, ze skonfigurowanymi przez administratora flagami A, O oraz M.
- Klient wyśle wiadomość SOLICIT do wszystkich dostępnych serwerów DHCPv6 (Na adres IPv6 FF02::1:2). W niektórych przypadkach klient może wysłać wiadomość SOLICIT na opcjonalnie skonfigurowany adres Unicast.
- Agent wyśle wiadomość RELAY-FORWARD zawierającą enkapsulowaną, oryginalną wiadomość SOLICIT otrzymaną od klienta, na multicast-owy adres Site-Local (FF05::1:3), bądź skonfigurowany przez administratora adres Unicast.
- Serwer odpowie na wiadomość RELAY-FORWARD, wiadomością RELAY-REPLY zawierającą enkapsulowaną wiadomość ADVERTISE …
Wszystkie wiadomości nadawane przez agenta Relay do serwera DHCPv6 stanowią oryginalną wiadomość otrzymaną od klienta, enkapsulowaną do postaci wiadomości RELAY-FORWARD.
Wszystkie wiadomości wysyłane przez serwer DHCPv6 do Agenta Relay stanowią oryginalną wiadomość serwera enkapsulowaną do postaci wiadomości RELAY-REPLY.
Pozostałe tematy związane z protokołem IPv6
- Wstęp do protokołu IPv6
- Struktura adresacji IPv6
- Adresacja unicast
- Adresacja Multicast
- Protokół ICMPv6
- Neighbor Discovery
- Troubleshooting IPv6
- Komendy Show, Clear i Debug IPv6
- Konfiguracja routing-u IPv6
- Konfiguracja list ACL IPv6
- Konfiguracja tuneli IPv6
- Protokół IPv6 w systemach operacyjnych
Przydzielanie adresów IPv6
- Teoria protokołu DHCPv6
- Przydzielanie adresów (SLAAC)
- Przydzielanie adresów (SLAAC + Stateless DHCPv6)
- Przydzielanie adresów (Stateful DHCPv6)
- Teoria Prefix Delegation Options
- Statyczne przydzielanie adresów IPv6
- Przydzielanie adresów IPv6 (SLAAC)
- Przydzielanie adresów IPv6 (Stateless DHCPv6)
- Przydzielanie adresów IPv6 (Stateful DHCPv6)
- Przydzielanie adresów IPv6 (Prefix Delegation)

Dodaj komentarz