Zum Hauptinhalt springen

15. Nachrichtenvalidierung (Message Validation)

  1. Nachrichtenvalidierung

Clients und Server SOLLTEN alle Nachrichten verwerfen, die Optionen enthalten, die in der empfangenen Nachricht nicht erscheinen dürfen. Beispielsweise darf eine IA-Option nicht in einer Information-request- Nachricht erscheinen. Clients und Server KÖNNEN wählen, Informationen aus einer solchen Nachricht zu entnehmen, wenn die Information für den Empfänger nützlich ist.

Ein Server MUSS alle Solicit-, Confirm-, Rebind- oder Information-request- Nachrichten verwerfen, die er mit einer Unicast-Zieladresse empfängt.

Die Nachrichtenvalidierung auf Basis von DHCP-Authentifizierung wird in Abschnitt 21.4.2 erörtert.

Wenn ein Server eine Nachricht empfängt, die Optionen enthält, die sie nicht enthalten sollte (wie etwa eine Information-request-Nachricht mit einer IA-Option), Optionen vermissen lässt, die sie enthalten sollte, oder anderweitig nicht gültig ist, KANN er eine Reply (oder entsprechend Advertise) mit einer Server Identifier-Option, einer Client Identifier-Option (falls eine in der Nachricht enthalten war) und einer Status Code-Option mit Status UnSpecFail senden.

15.1. Verwendung von Transaktions-IDs

Das Feld "transaction-id" enthält einen Wert, der von Clients und Servern verwendet wird, um Server-Antworten mit Client-Nachrichten zu synchronisieren. Ein Client SOLLTE eine Zufallszahl erzeugen, die nicht leicht zu erraten oder vorherzusagen ist, um sie als Transaktions-ID für jede neue gesendete Nachricht zu verwenden. Beachten Sie, dass ein Client, der leicht vorhersehbare Transaktionsbezeichner erzeugt, anfälliger für bestimmte Arten von Angriffen von außenstehenden 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 Felds "transaction-id" stimmt nicht mit dem Wert überein, den der Client in seiner Solicit-Nachricht verwendet hat.

Server und Relay-Agenten 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-Nachricht

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.

  • der Wert des Felds "transaction-id" in der Nachricht stimmt nicht mit dem Wert überein, der in der ursprünglichen Nachricht verwendet wurde.

Wenn der Client in der ursprünglichen Nachricht eine Client Identifier-Option 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 in der ursprünglichen Nachricht keine Client Identifier-Option enthalten hat, DARF die Reply-Nachricht KEINE Client Identifier-Option enthalten.

Server und Relay-Agenten MÜSSEN alle empfangenen Reply-Nachrichten verwerfen.

15.11. Reconfigure-Nachricht

Server und Relay-Agenten 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 per 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 Authentication-Option.

    • 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.