15. Nachrichtenvalidierung
15. Nachrichtenvalidierung
Clients und Server SOLLTEN alle Nachrichten verwerfen, die Optionen enthalten, die nicht in der empfangenen Nachricht erscheinen dürfen. Zum Beispiel ist eine IA-Option nicht erlaubt, in einer Information-request-Nachricht zu erscheinen. Clients und Server KÖNNEN wählen, Informationen aus einer solchen Nachricht zu extrahieren, wenn die Informationen für den Empfänger von Nutzen sind.
Ein Server MUSS alle Solicit-, Confirm-, Rebind- oder Information-request-Nachrichten verwerfen, die er mit einer Unicast-Zieladresse empfängt.
Nachrichtenvalidierung basierend auf DHCP-Authentifizierung wird in Abschnitt 21.4.2 diskutiert.
Wenn ein Server eine Nachricht empfängt, die Optionen enthält, die sie nicht enthalten sollte (wie eine Information-request-Nachricht mit einer IA-Option), Optionen fehlen, die sie enthalten sollte, oder anderweitig nicht gültig ist, KANN er eine Reply (oder Advertise, je nach Bedarf) mit einer Server Identifier Option, einer Client Identifier Option, wenn eine in der Nachricht enthalten war, und einer Status Code Option mit Status UnSpecFail senden.
15.1. Verwendung von Transaktions-IDs
Das "transaction-id"-Feld enthält einen Wert, der von Clients und Servern verwendet wird, um Server-Antworten auf Client-Nachrichten zu synchronisieren. Ein Client SOLLTE eine Zufallszahl generieren, die nicht leicht erraten oder vorhergesagt werden kann, um als Transaktions-ID für jede neue Nachricht verwendet zu werden, die er sendet. Beachten Sie, dass wenn ein Client leicht vorhersagbare Transaktionsbezeichner generiert, er anfälliger für bestimmte Arten von Angriffen von Off-Path-Eindringlingen werden kann. Ein Client MUSS die Transaktions-ID bei Wiederholungen einer Nachricht unverändert lassen.
15.2. Solicit-Nachricht
Clients MÜSSEN alle empfangenen Solicit-Nachrichten verwerfen.
Server MÜSSEN alle Solicit-Nachrichten verwerfen, die keine Client Identifier Option enthalten oder die eine Server Identifier Option enthalten.
15.3. Advertise-Nachricht
Clients MÜSSEN alle empfangenen Advertise-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht enthält keine Server Identifier Option.
-
die Nachricht enthält keine Client Identifier Option.
-
der Inhalt der Client Identifier Option stimmt nicht mit dem DUID des Clients überein.
-
der Wert des "transaction-id"-Felds stimmt nicht mit dem Wert überein, den der Client in seiner Solicit-Nachricht verwendet hat.
Server und Relay-Agents MÜSSEN alle empfangenen Advertise-Nachrichten verwerfen.
15.4. Request-Nachricht
Clients MÜSSEN alle empfangenen Request-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Request-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht enthält keine Server Identifier Option.
-
der Inhalt der Server Identifier Option stimmt nicht mit dem DUID des Servers überein.
-
die Nachricht enthält keine Client Identifier Option.
15.5. Confirm-Nachricht
Clients MÜSSEN alle empfangenen Confirm-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Confirm-Nachrichten verwerfen, die keine Client Identifier Option enthalten oder die eine Server Identifier Option enthalten.
15.6. Renew-Nachricht
Clients MÜSSEN alle empfangenen Renew-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Renew-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht enthält keine Server Identifier Option.
-
der Inhalt der Server Identifier Option stimmt nicht mit dem Bezeichner des Servers überein.
-
die Nachricht enthält keine Client Identifier Option.
15.7. Rebind-Nachricht
Clients MÜSSEN alle empfangenen Rebind-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Rebind-Nachrichten verwerfen, die keine Client Identifier Option enthalten oder die eine Server Identifier Option enthalten.
15.8. Decline-Nachrichten
Clients MÜSSEN alle empfangenen Decline-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Decline-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht enthält keine Server Identifier Option.
-
der Inhalt der Server Identifier Option stimmt nicht mit dem Bezeichner des Servers überein.
-
die Nachricht enthält keine Client Identifier Option.
15.9. Release-Nachricht
Clients MÜSSEN alle empfangenen Release-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Release-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht enthält keine Server Identifier Option.
-
der Inhalt der Server Identifier Option stimmt nicht mit dem Bezeichner des Servers überein.
-
die Nachricht enthält keine Client Identifier Option.
15.10. Reply-Nachricht
Clients MÜSSEN alle empfangenen Reply-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht enthält keine Server Identifier Option.
-
das "transaction-id"-Feld in der Nachricht stimmt nicht mit dem in der ursprünglichen Nachricht verwendeten Wert überein.
Wenn der Client eine Client Identifier Option in der ursprünglichen Nachricht enthalten hat, MUSS die Reply-Nachricht eine Client Identifier Option enthalten und der Inhalt der Client Identifier Option MUSS mit dem DUID des Clients übereinstimmen; ODER, wenn der Client keine Client Identifier Option in der ursprünglichen Nachricht enthalten hat, DARF die Reply-Nachricht keine Client Identifier Option enthalten.
Server und Relay-Agents MÜSSEN alle empfangenen Reply-Nachrichten verwerfen.
15.11. Reconfigure-Nachricht
Server und Relay-Agents MÜSSEN alle empfangenen Reconfigure-Nachrichten verwerfen.
Clients MÜSSEN alle Reconfigure-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
die Nachricht wurde nicht als Unicast an den Client gesendet.
-
die Nachricht enthält keine Server Identifier Option.
-
die Nachricht enthält keine Client Identifier Option, die den DUID des Clients enthält.
-
die Nachricht enthält keine Reconfigure Message Option und der msg-type muss ein gültiger Wert sein.
-
die Nachricht enthält IA-Optionen und der msg-type in der Reconfigure Message Option ist INFORMATION-REQUEST.
-
die Nachricht enthält keine DHCP-Authentifizierung:
-
die Nachricht enthält keine Authentifizierungsoption.
-
die Nachricht besteht die vom Client durchgeführte Authentifizierungsvalidierung nicht.
-
15.12. Information-request-Nachricht
Clients MÜSSEN alle empfangenen Information-request-Nachrichten verwerfen.
Server MÜSSEN alle empfangenen Information-request-Nachrichten verwerfen, die eine der folgenden Bedingungen erfüllen:
-
Die Nachricht enthält eine Server Identifier Option und der DUID in der Option stimmt nicht mit dem DUID des Servers überein.
-
Die Nachricht enthält eine IA-Option.
15.13. Relay-forward-Nachricht
Clients MÜSSEN alle empfangenen Relay-forward-Nachrichten verwerfen.
15.14. Relay-reply-Nachricht
Clients und Server MÜSSEN alle empfangenen Relay-reply-Nachrichten verwerfen.