DHCPv6 meddelande

DHCP (Dynamic Host Configuration Protocol) är ett viktigt protokoll som används för att dynamiskt tilldela IP-adresser och annan nätverksinformation till klienter. Protokollet finns i två versioner: DHCPv4 och DHCPv6, där den första används för IPv4-nätverk och den senare för IPv6-nätverk. Trots att både DHCPv4 och DHCPv6 har samma grundläggande syfte – att automatisera tilldelningen av nätverkskonfiguration – finns det flera skillnader i hur de två protokollen fungerar, särskilt när det gäller de meddelanden som används.

I DHCPv4 startar klienten processen genom att skicka ett DHCPDISCOVER-meddelande som broadcastas på nätverket för att hitta en DHCP-server. Servern svarar med ett DHCPOFFER, där servern erbjuder en IP-adress. Klienten väljer sedan en adress genom att skicka ett DHCPREQUEST, och servern bekräftar tilldelningen med ett DHCPACK.

I DHCPv6, som är utformat för att hantera de mer komplexa behoven i IPv6-nätverk, används istället andra typer av meddelanden. Processen startar vanligtvis efter att klienten fått en uppmaning från en router genom ett Router Advertisement (RA)-meddelande att använda DHCPv6. Det är här som börjar en intressant process i kommunikationen mellan DHCPv6-klient-server.

DHCPv6-klientens kommunikation med router och DHCPv6-server

När en DHCPv6-klient ansluter till ett IPv6-nätverk sker processen i två huvudfaser: först en initial kontakt med en router för att få information om nätverket, och därefter kommunikation med en DHCPv6-server för att hämta en IPv6-adress och annan nätverkskonfiguration. Denna process styrs av två protokoll: Neighbor Discovery Protocol (NDP) via ICMPv6 för router-kommunikationen och DHCPv6 för adress- och konfigurations-hantering.

1. Kommunikation med en router

När en DHCPv6-klient ansluter till nätverket, behöver den först veta hur den ska konfigurera sin IPv6-adress. För att göra detta skickar klienten ett Router Solicitation (RS)-meddelande via ICMPv6 till närliggande routrar. Routern svarar med ett Router Advertisement (RA)-meddelande, som innehåller information om hur klienten ska konfigurera sig.

I RA-meddelandet kan två flaggor vara särskilt viktiga:

  • M-flaggan (Managed Config Flag): När denna flagga är satt till 1, instrueras klienten att använda DHCPv6 för att hämta en IPv6-adress och annan konfigurationsinformation (stateful).
  • O-flaggan (Other Config Flag): När denna flagga är satt till 1, instrueras klienten att använda DHCPv6 för att endast hämta annan information, som DNS-server och domännamn, medan adressen konfigureras med SLAAC (Stateless Address Autoconfiguration).

2. Kommunikation med DHCPv6-servern:

När klienten har fått instruktioner från routern, börjar den kommunicera med en DHCPv6-server. Processen för denna kommunikation involverar flera olika meddelandetyper:

  • Solicit: När klienten har fått instruktioner från routern om att använda DHCPv6, skickar den ett Solicit-meddelande för att hitta en DHCPv6-server. Solicit skickas via multicast till alla tillgängliga DHCPv6-servrar i nätverket (ff02::1:2). Detta meddelande liknar DHCPDISCOVER i DHCPv4.
  • Advertise: DHCPv6-servern som tar emot Solicit svarar med ett Advertise-meddelande, vilket innebär att den är tillgänglig och kan tillhandahålla konfigurationsinformation. Detta är motsvarigheten till DHCPOFFER i DHCPv4. En DHCPv6-klient kan få svar från flera DHCPv6-servrar.
  • Request: Klienten skickar ett Request-meddelande till den DHCPv6-server som den vill använda. Detta meddelande begär specifik information från servern, såsom en IPv6-adress och annan nödvändig nätverkskonfiguration. Request-meddelandet liknar DHCPREQUEST i DHCPv4.
  • Reply: DHCPv6-servern svarar på klientens Request-meddelande med ett Reply-meddelande, där den tilldelar en IPv6-adress och annan information som efterfrågats. Detta är motsvarigheten till DHCPACK i DHCPv4 och markerar slutet på den initiala konfigurationsprocessen.
  • Confirm: Ett Confirm-meddelande används av en klient för att bekräfta att den IPv6-adress den har redan tilldelats är giltig i det aktuella nätverket. Detta sker till exempel när en enhet flyttas från ett nätverk till ett annat. Klienten skickar Confirm för att kontrollera om den nuvarande adressen är användbar i det nya nätverket. Om adressen är giltig, svarar servern med ett Reply-meddelande. Om adressen inte är giltig, kommer klienten att behöva skicka ett Solicit-meddelande för att få en ny adress.
  • Renew: Under lånetiden för sin IPv6-adress kommer klienten att skicka ett Renew-meddelande direkt till den DHCPv6-server som tilldelade adressen för att förnya lånetiden. Detta sker när 50 % av lånetiden (T1) har passerat. Renew-meddelandet liknar DHCPREQUEST i DHCPv4 när klienten begär en förlängning av sin lånetid.
  • Rebind: Om klienten inte får svar på sitt Renew-meddelande och 87,5 % (T2) av lånetiden har passerat, skickar klienten ett Rebind-meddelande till alla DHCPv6-servrar (multicast) för att försöka förnya sin adress. Detta meddelande liknar den bredare förfrågan som en klient gör i DHCPv4 om den inte längre kan kontakta sin ursprungliga server.
  • Decline: Ett Decline-meddelande skickas av klienten om den upptäcker att en tilldelad IPv6-adress inte kan användas. Detta kan ske om klienten ser att adressen redan är i bruk på nätverket (vilket kan upptäckas genom Duplicate Address Detection, DAD). När en klient skickar ett Decline, måste den begära en ny adress genom att skicka ett nytt Solicit-meddelande.
  • Release: Klienten kan skicka ett Release-meddelande till DHCPv6-servern för att släppa sin tilldelade IPv6-adress innan lånetiden löper ut, till exempel när den kopplar bort från nätverket. Detta motsvarar DHCPRELEASE i DHCPv4.
  • Information-request: I en stateless DHCPv6-konfiguration (när klienten använder SLAAC för att konfigurera sin adress), kan klienten skicka ett Information-request-meddelande till DHCPv6-servern för att hämta ytterligare information som DNS-servrar eller domännamn.

Sammanfattning:

Efter att ha fått information från en router via ett RA-meddelande (ICMPv6), bestämmer en DHCPv6-klient om den ska använda DHCPv6 baserat på flaggorna i RA. Därefter skickar den ett Solicit-meddelande för att hitta en DHCPv6-server och går igenom följande meddelande-utbyte: Advertise, Request, och Reply. Om klienten vill förnya eller släppa sin adress skickar den meddelanden som Renew, Rebind, eller Release. Andra meddelandetyper, såsom Confirm och Decline, används för att hantera förändringar i nätverket eller problem med tilldelade adresser.