16. Validazione dei messaggi
Questa sezione conserva il testo RFC relativo a DHCPv6, inclusi gli scambi di messaggi, il comportamento dei relay, DUID, IA_NA, IA_TA, IA_PD, le opzioni DHCP, l'autenticazione RKAP, i registri IANA, i requisiti normativi e le matrici di comparsa delle opzioni in appendice.
Testo originale della RFC
16. Validazione dei messaggi
Questa sezione descrive quali opzioni sono valide in quali tipi di
messaggio e spiega cosa fare quando un client o un server riceve un
messaggio che contiene opzioni note ma non valide per quel messaggio.
Per esempio, una IA option non e consentita in un messaggio
Information-request.
Client e server MAY scegliere di (1) estrarre informazioni da tale
messaggio se le informazioni sono utili al destinatario oppure (2)
ignorare completamente tale messaggio e scartarlo.
Se un server riceve un messaggio che considera non valido, MAY inviare
un messaggio Reply (o Advertise, se appropriato) con una Server
Identifier option (vedere Section 21.3), una Client Identifier option
(vedere Section 21.2) (se era inclusa nel messaggio) e una Status Code
option (vedere Section 21.13) con stato UnspecFail.
Client, relay agent e server MUST NOT scartare messaggi che contengono
opzioni sconosciute (o istanze di opzioni vendor con valori
enterprise-number sconosciuti). Queste opzioni dovrebbero essere
ignorate come se non fossero presenti. Questo e essenziale per
consentire future estensioni di DHCP.
Un client o server MUST scartare qualsiasi messaggio DHCP ricevuto con
un tipo di messaggio sconosciuto.
I client SHOULD NOT accettare messaggi multicast.
I server SHOULD NOT accettare traffico unicast dai client. La Server
Unicast option (vedere Section 21.12) e il codice di stato UseMulticast
(vedere Section 21.13) sono stati resi obsoleti; quindi, i client non
dovrebbero piu inviare messaggi all'indirizzo unicast di un server ne
ricevere il codice di stato UseMulticast. Tuttavia, un server che in
precedenza supportava la Server Unicast option ed e aggiornato per non
supportarla MAY continuare a ricevere messaggi unicast se in precedenza
aveva inviato al client la Server Unicast option. Tuttavia, cio non
causa danni e il client alla fine tornera a inviare messaggi multicast
(ad esempio dopo che viene raggiunto il rebinding time del lease o dopo
il riavvio del client).
I relay agent SHOULD NOT accettare messaggi unicast dai client.
Nota: Le regole multicast/unicast menzionate sopra si applicano ai
messaggi DHCP in questo documento. I messaggi definiti in altri
documenti e in documenti futuri possono avere regole diverse.
16.1. Uso dei Transaction ID
Il campo "transaction-id" contiene un valore usato da client e server
per correlare le risposte del server ai messaggi del client. Un client
SHOULD generare un numero casuale che non possa essere facilmente
indovinato o previsto, da usare come transaction ID per ogni nuovo
messaggio che invia. Si noti che se un client genera identificatori di
transazione facilmente prevedibili, puo diventare piu vulnerabile a
certi tipi di attacchi da intrusi off-path. Un client MUST lasciare
invariato il transaction ID nelle ritrasmissioni di un messaggio.
16.2. Messaggio Solicit
I client MUST scartare qualsiasi messaggio Solicit ricevuto.
I server MUST scartare qualsiasi messaggio Solicit che non includa una
Client Identifier option o che includa una Server Identifier option.
16.3. Messaggio Advertise
I client MUST scartare qualsiasi messaggio Advertise ricevuto che
soddisfi una delle seguenti condizioni:
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il messaggio non include una Client Identifier option (vedere
Section 21.2).
* il contenuto della Client Identifier option non corrisponde al DUID
del client.
* il valore del campo "transaction-id" non corrisponde al valore usato
dal client nel suo messaggio Solicit.
Server e relay agent MUST scartare qualsiasi messaggio Advertise
ricevuto.
16.4. Messaggio Request
I client MUST scartare qualsiasi messaggio Request ricevuto.
I server MUST scartare qualsiasi messaggio Request ricevuto che soddisfi
una delle seguenti condizioni:
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il contenuto della Server Identifier option non corrisponde al DUID
del server.
* il messaggio non include una Client Identifier option (vedere
Section 21.2).
16.5. Messaggio Confirm
I client MUST scartare qualsiasi messaggio Confirm ricevuto.
I server MUST scartare qualsiasi messaggio Confirm ricevuto che non
includa una Client Identifier option (vedere Section 21.2) o che includa
una Server Identifier option (vedere Section 21.3).
16.6. Messaggio Renew
I client MUST scartare qualsiasi messaggio Renew ricevuto.
I server MUST scartare qualsiasi messaggio Renew ricevuto che soddisfi
una delle seguenti condizioni:
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il contenuto della Server Identifier option non corrisponde
all'identificatore del server.
* il messaggio non include una Client Identifier option (vedere
Section 21.2).
16.7. Messaggio Rebind
I client MUST scartare qualsiasi messaggio Rebind ricevuto.
I server MUST scartare qualsiasi messaggio Rebind ricevuto che non
includa una Client Identifier option (vedere Section 21.2) o che includa
una Server Identifier option (vedere Section 21.3).
16.8. Messaggio Decline
I client MUST scartare qualsiasi messaggio Decline ricevuto.
I server MUST scartare qualsiasi messaggio Decline ricevuto che soddisfi
una delle seguenti condizioni:
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il contenuto della Server Identifier option non corrisponde
all'identificatore del server.
* il messaggio non include una Client Identifier option (vedere
Section 21.2).
16.9. Messaggio Release
I client MUST scartare qualsiasi messaggio Release ricevuto.
I server MUST scartare qualsiasi messaggio Release ricevuto che soddisfi
una delle seguenti condizioni:
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il contenuto della Server Identifier option non corrisponde
all'identificatore del server.
* il messaggio non include una Client Identifier option (vedere
Section 21.2).
16.10. Messaggio Reply
I client MUST scartare qualsiasi messaggio Reply ricevuto che soddisfi
una delle seguenti condizioni:
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il campo "transaction-id" nel messaggio non corrisponde al valore
usato nel messaggio originale.
Se il client ha incluso una Client Identifier option (vedere
Section 21.2) nel messaggio originale, il messaggio Reply MUST includere
una Client Identifier option, e il contenuto della Client Identifier
option MUST corrispondere al DUID del client. Se il client non ha
incluso una Client Identifier option nel messaggio originale, il
messaggio Reply MUST NOT includere una Client Identifier option.
Server e relay agent MUST scartare qualsiasi messaggio Reply ricevuto.
16.11. Messaggio Reconfigure
Server e relay agent MUST scartare qualsiasi messaggio Reconfigure
ricevuto.
I client MUST scartare qualsiasi messaggio Reconfigure che soddisfi una
delle seguenti condizioni:
* il messaggio non e stato inviato in unicast al client.
* il messaggio non include una Server Identifier option (vedere
Section 21.3).
* il messaggio non include una Client Identifier option (vedere
Section 21.2) contenente il DUID del client.
* il messaggio non include una Reconfigure Message option (vedere
Section 21.19).
* il msg-type della Reconfigure Message option non e un valore valido.
* il messaggio non include autenticazione (come RKAP; vedere
Section 20.4) o fallisce la validazione dell'autenticazione.
16.12. Messaggio Information-request
I client MUST scartare qualsiasi messaggio Information-request ricevuto.
I server MUST scartare qualsiasi messaggio Information-request ricevuto
che soddisfi una delle seguenti condizioni:
* il messaggio include una Server Identifier option (vedere
Section 21.3), e il DUID nell'opzione non corrisponde al DUID del
server.
* il messaggio include una IA option.
16.13. Messaggio Relay-forward
I client MUST scartare qualsiasi messaggio Relay-forward ricevuto.
16.14. Messaggio Relay-reply
Client e server MUST scartare qualsiasi messaggio Relay-reply ricevuto.