Zum Hauptinhalt springen

22. DHCP-Optionen

22. DHCP-Optionen

Optionen werden verwendet, um zusätzliche Informationen und Parameter in DHCP-Nachrichten zu übertragen. Jede Option teilt sich ein gemeinsames Basisformat, wie in Abschnitt 22.1 beschrieben. Alle Werte in Optionen werden in Netzwerk-Byte-Reihenfolge dargestellt.

Dieses Dokument beschreibt die DHCP-Optionen, die als Teil der Basis-DHCP-Spezifikation definiert sind. Andere Optionen können in Zukunft in separaten Dokumenten definiert werden.

Sofern nicht anders angegeben, kann jede Option nur im Optionsbereich einer DHCP-Nachricht erscheinen und nur einmal vorkommen. Wenn eine Option tatsächlich mehrmals erscheint, wird jede Instanz als getrennt betrachtet, und die Datenbereiche der Optionen DÜRFEN NICHT verkettet oder auf andere Weise 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 übertragen wird.

option-len
Eine vorzeichenlose Ganzzahl, die die Länge des option-data-Felds 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 Verwendung von Kapselung begrenzt. 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 letzteren Fälle werden in den Abschnitten 22.4 und 22.6 diskutiert.

22.2. Client Identifier Option

Die Client Identifier Option wird verwendet, um eine DUID (siehe Abschnitt 9) zu übertragen, die einen Client zwischen einem Client und einem Server identifiziert. 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 der DUID in Oktetten.

DUID
Die DUID für den Client.

22.3. Server Identifier Option

Die Server Identifier Option wird verwendet, um eine DUID (siehe Abschnitt 9) zu übertragen, die einen Server zwischen einem Client und einem Server identifiziert. 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 der DUID in Oktetten.

DUID
Die 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 verknüpften Parameter und die mit der IA_NA verknüpften nicht-temporären Adressen zu übertragen.

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; der IAID muss unter den Bezeichnern für alle IA_NAs dieses Clients eindeutig sein. Der Nummernraum für IA_NA IAIDs ist getrennt vom Nummernraum für IA_TA IAIDs.

T1
Die Zeit, zu der 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
Die Zeit, zu der 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 verknüpft sind.

Das IA_NA-options-Feld kapselt die Optionen, die spezifisch für diese IA_NA sind. Beispielsweise befinden sich alle IA Address Options, die die mit dieser IA_NA verknüpften Adressen übertragen, im IA_NA-options-Feld.

Eine IA_NA Option darf 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 angezeigt.

Beachten Sie, dass eine IA_NA keine explizite "Lebensdauer" oder "Lease-Länge" für sich selbst hat. 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 den Server bezüglich einer bestimmten IA_NA erneut kontaktiert.

In einer vom Client an den Server gesendeten Nachricht geben Werte in den T1- und T2-Feldern 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 T1- und T2-Feldern für die T1- und T2-Parameter verwenden, es sei denn, diese Werte in diesen Feldern sind 0. Die Werte in den T1- und T2-Feldern sind die Anzahl der Sekunden bis T1 und T2.

Der Server wählt die T1- und T2-Zeiten, um dem Client zu ermöglichen, die Lebensdauern aller Adressen in der IA_NA zu verlängern, bevor die Lebensdauern ablaufen, auch wenn der Server für einen kurzen Zeitraum 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 ("Unendlichkeit") ist, sind die empfohlenen T1- und T2-Werte ebenfalls 0xffffffff. Wenn die Zeit, zu der die Adressen in einer IA_NA erneuert werden sollen, dem Ermessen des Clients überlassen 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, 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, als hätte der Server die ungültige IA_NA Option nicht enthalten.

Vorsicht ist geboten beim Setzen von T1 oder T2 auf 0xffffffff ("Unendlichkeit"). Ein Client wird niemals versuchen, die Lebensdauern aller Adressen in einer IA mit T1 auf 0xffffffff gesetzt zu verlängern. Ein Client wird niemals versuchen, eine Rebind-Nachricht zu verwenden, um einen anderen Server zu finden, um die Lebensdauern aller Adressen in einer IA mit T2 auf 0xffffffff gesetzt zu verlängern.

22.5. Identity Association for Temporary Addresses Option

Die Identity Association for Temporary Addresses Option (IA_TA Option) wird verwendet, um eine IA_TA, die mit der IA_TA verknüpften Parameter und die mit der IA_TA verknüpften Adressen zu übertragen. 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; der IAID muss unter den Bezeichnern für alle IA_TAs dieses Clients eindeutig sein. Der Nummernraum für IA_TA IAIDs ist getrennt vom Nummernraum für IA_NA IAIDs.

IA_TA-options
Optionen, die mit dieser IA_TA verknüpft sind.

Das IA_TA-Options-Feld kapselt die Optionen, die spezifisch für diese IA_TA sind. Beispielsweise befinden sich alle IA Address Options, die die mit dieser IA_TA verknüpften Adressen übertragen, im IA_TA-options-Feld.

Jede IA_TA trägt einen "Satz" von temporären Adressen; das heißt, höchstens eine Adresse von jedem Präfix, das dem Link zugewiesen ist, an den der Client angeschlossen ist.

Eine IA_TA Option darf 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 angezeigt.

Beachten Sie, dass eine IA keine explizite "Lebensdauer" oder "Lease-Länge" für sich selbst hat. 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 anfordern, dass die Lebensdauern von temporären Adressen verlängert werden, indem er die Adressen in einer IA_TA Option einschließt, 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 ermöglichen, eine etablierte TCP-Verbindung weiter zu verwenden.

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 entspricht dem Generieren neuer temporärer Adressen, wie in RFC 3041 beschrieben. Der Server generiert neue temporäre Adressen und gibt sie an den Client zurück. Der Client sollte neue temporäre Adressen anfordern, bevor die Lebensdauern der zuvor zugewiesenen Adressen ablaufen.

Ein Server MUSS denselben Satz von temporären Adressen für dieselbe IA_TA (wie durch die IAID identifiziert) zurückgeben, solange diese 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 verknüpft sind. Die IA Address Option muss im Options-Feld einer IA_NA- oder IA_TA-Option gekapselt werden. Das Options-Feld kapselt die 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 verknüpft sind.

In einer vom Client an den Server gesendeten Nachricht geben Werte in den Feldern für bevorzugte und gültige Lebensdauer die Präferenz des Clients für diese Parameter an. Der Client kann 0 senden, wenn er keine Präferenz für die bevorzugten und gültigen Lebensdauern hat. In einer vom Server an den Client gesendeten Nachricht MUSS der Client die Werte in den Feldern für bevorzugte und gültige Lebensdauer für die bevorzugten und gültigen Lebensdauern verwenden. Die Werte in den bevorzugten und gültigen Lebensdauern sind die Anzahl der verbleibenden Sekunden in jeder Lebensdauer.

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 diese Werte größer als die bevorzugte Lebensdauer sind.

Vorsicht ist geboten beim Setzen der gültigen Lebensdauer einer Adresse auf 0xffffffff ("Unendlichkeit"), was einer permanenten Zuweisung einer Adresse an einen Client entspricht.

Eine IA Address Option darf 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 angezeigt.

22.7. Option Request Option

Die Option Request Option wird verwendet, um eine Liste von Optionen in einer Nachricht zwischen einem Client und einem Server 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 einer Solicit-, Request-, Renew-, Rebind-, Confirm- oder Information-request-Nachricht einschließen, um den Server über die Optionen zu informieren, die der Client vom Server erhalten möchte. Ein Server KANN eine Option Request Option in einer Reconfigure-Option einschließen, 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 einer Advertise-Nachricht einschließen, 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 Zeit, die seit dem Beginn der aktuellen DHCP-Transaktion durch den Client vergangen ist. Diese Zeit wird in Hundertstelsekunden (10^-2 Sekunden) ausgedrückt.

Ein Client MUSS eine Elapsed Time Option in Nachrichten einschließen, um anzugeben, wie lange der Client versucht hat, einen DHCP-Nachrichtenaustausch abzuschließen. Die verstrichene Zeit wird ab dem Zeitpunkt gemessen, zu 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 Richtlinien, die steuern, wie ein Server auf eine Client-Nachricht antwortet. Beispielsweise ermöglicht 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 Elapsed Time-Wert ist eine vorzeichenlose 16-Bit-Ganzzahl. Der Client verwendet den Wert 0xffff, um alle verstrichenen Zeitwerte darzustellen, die größer als der größte Zeitwert sind, der in der Elapsed Time Option 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 der DHCP-relay-message

DHCP-relay-message
In einer Relay-forward-Nachricht die empfangene Nachricht, wö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 den Inhalt 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 Authentifizierungsoption verwendete Authentifizierungsprotokoll

algorithm
Der im Authentifizierungsprotokoll verwendete Algorithmus

RDM
Die in dieser Authentifizierungsoption verwendete Replay-Erkennungsmethode

Replay detection
Die Replay-Erkennungsinformationen für die RDM

authentication information
Die Authentifizierungsinformationen, wie durch das in dieser Authentifizierungsoption verwendete Protokoll und den Algorithmus spezifiziert

22.12. Server Unicast Option

Der Server sendet diese Option an einen Client, um dem Client anzuzeigen, dass er Nachrichten per Unicast an den Server senden darf. 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 übermittelt werden.

Der Server gibt die IPv6-Adresse an, an die der Client Unicast-Nachrichten senden soll, im server-address-Feld. Wenn ein Client diese Option empfängt, sendet der Client, wo zulässig und angemessen, Nachrichten direkt an den Server unter Verwendung der IPv6-Adresse, die im server-address-Feld der Option angegeben ist.

Wenn der Server eine Unicast-Option an den Client sendet, werden einige Nachrichten vom Client nicht von Relay-Agenten weitergeleitet und enthalten keine Relay-Agent-Optionen von den Relay-Agenten. Daher sollte ein Server nur dann eine Unicast-Option an einen Client senden, wenn Relay-Agenten keine Relay-Agent-Optionen senden. Ein DHCP-Server lehnt alle Nachrichten ab, die unangemessen per Unicast gesendet werden, um sicherzustellen, dass Nachrichten von Relay-Agenten weitergeleitet werden, wenn Relay-Agent-Optionen verwendet werden.

Details darüber, wann der Client Nachrichten per Unicast an den Server senden darf, finden sich in Abschnitt 18.

22.13. Status Code Option

Diese Option gibt eine Statusanzeige zurück, die sich auf die DHCP-Nachricht oder Option bezieht, 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 der status-message.

status-code
Der numerische Code für den in dieser Option codierten Status. Die Statuscodes sind in Abschnitt 24.4 definiert.

status-message
Eine UTF-8-codierte Textzeichenfolge, die für die Anzeige an 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 angenommen, dass der Status der Nachricht Success ist.

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 einer Solicit-Nachricht einschließen, wenn der Client bereit ist, den in Abschnitt 17.1.1 beschriebenen Solicit-Reply-Nachrichtenaustausch durchzuführen.

Ein Server MUSS diese Option in einer Reply-Nachricht einschließen, 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, bindet die zugewiesenen Adressen in der Reply-Nachricht an den Client und erhält keine Bestätigung, 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 tatsächlich nicht vom Client verwendet werden.

Das Problem ungenutzter Adressen kann beispielsweise minimiert werden, indem der DHCP-Dienst so gestaltet 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 übertragenen Benutzerklassen.

Die im Datenbereich dieser Option enthaltenen Informationen sind in einem oder mehreren undurchsichtigen Feldern enthalten, die die Benutzerklasse oder -klassen darstellen, zu denen der Client gehört. 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 übertragenen 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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+

Die user-class-len ist zwei Oktette lang und gibt die Länge der undurchsichtigen 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 die Benutzerklassen verwenden, die er so konfiguriert hat, dass er sie bei der Auswahl von Konfigurationsinformationen für einen Client interpretiert, und alle anderen Benutzerklassen ignorieren. Als Antwort auf eine Nachricht, die eine User Class Option enthält, schließt ein Server eine User Class Option ein, die die Klassen enthält, die vom Server erfolgreich interpretiert wurden, damit 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 läuft. Die im Datenbereich dieser Option enthaltenen Informationen sind in einem oder mehreren undurchsichtigen Feldern enthalten, die Details der Hardwarekonfiguration 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 Number des Herstellers, wie bei IANA [6] registriert.

vendor-class-data
Die Hardwarekonfiguration des Hosts, auf dem der Client läuft.

Die vendor-class-data besteht aus einer Reihe separater Elemente, von denen jedes eine Eigenschaft der Hardwarekonfiguration des Clients beschreibt. Beispiele für vendor-class-data-Instanzen könnten die Version des Betriebssystems, das der Client ausführt, oder die auf dem Client installierte Speichermenge umfassen.

Jede Instanz der vendor-class-data ist wie folgt formatiert:

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+
| vendor-class-len | opaque-data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+-+-+-+-+-+

Die vendor-class-len ist zwei Oktette lang und gibt die Länge der undurchsichtigen Herstellerklassendaten 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 Number des Herstellers, wie bei IANA [6] registriert.

option-data
Ein undurchsichtiges Objekt von option-len Oktetten, interpretiert von herstellerspezifischem Code auf den Clients und Servern

Die Definition der in dieser Option übertragenen Informationen ist herstellerspezifisch. Der Hersteller wird im enterprise-number-Feld angegeben. Die Verwendung herstellerspezifischer Informationen ermöglicht einen erweiterten Betrieb unter Nutzung zusätzlicher Funktionen in einer DHCP-Implementierung des Herstellers. Ein DHCP-Client, der keine angeforderte herstellerspezifische Information empfängt, konfiguriert den IPv6-Stack des Hostgeräts weiterhin so, dass er funktionsfähig ist.

Das gekapselte herstellerspezifische Optionsfeld MUSS als Folge von Code/Länge/Wert-Feldern identischen Formats wie das DHCP-Optionsfeld codiert werden. Die Optionscodes werden vom Hersteller definiert, der im enterprise-number-Feld identifiziert ist, und werden nicht von 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 vom Hersteller definiert sind, der durch die Enterprise Number in dieser Option identifiziert ist.

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 an den Client über die durch die Option identifizierte Schnittstelle 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 undurchsichtiger Wert beliebiger Länge, der vom Relay-Agenten generiert 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 Nachricht erscheinen, außer in einer Relay-Forward- oder Relay-Reply-Nachricht.

Server KÖNNEN die Interface-ID für Parameterzuweisungsrichtlinien verwenden. Die Interface-ID SOLLTE als undurchsichtiger Wert betrachtet werden, mit Richtlinien basierend nur auf exakter Übereinstimmung; das heißt, die Interface-ID SOLLTE nicht intern vom Server geparst werden. Der Interface-ID-Wert für eine Schnittstelle SOLLTE stabil sein und unverändert bleiben, beispielsweise nach dem 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 schließt eine Reconfigure Message Option in eine Reconfigure-Nachricht ein, um dem Client anzuzeigen, ob der Client 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 in Abwesenheit dieser Option bedeutet Unwilligkeit, Reconfigure-Nachrichten zu akzeptieren, oder Anweisung, Reconfigure-Nachrichten nicht zu akzeptieren, für 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.