8 Das DHCPv6-Protokoll IPv6 sollte DHCP als eigenständiges Protokoll ursprünglich überflüssig machen, da viele DHCP- Funktionen serienmäßig in IPv6 enthalten sind. Ein IPv6-fähiger Rechner kann aus der MAC-Adresse seines Netzwerk-Interfaces eine link-lokale IPv6-Adresse errechnen, unter der er dann im lokalen Netz erreichbar ist. Mit einer Anfrage an eine bestimmte Multicast-Gruppe (ff02::2) kann der Client nach erreichbaren Routern suchen und diese als Gateway verwenden. Diese statusfreie Autokonfiguration funktioniert recht zuverlässig, allerdings benötigt der Client oft neben einem Gateway auch noch die Zuweisung eines DNS-Servers; das wird jedoch durch diese Form der Konfiguration nicht bewerkstelligt: Eine automatische Suche nach DNS-Servern kommt in den gegenwärtigen Fassungen der IPv6-RFCs nicht vor. Es existieren verschiedene Lösungsansätze, wie z. B. eine weitere Multicastgruppe, an der die DNS- Server des lokalen Netzwerks lauschen. Diese sind jedoch bislang nicht standardisiert, so dass man für autokonfiguriertes DNS unter IPv6 bislang auf DHCP angewiesen bleibt. Für den beschriebenen Fall und Szenarien, in denen die automatische Netzwerkkonfiguration von IPv6-Clients nicht in die Hände des lokalen IPv6-Stacks im Betriebssystem gelegt werden soll, ist daher seit Juli 2003 in RFC 3315 das Protokoll DHCPv6 definiert, das in der IPv6-Welt die gleiche Funktionalität wie das gegenwärtig aktuelle DHCPv4 für IPv4 zur Verfügung stellt. Darüber hinaus ist DHCPv6 darauf ausgelegt, über optionale Felder im DHCPv6-Protokoll Konfigurationsinformationen über NIS+-, SIP-, NTP- und weitere Dienste zu transportieren. Welche Optionen in DHCPv6 aufgenommen werden, wird von der DHCP-Arbeitsgruppe der IETF festgelegt. Weitere Features von DHCPv6 sind die integrierten Sicherheitsfunktionen, durch die es möglich ist, DHCPv6 nur autorisierten Clients zugänglich zu machen, sowie die Möglichkeit, die Adresskonfiguration weiterhin per statusloser Autokonfiguration erfolgen zu lassen, jedoch weitere Konfigurationsdetails per DHCPv6 auf die Clients zu bringen. Abweichend von DHCPv4 läuft bei v6 die Kommunikation über die UDP-Ports 546 (Client) und 547 (Server). IPv6-Hosts können mehrere Methoden verwenden, um Adressen zu konfigurieren: Statusfreie automatische Adresskonfiguration wird zum Konfigurieren sowohl von verbindungslokalen Adressen als auch von zusätzlichen nicht verbindungslokalen Adressen durch den Austausch der Routeranfrage- und Routerankündigungsnachrichten mit angrenzenden Routern verwendet. Statusbehaftete automatische Adresskonfiguration wird verwendet, um nicht verbindungslokale Adressen durch die Verwendung eines Konfigurationsprotokolls zu konfigurieren, z. B. DHCP. Ein IPv6-Host führt eine statusfreie Autokonfiguration automatisch durch und verwendet ein Konfigurationsprotokoll, wie z. B. DHCPv6. Dies erfolgt aufgrund der folgenden Kennzeichen, die in der von einem angrenzenden Router gesendeten Routerankündigungsnachricht enthalten sind: Das verwaltete Adresskonfigurationskennzeichen (Managed Address Configuration Flag), das auch M-Kennzeichen genannt wird. Wenn dieses Kennzeichen auf 1 eingestellt ist, wird der Host angewiesen, ein Konfigurationsprotokoll zu verwenden, um statusbehaftete Adressen zu erhalten. Ein anderes statusbehaftetes Konfigurationskennzeichen, das auch O-Kennzeichen genannt wird. Wenn dieses Kennzeichen auf 1 eingestellt ist, wird der Host angewiesen, ein Konfigurationsprotokoll zu verwenden, um andere Konfigurationseinstellungen zu erhalten. Wenn die Werte der M- und O-Kennzeichen kombiniert werden, kann sich Folgendes ergeben: Beide Kennzeichen, sowohl M als auch O, sind auf 0 eingestellt. Diese Kombination entspricht einem Netzwerk ohne DHCPv6-Infrastruktur. Hosts verwenden Routerankündigungen für nicht verbindungslokale Adressen und andere Methoden (wie z. B. manuelle Konfiguration), um andere Einstellungen zu konfigurieren. 82 Mag. Christian Zahler, Stand: Mai 2010
Beide Kennzeichen, sowohl M als auch O, sind auf 1 eingestellt. DHCPv6 wird sowohl für Adressen als auch für andere Konfigurationseinstellungen verwendet. Diese Kombination wird DHCPv6 statusbehaftet genannt, wobei DHCPv6 den IPv6-Hosts statusbehaftete Adressen zuweist. Das M-Kennzeichen ist auf 0 und das O-Kennzeichen auf 1 eingestellt. DHCPv6 wird nur dazu verwendet, andere Konfigurationseinstellungen, aber keine Adressen zuzuweisen. Angrenzende Router werden konfiguriert, um nicht verbindungslokale Adresspräfixe anzukündigen, von denen die IPv6-Hosts statusfreie Adressen ableiten. Diese Kombination wird DHCPv6 statusfrei genannt: DHCPv6 weist IPv6-Hosts keine statusbehafteten Adressen, sondern statusfreie Konfigurationseinstellungen zu. Das M-Kennzeichen ist auf 1 und das O-Kennzeichen auf 0 eingestellt. In dieser Kombination wird DHCPv6 für die Adresskonfiguration, nicht jedoch für andere Einstellungen verwendet. Da IPv6-Hosts in der Regel mit anderen Einstellungen konfiguriert werden müssen, wie z. B. den IPv6-Adressen der DNS-Server, stellt dies eine unwahrscheinliche Kombination dar. Wie DHCP for IPv4 enthält eine DHCPv6-Infrastruktur folgende Komponenten: DHCPv6-Clients, die eine Konfiguration anfordern, DHCPv6-Server, die eine Konfiguration bereitstellen, und DHCPv6- Relay-Agents, die Nachrichten zwischen Clients und Servern übermitteln, wenn sich Clients in Subnetzen ohne DHCPv6-Server befinden. 8.1 DHCPv6-Nachrichten Wie bei DHCP for IPv4 werden bei DHCPv6 UDP-Nachrichten (User Datagram Protocol) verwendet. DHCPv6-Clients fragen DHCP-Nachrichten auf UDP-Port 546 ab. DHCPv6-Server und Relay-Agents fragen DHCPv6-Nachrichten auf UDP-Port 547 ab. Die Struktur für DHCPv6-Nachrichten ist viel einfacher als für DHCP for IPv4, dessen Ursprung im BOOTP-Protokoll liegt, das zur Unterstützung von Arbeitsstationen ohne Datenträger diente. Abbildung 1 illustriert die Struktur von DHCPv6- Nachrichten, die zwischen Client und Server übermittelt werden. Abbildung 1 DHCPv6-Nachrichten zwischen Client und Server Das 1-Byte-Feld Msg-Type zeigt den DHCPv6-Nachrichtentyp an. Das 3-Byte-Feld Transaction-ID wird von einem Client bestimmt und dazu verwendet, die Nachrichten eines DHCPv6- Nachrichtenaustauschs zu gruppieren. Aufgrund des Felds Transaction-ID werden DHCPv6- Optionen dazu verwendet, die Client- und Serveridentifikation, Adressen und andere Konfigurationseinstellungen anzuzeigen. Eine Liste der definierten DHCPv6-Optionen erhalten Sie in der RFC 3315 (siehe auch DHCPv6-RFC-Ressourcen in der Randleiste). DHCPv6-Optionen sind im Format Typ-Länge-Wert formatiert. Abbildung 2 illustriert die Struktur von DHCPv6-Optionen. Das 2-Byte-Feld Option-Code zeigt eine bestimmte Option an. Das 2-Byte-Feld Option-Len zeigt die Länge des Felds Option-Data in Bytes an. Das Feld Option-Data enthält die Daten für die Option. Es ist eine eigene Nachrichtenstruktur für die Nachrichten vorhanden, die zwischen Relay-Agents und Servern ausgetauscht werden, um zusätzliche Informationen aufzuzeichnen. Abbildung 3 illustriert die Struktur dieser Art von Nachrichten. Mag. Christian Zahler, Stand: Mai 2010 83
Abbildung 2 Struktur von DHCPv6-Optionen Das 1-Byte-Feld Hop-Count zeigt die Anzahl der Relay-Agents an, die die Nachricht empfangen haben. Ein empfangender Relay-Agent kann die Nachricht verwerfen, wenn sie eine konfigurierte maximale Hopanzahl überschreitet. Das 16-Byte-Feld Link-Address enthält eine nicht verbindungslokale Adresse, die einer Schnittstelle zugewiesen wird, die mit dem Subnetz verbunden ist, in dem sich der Client befindet. Über das Feld Link-Address kann der Server den richtigen Adressbereich für die Adresszuweisung bestimmen. Das 16-Byte-Feld Peer-Address enthält die IPv6-Adresse des Clients, der die Nachricht ursprünglich gesendet hat, oder des vorherigen Relay- Agents, der die Nachricht übertragen hat. Abgesehen vom Feld Peer-Address gibt es DHCPv6- Optionen, die die Option Relay Message umfassen, in der die übertragene Nachricht und andere Optionen enthalten sind. Die Option Relay Message stellt eine Kapselung der Nachrichten bereit, die zwischen dem Client und dem Server ausgetauscht werden. Es gibt keine für IPv6 definierten Broadcastadressen. Daher ist die Verwendung der begrenzten Broadcastadresse für einige DHCPv4-Nachrichten durch die Verwendung der All_DHCP_Relay_Agents_and_Servers-Adresse FF02::1:2 für DHCPv6 ersetzt worden. Beispielsweise sendet ein DHCPv6-Client, der versucht, den Ort des DHCPv6-Servers im Netzwerk festzustellen, eine Solicit-Nachricht (Anfrage) von seiner verbindungslokalen Adresse an FF02::1:2. Wenn im Subnetz des Hosts ein DHCPv6-Server vorhanden ist, empfängt er die Solicit-Nachricht und sendet eine entsprechende Antwort. In der Regel empfängt jedoch ein DHCPv6-Relay-Agent im Subnetz des Hosts die Solicit-Nachricht und leitet sie an einen DHCPv6-Server weiter. Abbildung 3 Struktur der Nachrichten zwischen Relay und Server 8.2 Statusbehafteter Nachrichtenaustausch Ein statusbehafteter DHCPv6-Nachrichtenaustausch zum Abrufen von IPv6-Adressen und Konfigurationseinstellungen (wobei sowohl das M- als auch das O-Kennzeichen in einer empfangenen Routerankündigung auf 1 eingestellt ist) besteht standardmäßig aus den folgenden Nachrichten: Einer Solicit-Nachricht (Anfrage), die vom Client gesendet wird, um die Server zu lokalisieren. Einer Advertise-Nachricht (Ankündigung), die von einem Server gesendet wird, um anzuzeigen, dass er Adressen und Konfigurationseinstellungen bereitstellen kann. 84 Mag. Christian Zahler, Stand: Mai 2010
Einer Request-Nachricht (Anforderung), die vom Client gesendet wird, um Adressen und Konfigurationseinstellungen von einem bestimmten Server anzufordern. Einer Reply-Nachricht (Antwort), die vom angeforderten Server gesendet wird, der die Adressen und Konfigurationseinstellungen enthält. Wenn zwischen dem Client und dem Server ein Relay-Agent vorhanden ist, sendet der Server die Relay-Forward-Nachrichten (Weiterleitung), die die gekapselten Solicit- und Request-Nachrichten des Clients enthalten. Der Server sendet die Relay-Reply-Nachrichten des Relay-Agents, die die gekapselten Advertise- und Reply-Nachrichten für den Client enthalten. Eine vollständige Liste der DHCPv6-Nachrichten findet sich in Abbildung 4. 8.3 Statusfreier Nachrichtenaustausch Ein statusfreier DHCPv6-Nachrichtenaustausch für den ausschließlichen Abruf von Konfigurationseinstellungen, wenn in einer empfangenen Routerankündigung das M-Kennzeichen auf 0 und das O-Kennzeichen auf 1 eingestellt ist, besteht standardmäßig aus den folgenden Nachrichten: Einer Information-Request-Nachricht, die vom DHCPv6-Client gesendet wird, um Konfigurationseinstellungen von einem Server zu erhalten, und einer Reply-Nachricht, die von einem Server gesendet wird, der die angeforderten Konfigurationseinstellungen enthält. Für ein IPv6-Netzwerk mit Routern, die so konfiguriert sind, dass sie IPv6-Hosts statusfreie Adresspräfixe zuweisen, kann der 2-Nachrichten-DHCPv6-Austausch verwendet werden, um DNS- Server, DNS-Domänennamen und andere Konfigurationseinstellungen zuzuweisen, die in der Routerankündigungsnachricht nicht enthalten sind. 8.4 DHCPv6-Unterstützung in Windows Windows 7 und Windows Server 2008 R2 enthalten einen DHCPv6-Client. In Abhängigkeit von den Werten der M- und O-Kennzeichen in empfangenen Routerankündigungsnachrichten versucht der DHCPv6-Client, eine DHCPv6-basierte Konfiguration durchzuführen. Um DHCPv6 zu verwenden, müssen Sie daher die DHCPv6-Server und -Relay-Agents so konfigurieren, dass sie jedes IPv6- Subnetz verarbeiten, und müssen dann Ihre IPv6-Router konfigurieren, um die beiden Kennzeichen auf ihre entsprechenden Werte einzustellen. Wenn für ein bestehendes Subnetz mehrere Ankündigungsrouter vorhanden sind, sollten sie so konfiguriert werden, dass sie die gleichen statusfreien Adresspräfixe und Werte der M- und O-Kennzeichen ankündigen. IPv6-Hosts unter Windows XP oder Windows Server 2003 enthalten keinen DHCPv6-Client und ignorieren daher die Werte der M- und O-Kennzeichen in empfangenen Routerankündigungen. Wichtig zum Verständnis: IPv6-Clients fragen nicht selbsttätig nach einer DHCPv6- Konfiguration, sondern warten auf Routerankündigungen. Damit DHCPv6 also funktioniert, müssen die M- und O-Kennzeichen auf einem IPv6-kompatiblen Router gesetzt werden. Dazu sind folgende Schritte durchzuführen: Schritt 1 Installieren Sie den DHCPv6-Server auf einem Rechner, der auch den Routing-Dienst ausführt. Achten Sie darauf, dass IPv6-Routing aktiviert ist (MMC-Snap-In "Routing und RAS", Eigenschaften des Servers): Setzen Sie das M-Kennzeichen in Routerankündigungen mit folgendem Befehl auf den Wert 1: netsh interface ipv6 set interface "LAN-Verbindung" managedaddress=enabled Gleichermaßen können Sie das O-Kennzeichen in Routerankündigungen mit folgendem Befehl auf 1 einstellen: Mag. Christian Zahler, Stand: Mai 2010 85
netsh interface ipv6 set interface "LAN-Verbindung" otherstateful=enabled Mit folgendem Befehl können Sie angeben, ob Routerankündigungen über eine Schnittstelle gesendet werden. netsh interface ipv6 set interface "LAN-Verbindung" forwarding=enabled advertise=enabled Der Standardwert ist "disabled". Um eine Liste und den Status aller IPv6-Netzwerkschnittstellen zu erhalten, führen Sie folgenden Befehl aus: netsh interface ipv6 show interface Als Ergebnis könnte folgende Information erhalten werden: Idx Met MTU Status Name --- --- ----- ----------- ------------------- 1 50 4294967295 connected Loopback Pseudo-Interface 1 10 20 1500 connected LAN-Intern 13 10 1280 disconnected LAN-Verbindung* 9 12 20 1500 connected LAN-Extern Schritt 2 - Erstellen Sie einen IPv6-Bereich Beispiel: DHCPv6 Bereich Adresspräfix: fc00:a::/64 Ausschließungsbereich: Fc00:a::0:0:0:ffff bis fc00:a:ffff:ffff:fffe 86 Mag. Christian Zahler, Stand: Mai 2010
Mag. Christian Zahler, Stand: Mai 2010 87
88 Mag. Christian Zahler, Stand: Mai 2010
Achtung: Vergessen Sie nicht den doppelten Doppelpunkt am Ende der Präfixkennung! Mag. Christian Zahler, Stand: Mai 2010 89
Beachten Sie beim Eintragen der Ausschlüsse, dass immer 4 Hexadezimal-Gruppen eingetragen werden müssen! 90 Mag. Christian Zahler, Stand: Mai 2010
Ein veröffentlichender Router oder DHCPv6-Server gibt die gültige und bevorzugte Gültigkeitsdauer für ein Adresspräfix an. Eine Adresse geht in den Status Veraltet über, wenn die bevorzugte Gültigkeitsdauer der Adresse überschritten wird. Die bevorzugte Gültigkeitsdauer einer automatisch konfigurierten Adresse wird durch den Eingang von Routerankündigungen oder durch Erneuern der DHCPv6-Adresskonfiguration aktualisiert. Abbildung 1 zeigt die Status einer automatisch konfigurierten Adresse und ihre Beziehung zur bevorzugten und gültigen Gültigkeitsdauer. Mag. Christian Zahler, Stand: Mai 2010 91