22. DHCP-Optionen (DHCP Options)
- DHCP-Optionen
Optionen werden verwendet, um zusätzliche Informationen und Parameter in DHCP-Nachrichten zu transportieren. Jede Option teilt ein gemeinsames Basisformat, wie in Abschnitt 22.1 beschrieben. Alle Werte in Optionen werden in Netzwerk-Byte-Reihenfolge dargestellt.
Dieses Dokument beschreibt die als Teil der DHCP-Basisspezifikation definierten DHCP-Optionen. Andere Optionen können künftig in separaten Dokumenten definiert werden.
Sofern nicht anders vermerkt, kann jede Option nur im Optionsbereich einer DHCP-Nachricht erscheinen und darf nur einmal auftreten. Wenn eine Option mehrmals erscheint, wird jede Instanz als separat betrachtet, und die Datenbereiche der Optionen DÜRFEN NICHT verkettet oder anderweitig kombiniert werden.
22.1. Format von DHCP-Optionen
Das Format von DHCP-Optionen ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| option-code | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| option-data |
| (option-len octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code Eine vorzeichenlose Ganzzahl, die den spezifischen
Optionstyp identifiziert, der in dieser Option
transportiert wird.
option-len Eine vorzeichenlose Ganzzahl, die die Länge des Felds
option-data in dieser Option in Oktetten angibt.
option-data Die Daten für die Option; das Format dieser Daten hängt
von der Definition der Option ab.
DHCPv6-Optionen werden durch Kapselung bereichsbezogen. Einige Optionen gelten allgemein für den Client, einige sind spezifisch für eine IA, und einige sind spezifisch für die Adressen innerhalb einer IA. Diese beiden letztgenannten Fälle werden in den Abschnitten 22.4 und 22.6 erörtert.
22.2. Client Identifier-Option
Die Client Identifier-Option wird verwendet, um einen DUID (siehe Abschnitt 9) zur Identifizierung eines Clients zwischen Client und Server zu transportieren. Das Format der Client Identifier-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_CLIENTID | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. DUID .
. (variable length) .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_CLIENTID (1).
option-len Länge des DUID in Oktetten.
DUID Der DUID für den Client.
22.3. Server Identifier-Option
Die Server Identifier-Option wird verwendet, um einen DUID (siehe Abschnitt 9) zur Identifizierung eines Servers zwischen Client und Server zu transportieren. Das Format der Server Identifier-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_SERVERID | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. DUID .
. (variable length) .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_SERVERID (2).
option-len Länge des DUID in Oktetten.
DUID Der DUID für den Server.
22.4. Identity Association for Non-temporary Addresses Option
Die Identity Association for Non-temporary Addresses-Option (IA_NA-Option) wird verwendet, um eine IA_NA, die mit der IA_NA verbundenen Parameter und die mit der IA_NA verbundenen nicht temporären Adressen zu transportieren.
Adressen, die in einer IA_NA-Option erscheinen, sind keine temporären Adressen (siehe Abschnitt 22.5).
Das Format der IA_NA-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_IA_NA | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IAID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| T1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| T2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. IA_NA-options .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_IA_NA (3).
option-len 12 + Länge des IA_NA-options-Felds.
IAID Der eindeutige Bezeichner für diese IA_NA; die
IAID muss unter den Bezeichnern für alle IA_NAs
dieses Clients eindeutig sein. Der Zahlenraum für
IA_NA-IAIDs ist vom Zahlenraum für IA_TA-IAIDs
getrennt.
T1 Der Zeitpunkt, zu dem der Client den Server
kontaktiert, von dem die Adressen in der IA_NA
erhalten wurden, um die Lebensdauern der der IA_NA
zugewiesenen Adressen zu verlängern; T1 ist eine
Zeitdauer relativ zur aktuellen Zeit, ausgedrückt
in Sekunden.
T2 Der Zeitpunkt, zu dem der Client einen beliebigen
verfügbaren Server kontaktiert, um die Lebensdauern
der der IA_NA zugewiesenen Adressen zu verlängern;
T2 ist eine Zeitdauer relativ zur aktuellen Zeit,
ausgedrückt in Sekunden.
IA_NA-options Optionen, die mit dieser IA_NA verbunden sind.
Das IA_NA-options-Feld kapselt jene Optionen, die spezifisch für diese IA_NA sind. Beispielsweise befinden sich alle IA Address-Optionen, die die mit dieser IA_NA verbundenen Adressen tragen, im IA_NA-options-Feld.
Eine IA_NA-Option kann nur im Optionsbereich einer DHCP-Nachricht erscheinen. Eine DHCP-Nachricht kann mehrere IA_NA-Optionen enthalten.
Der Status aller Operationen, die diese IA_NA betreffen, wird in einer Status Code-Option im IA_NA-options-Feld angegeben.
Beachten Sie, dass eine IA_NA keine eigene explizite "Lebensdauer" oder "Lease-Länge" besitzt. Wenn die gültigen Lebensdauern aller Adressen in einer IA_NA abgelaufen sind, kann die IA_NA als abgelaufen betrachtet werden. T1 und T2 sind enthalten, um Servern explizite Kontrolle darüber zu geben, wann ein Client einen bestimmten Server erneut wegen einer bestimmten IA_NA kontaktiert.
In einer vom Client an einen Server gesendeten Nachricht geben die Werte in den Feldern T1 und T2 die Präferenz des Clients für diese Parameter an. Der Client setzt T1 und T2 auf 0, wenn er keine Präferenz für diese Werte hat. In einer vom Server an den Client gesendeten Nachricht MUSS der Client die Werte in den Feldern T1 und T2 für die Parameter T1 und T2 verwenden, es sei denn, diese Werte in jenen Feldern sind 0. Die Werte in den Feldern T1 und T2 sind die Anzahl der Sekunden bis T1 und T2.
Der Server wählt die Zeiten T1 und T2 so, dass der Client die Lebensdauern aller Adressen in der IA_NA verlängern kann, bevor die Lebensdauern ablaufen, selbst wenn der Server für eine kurze Zeit nicht verfügbar ist. Empfohlene Werte für T1 und T2 sind 0,5 bzw. 0,8 mal die kürzeste bevorzugte Lebensdauer der Adressen in der IA, die der Server zu verlängern bereit ist. Wenn die "kürzeste" bevorzugte Lebensdauer 0xffffffff ("Unendlich") ist, sind auch die empfohlenen T1- und T2-Werte 0xffffffff. Wenn der Zeitpunkt, zu dem die Adressen in einer IA_NA erneuert werden sollen, in das Ermessen des Clients gestellt werden soll, setzt der Server T1 und T2 auf 0.
Wenn ein Server eine IA_NA mit T1 größer als T2 empfängt und sowohl T1 als auch T2 größer als 0 sind, ignoriert der Server die ungültigen Werte von T1 und T2 und verarbeitet die IA_NA so, als hätte der Client T1 und T2 auf 0 gesetzt.
Wenn ein Client eine IA_NA mit T1 größer als T2 empfängt und sowohl T1 als auch T2 größer als 0 sind, verwirft der Client die IA_NA-Option und verarbeitet den Rest der Nachricht so, als hätte der Server die ungültige IA_NA-Option nicht enthalten.
Sorgfalt sollte bei der Wahl von T1 oder T2 als 0xffffffff ("Unendlich") walten gelassen werden. Ein Client wird niemals versuchen, die Lebensdauern von Adressen in einer IA mit T1 gleich 0xffffffff zu verlängern. Ein Client wird niemals versuchen, eine Rebind-Nachricht zu verwenden, um einen anderen Server zu lokalisieren, um die Lebensdauern von Adressen in einer IA mit T2 gleich 0xffffffff zu verlängern.
22.5. Identity Association for Temporary Addresses Option
Die Identity Association for the Temporary Addresses-Option (IA_TA-Option) wird verwendet, um eine IA_TA, die mit der IA_TA verbundenen Parameter und die mit der IA_TA verbundenen Adressen zu transportieren. Alle Adressen in dieser Option werden vom Client als temporäre Adressen verwendet, wie in RFC 3041 [12] definiert. Das Format der IA_TA-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_IA_TA | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| IAID (4 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. IA_TA-options .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_IA_TA (4).
option-len 4 + Länge des IA_TA-options-Felds.
IAID Der eindeutige Bezeichner für diese IA_TA; die
IAID muss unter den Bezeichnern für alle IA_TAs
dieses Clients eindeutig sein. Der Zahlenraum für
IA_TA-IAIDs ist vom Zahlenraum für IA_NA-IAIDs
getrennt.
IA_TA-options Optionen, die mit dieser IA_TA verbunden sind.
Das IA_TA-Options-Feld kapselt jene Optionen, die spezifisch für diese IA_TA sind. Beispielsweise befinden sich alle IA Address-Optionen, die die mit dieser IA_TA verbundenen Adressen tragen, im IA_TA-options-Feld.
Jede IA_TA trägt einen "Satz" temporärer Adressen; das heißt, höchstens eine Adresse aus jedem Präfix, der dem Link zugewiesen ist, an den der Client angehängt ist.
Eine IA_TA-Option kann nur im Optionsbereich einer DHCP-Nachricht erscheinen. Eine DHCP-Nachricht kann mehrere IA_TA-Optionen enthalten.
Der Status aller Operationen, die diese IA_TA betreffen, wird in einer Status Code-Option im IA_TA-options-Feld angegeben.
Beachten Sie, dass eine IA keine eigene explizite "Lebensdauer" oder "Lease-Länge" besitzt. Wenn die gültigen Lebensdauern aller Adressen in einer IA_TA abgelaufen sind, kann die IA als abgelaufen betrachtet werden.
Eine IA_TA-Option enthält keine Werte für T1 und T2. Ein Client KANN fordern, dass die Lebensdauern auf temporären Adressen verlängert werden, indem er die Adressen in einer IA_TA-Option aufnimmt, die in einer Renew- oder Rebind-Nachricht an einen Server gesendet wird. Beispielsweise würde ein Client eine Verlängerung der Lebensdauer einer temporären Adresse anfordern, um einer Anwendung zu erlauben, eine etablierte TCP-Verbindung weiterhin zu nutzen.
Der Client erhält neue temporäre Adressen, indem er eine IA_TA-Option mit einer neuen IAID an einen Server sendet. Das Anfordern neuer temporärer Adressen vom Server ist das Äquivalent zum Erzeugen neuer temporärer Adressen, wie in RFC 3041 beschrieben. Der Server wird neue temporäre Adressen erzeugen und an den Client zurückgeben. Der Client sollte neue temporäre Adressen anfordern, bevor die Lebensdauern der zuvor zugewiesenen Adressen ablaufen.
Ein Server MUSS für dieselbe IA_TA (identifiziert durch die IAID) denselben Satz temporärer Adressen zurückgeben, solange jene Adressen noch gültig sind. Nachdem die Lebensdauern der Adressen in einer IA_TA abgelaufen sind, KANN die IAID wiederverwendet werden, um eine neue IA_TA mit neuen temporären Adressen zu identifizieren.
Diese Option KANN in einer Confirm-Nachricht erscheinen, wenn die Lebensdauern der temporären Adressen in der zugehörigen IA nicht abgelaufen sind.
22.6. IA Address Option
Die IA Address-Option wird verwendet, um IPv6-Adressen anzugeben, die mit einer IA_NA oder einer IA_TA verbunden sind. Die IA Address-Option muss in das Optionsfeld einer IA_NA- oder IA_TA-Option gekapselt werden. Das Optionsfeld kapselt jene Optionen, die spezifisch für diese Adresse sind.
Das Format der IA Address-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_IAADDR | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| IPv6 address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| preferred-lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| valid-lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. IAaddr-options .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_IAADDR (5).
option-len 24 + Länge des IAaddr-options-Felds.
IPv6 address Eine IPv6-Adresse.
preferred-lifetime Die bevorzugte Lebensdauer für die IPv6-Adresse in
der Option, ausgedrückt in Sekunden.
valid-lifetime Die gültige Lebensdauer für die IPv6-Adresse in der
Option, ausgedrückt in Sekunden.
IAaddr-options Optionen, die mit dieser Adresse verbunden sind.
In einer vom Client an einen Server gesendeten Nachricht geben die Werte in den Feldern preferred- und valid-lifetime die Präferenz des Clients für diese Parameter an. Der Client kann 0 senden, wenn er keine Präferenz für die bevorzugte und gültige Lebensdauer hat. In einer vom Server an den Client gesendeten Nachricht MUSS der Client die Werte in den Feldern preferred- und valid-lifetime für die bevorzugte und gültige Lebensdauer verwenden. Die Werte in der bevorzugten und gültigen Lebensdauer sind die Anzahl der Sekunden, die in jeder Lebensdauer noch verbleiben.
Ein Client verwirft alle Adressen, für die die bevorzugte Lebensdauer größer als die gültige Lebensdauer ist. Ein Server ignoriert die vom Client gesetzten Lebensdauern, wenn die bevorzugte Lebensdauer größer als die gültige Lebensdauer ist, und ignoriert die vom Client gesetzten Werte für T1 und T2, wenn jene Werte größer als die bevorzugte Lebensdauer sind.
Sorgfalt sollte bei der Wahl der gültigen Lebensdauer einer Adresse als 0xffffffff ("Unendlich") walten gelassen werden, was einer dauerhaften Zuweisung einer Adresse an einen Client gleichkommt.
Eine IA Address-Option kann nur in einer IA_NA-Option oder einer IA_TA- Option erscheinen. Mehr als eine IA Address-Option kann in einer IA_NA- Option oder einer IA_TA-Option erscheinen.
Der Status aller Operationen, die diese IA Address betreffen, wird in einer Status Code-Option im IAaddr-options-Feld angegeben.
22.7. Option Request Option
Die Option Request-Option wird verwendet, um in einer Nachricht zwischen Client und Server eine Liste von Optionen zu identifizieren. Das Format der Option Request-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_ORO | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| requested-option-code-1 | requested-option-code-2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_ORO (6).
option-len 2 * Anzahl der angeforderten Optionen.
requested-option-code-n Der Optionscode für eine vom Client
angeforderte Option.
Ein Client KANN eine Option Request-Option in eine Solicit-, Request-, Renew-, Rebind-, Confirm- oder Information-request-Nachricht aufnehmen, um den Server über die Optionen zu informieren, die der Client vom Server gesendet haben möchte. Ein Server KANN eine Option Request-Option in eine Reconfigure-Option aufnehmen, um anzugeben, welche Optionen der Client vom Server anfordern soll.
22.8. Preference Option
Die Preference-Option wird von einem Server an einen Client gesendet, um die Auswahl eines Servers durch den Client zu beeinflussen.
Das Format der Preference-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_PREFERENCE | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| pref-value |
+-+-+-+-+-+-+-+-+
option-code OPTION_PREFERENCE (7).
option-len 1.
pref-value Der Präferenzwert für den Server in dieser Nachricht.
Ein Server KANN eine Preference-Option in eine Advertise-Nachricht aufnehmen, um die Auswahl eines Servers durch den Client zu steuern. Siehe Abschnitt 17.1.3 für die Verwendung der Preference-Option durch den Client und die Interpretation des Datenwerts der Preference-Option.
22.9. Elapsed Time Option
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_ELAPSED_TIME | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| elapsed-time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_ELAPSED_TIME (8).
option-len 2.
elapsed-time Die Zeitspanne, seit der Client seinen aktuellen
DHCP-Transaktionsaustausch begonnen hat. Diese Zeit ist
in Hundertstelsekunden (10^-2 Sekunden) ausgedrückt.
Ein Client MUSS eine Elapsed Time-Option in Nachrichten aufnehmen, um anzugeben, wie lange der Client versucht, einen DHCP-Nachrichtenaustausch abzuschließen. Die verstrichene Zeit wird von dem Zeitpunkt an gemessen, an dem der Client die erste Nachricht im Nachrichtenaustausch gesendet hat, und das elapsed-time-Feld wird in der ersten Nachricht im Nachrichtenaustausch auf 0 gesetzt. Server und Relay-Agenten verwenden den Datenwert in dieser Option als Eingabe für die Richtlinie, die steuert, wie ein Server auf eine Client-Nachricht antwortet. Beispielsweise erlaubt die Elapsed Time-Option einem sekundären DHCP-Server, auf eine Anfrage zu antworten, wenn ein primärer Server nicht in angemessener Zeit geantwortet hat. Der Wert der verstrichenen Zeit ist eine vorzeichenlose 16-Bit- Ganzzahl. Der Client verwendet den Wert 0xffff, um alle Werte der verstrichenen Zeit darzustellen, die größer als der größte Zeitwert sind, der im Elapsed Time-Feld dargestellt werden kann.
22.10. Relay Message Option
Die Relay Message-Option trägt eine DHCP-Nachricht in einer Relay-forward- oder Relay-reply-Nachricht.
Das Format der Relay Message-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_RELAY_MSG | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
. DHCP-relay-message .
. .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_RELAY_MSG (9)
option-len Länge von DHCP-relay-message
DHCP-relay-message In einer Relay-forward-Nachricht die
weiterzuleitende Nachricht, wortwörtlich an den nächsten
Relay-Agenten oder Server weitergeleitet; in einer
Relay-reply-Nachricht die Nachricht, die kopiert und an
den Relay-Agenten oder Client weitergeleitet werden soll,
dessen Adresse im peer-address-Feld der Relay-reply-
Nachricht steht
22.11. Authentication Option
Die Authentication-Option trägt Authentifizierungsinformationen, um die Identität und die Inhalte von DHCP-Nachrichten zu authentifizieren. Die Verwendung der Authentication-Option wird in Abschnitt 21 beschrieben. Das Format der Authentication-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_AUTH | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| protocol | algorithm | RDM | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| replay detection (64 bits) +-+-+-+-+-+-+-+-+
| | auth-info |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
. authentication information .
. (variable length) .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_AUTH (11)
option-len 11 + Länge des
Authentifizierungsinformationsfelds
protocol Das in dieser Authentication-Option
verwendete Authentifizierungsprotokoll
algorithm Der im Authentifizierungsprotokoll
verwendete Algorithmus
RDM Die in dieser Authentication-Option
verwendete Wiedergabeerkennungsmethode
Replay detection Die Wiedergabeerkennungsinformationen für
das RDM
authentication information Die Authentifizierungsinformationen, wie
durch das in dieser Authentication-Option
verwendete Protokoll und den Algorithmus
spezifiziert
22.12. Server Unicast Option
Der Server sendet diese Option an einen Client, um ihm anzuzeigen, dass es ihm gestattet ist, Nachrichten per Unicast an den Server zu senden. Das Format der Server Unicast-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_UNICAST | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| server-address |
| |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_UNICAST (12).
option-len 16.
server-address Die IP-Adresse, an die der Client Nachrichten senden
soll, die per Unicast zugestellt werden.
Der Server spezifiziert die IPv6-Adresse, an die der Client Unicast-Nachrichten senden soll, im server-address-Feld. Wenn ein Client diese Option empfängt, sendet er, wo erlaubt und angemessen, Nachrichten direkt per Unicast an den Server unter Verwendung der im server-address- Feld der Option angegebenen IPv6-Adresse.
Wenn der Server eine Unicast-Option an den Client sendet, werden einige Nachrichten vom Client nicht von Relay-Agenten weitergeleitet und werden keine Relay-Agent-Optionen von den Relay-Agenten enthalten. Daher sollte ein Server eine Unicast-Option nur an einen Client senden, wenn keine Relay-Agent-Optionen gesendet werden. Ein DHCP-Server weist alle Nachrichten zurück, die unangemessen per Unicast gesendet wurden, um sicherzustellen, dass Nachrichten von Relay-Agenten weitergeleitet werden, wenn Relay-Agent-Optionen verwendet werden.
Einzelheiten dazu, wann der Client Nachrichten per Unicast an den Server senden darf, finden sich in Abschnitt 18.
22.13. Status Code Option
Diese Option liefert eine Statusangabe in Bezug auf die DHCP-Nachricht oder die Option, in der sie erscheint. Das Format der Status Code-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_STATUS_CODE | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| status-code | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
. .
. status-message .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_STATUS_CODE (13).
option-len 2 + Länge von status-message.
status-code Der numerische Code für den in dieser Option
kodierten Status. Die Statuscodes sind in
Abschnitt 24.4 definiert.
status-message Eine UTF-8-kodierte Textzeichenfolge, die für die
Anzeige für einen Endbenutzer geeignet ist und NICHT
null-terminiert sein darf.
Eine Status Code-Option kann im Optionsfeld einer DHCP-Nachricht und/oder im Optionsfeld einer anderen Option erscheinen. Wenn die Status Code- Option nicht in einer Nachricht erscheint, in der die Option erscheinen könnte, wird der Status der Nachricht als Success (Erfolg) angenommen.
22.14. Rapid Commit Option
Die Rapid Commit-Option wird verwendet, um die Verwendung des Zwei-Nachrichten-Austauschs für die Adresszuweisung zu signalisieren. Das Format der Rapid Commit-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_RAPID_COMMIT | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_RAPID_COMMIT (14).
option-len 0.
Ein Client KANN diese Option in eine Solicit-Nachricht aufnehmen, wenn er bereit ist, den in Abschnitt 17.1.1 beschriebenen Solicit-Reply- Nachrichtenaustausch durchzuführen.
Ein Server MUSS diese Option in eine Reply-Nachricht aufnehmen, die als Antwort auf eine Solicit-Nachricht gesendet wird, wenn der Solicit-Reply- Nachrichtenaustausch abgeschlossen wird.
DISKUSSION:
Jeder Server, der mit einer Reply auf eine Solicit antwortet, die eine
Rapid Commit-Option enthält, wird die in der Reply-Nachricht
zugewiesenen Adressen an den Client binden, und wird keine Bestätigung
erhalten, dass der Client die Reply-Nachricht empfangen hat.
Wenn daher mehr als ein Server auf eine Solicit antwortet, die eine
Rapid Commit-Option enthält, werden einige Server Adressen binden, die
vom Client tatsächlich nicht verwendet werden.
Das Problem ungenutzter Adressen kann beispielsweise minimiert werden,
indem der DHCP-Dienst so entworfen wird, dass nur ein Server auf die
Solicit antwortet, oder indem relativ kurze Lebensdauern für
zugewiesene Adressen verwendet werden.
22.15. User Class Option
Die User Class-Option wird von einem Client verwendet, um den Typ oder die Kategorie des Benutzers oder der Anwendungen zu identifizieren, die er repräsentiert.
Das Format der User Class-Option ist:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_USER_CLASS | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. user-class-data .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_USER_CLASS (15).
option-len Länge des user-class-data-Felds.
user-class-data Die vom Client getragenen Benutzerklassen.
Die Informationen, die im Datenbereich dieser Option enthalten sind, bestehen aus einem oder mehreren opaken Feldern, die die Benutzerklasse oder die Klassen repräsentieren, deren Mitglied der Client ist. Ein Server wählt Konfigurationsinformationen für den Client basierend auf den in dieser Option identifizierten Klassen aus. Beispielsweise kann die User Class-Option verwendet werden, um alle Clients von Personen in der Buchhaltungsabteilung mit einem anderen Drucker zu konfigurieren als Clients von Personen in der Marketingabteilung. Die in dieser Option getragenen Benutzerklasseninformationen MÜSSEN auf dem Client konfigurierbar sein.
Der Datenbereich der User Class-Option MUSS eine oder mehrere Instanzen von user-class-data enthalten. Jede Instanz der user-class-data ist wie folgt formatiert:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
| user-class-len | opaque-data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
Der user-class-len ist zwei Oktett lang und gibt die Länge der opaken Benutzerklassendaten in Netzwerk-Byte-Reihenfolge an.
Ein Server interpretiert die in dieser Option identifizierten Klassen gemäß seiner Konfiguration, um die geeigneten Konfigurationsinformationen für den Client auszuwählen. Ein Server kann nur jene Benutzerklassen verwenden, die er zu interpretieren konfiguriert ist, bei der Auswahl von Konfigurationsinformationen für einen Client, und ignoriert alle anderen Benutzerklassen. Als Antwort auf eine Nachricht, die eine User Class- Option enthält, nimmt ein Server eine User Class-Option auf, die jene Klassen enthält, die vom Server erfolgreich interpretiert wurden, sodass der Client über die vom Server interpretierten Klassen informiert werden kann.
22.16. Vendor Class Option
Diese Option wird von einem Client verwendet, um den Hersteller zu identifizieren, der die Hardware hergestellt hat, auf der der Client ausgeführt wird. Die Informationen, die im Datenbereich dieser Option enthalten sind, bestehen aus einem oder mehreren opaken Feldern, die Einzelheiten der Hardwaredatenkonfiguration identifizieren. Das Format der Vendor Class-Option ist:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_VENDOR_CLASS | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| enterprise-number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. vendor-class-data .
. . . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_VENDOR_CLASS (16).
option-len 4 + Länge des vendor-class-data-Felds.
enterprise-number Die registrierte Enterprise-Nummer des Herstellers,
wie bei der IANA [6] registriert.
vendor-class-data Die Hardwarekonfiguration des Hosts, auf dem der
Client ausgeführt wird.
Die vendor-class-data bestehen aus einer Reihe separater Elemente, von denen jedes ein Merkmal der Hardwarekonfiguration des Clients beschreibt. Beispiele für Instanzen von vendor-class-data könnten die Version des Betriebssystems, das der Client ausführt, oder die Menge des installierten Speichers auf dem Client umfassen.
Jede Instanz der vendor-class-data ist wie folgt formatiert:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
| vendor-class-len | opaque-data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
Der vendor-class-len ist zwei Oktett lang und gibt die Länge der opaken Vendor-Class-Daten in Netzwerk-Byte-Reihenfolge an.
22.17. Vendor-specific Information Option
Diese Option wird von Clients und Servern verwendet, um herstellerspezifische Informationen auszutauschen.
Das Format der Vendor-specific Information-Option ist:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_VENDOR_OPTS | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| enterprise-number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. option-data .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_VENDOR_OPTS (17)
option-len 4 + Länge des option-data-Felds
enterprise-number Die registrierte Enterprise-Nummer des Herstellers,
wie bei der IANA [6] registriert.
option-data Ein opakes Objekt aus option-len Oktetten, das von
herstellerspezifischem Code auf den Clients und
Servern interpretiert wird
Die Definition der in dieser Option transportierten Informationen ist herstellerspezifisch. Der Hersteller ist im enterprise-number-Feld angegeben. Die Verwendung herstellerspezifischer Informationen erlaubt einen verbesserten Betrieb unter Nutzung zusätzlicher Funktionen in der DHCP-Implementierung eines Herstellers. Ein DHCP-Client, der angeforderte herstellerspezifische Informationen nicht erhält, wird dennoch den IPv6-Stack des Hostgeräts funktionsfähig konfigurieren.
Das gekapselte Feld für herstellerspezifische Optionen MUSS als eine Sequenz von Code/Länge/Wert-Feldern von identischem Format wie das DHCP-Optionsfeld kodiert werden. Die Optionscodes werden vom Hersteller definiert, der im enterprise-number-Feld identifiziert ist, und nicht von der IANA verwaltet. Jede der gekapselten Optionen ist wie folgt formatiert:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| opt-code | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. option-data .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
opt-code Der Code für die gekapselte Option.
option-len Eine vorzeichenlose Ganzzahl, die die Länge des
option-data-Felds in dieser gekapselten Option in
Oktetten angibt.
option-data Der Datenbereich für die gekapselte Option.
Mehrere Instanzen der Vendor-specific Information-Option können in einer DHCP-Nachricht erscheinen. Jede Instanz der Option wird gemäß den Optionscodes interpretiert, die durch den im enterprise-number-Feld jener Option identifizierten Hersteller definiert sind.
22.18. Interface-Id Option
Der Relay-Agent KANN die Interface-id-Option senden, um die Schnittstelle zu identifizieren, auf der die Client-Nachricht empfangen wurde. Wenn ein Relay-Agent eine Relay-reply-Nachricht mit einer Interface-id-Option empfängt, leitet der Relay-Agent die Nachricht über die durch die Option identifizierte Schnittstelle an den Client weiter.
Das Format der Interface ID-Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_INTERFACE_ID | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
. .
. interface-id .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_INTERFACE_ID (18).
option-len Länge des interface-id-Felds.
interface-id Ein opaker Wert beliebiger Länge, der vom
Relay-Agenten erzeugt wird, um eine der
Schnittstellen des Relay-Agenten zu identifizieren.
Der Server MUSS die Interface-id-Option aus der Relay-Forward-Nachricht in die Relay-Reply-Nachricht kopieren, die der Server als Antwort auf die Relay-Forward-Nachricht an den Relay-Agenten sendet. Diese Option DARF in keiner anderen Nachricht als einer Relay-Forward- oder Relay-Reply- Nachricht erscheinen.
Server KÖNNEN die Interface-ID für Parameterzuweisungsrichtlinien verwenden. Die Interface-ID SOLLTE als opaker Wert betrachtet werden, wobei Richtlinien nur auf exakter Übereinstimmung basieren; das heißt, die Interface-ID SOLLTE vom Server nicht intern analysiert werden. Der Wert der Interface-ID für eine Schnittstelle SOLLTE stabil bleiben und unverändert, beispielsweise nach einem Neustart des Relay-Agenten; wenn sich die Interface-ID ändert, kann ein Server sie nicht zuverlässig in Parameterzuweisungsrichtlinien verwenden.
22.19. Reconfigure Message Option
Ein Server nimmt eine Reconfigure Message-Option in eine Reconfigure- Nachricht auf, um dem Client anzuzeigen, ob dieser mit einer Renew- Nachricht oder einer Information-request-Nachricht antwortet. Das Format dieser Option ist:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_RECONF_MSG | option-len |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| msg-type |
+-+-+-+-+-+-+-+-+
option-code OPTION_RECONF_MSG (19).
option-len 1.
msg-type 5 für Renew-Nachricht, 11 für
Information-request-Nachricht.
Die Reconfigure Message-Option kann nur in einer Reconfigure-Nachricht erscheinen.
22.20. Reconfigure Accept Option
Ein Client verwendet die Reconfigure Accept-Option, um dem Server mitzuteilen, ob der Client bereit ist, Reconfigure-Nachrichten zu akzeptieren, und ein Server verwendet diese Option, um dem Client mitzuteilen, ob er Reconfigure-Nachrichten akzeptieren soll oder nicht. Das Standardverhalten, bei Fehlen dieser Option, bedeutet mangelnde Bereitschaft, Reconfigure-Nachrichten zu akzeptieren, bzw. die Anweisung, keine Reconfigure-Nachrichten zu akzeptieren, für die Client- bzw. Server-Nachrichten. Die folgende Abbildung zeigt das Format der Reconfigure Accept-Option:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| OPTION_RECONF_ACCEPT | 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
option-code OPTION_RECONF_ACCEPT (20).
option-len 0.