Passa al contenuto principale

22. Opzioni DHCP

22. Opzioni DHCP

Le opzioni vengono utilizzate per trasportare informazioni e parametri aggiuntivi nei messaggi DHCP. Ogni opzione condivide un formato base comune, come descritto nella sezione 22.1. Tutti i valori nelle opzioni sono rappresentati in ordine di byte di rete.

Questo documento descrive le opzioni DHCP definite come parte della specifica DHCP di base. Altre opzioni possono essere definite in futuro in documenti separati.

Salvo indicazione contraria, ogni opzione può apparire solo nell'area delle opzioni di un messaggio DHCP e può apparire solo una volta. Se un'opzione appare effettivamente più volte, ogni istanza è considerata separata e le aree di dati delle opzioni NON DEVONO essere concatenate o combinate in altro modo.

22.1. Formato delle Opzioni DHCP

Il formato delle opzioni DHCP è:

     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
Un intero senza segno che identifica il tipo di opzione specifico trasportato in questa opzione.

option-len
Un intero senza segno che indica la lunghezza del campo option-data in questa opzione in ottetti.

option-data
I dati per l'opzione; il formato di questi dati dipende dalla definizione dell'opzione.

Le opzioni DHCPv6 sono delimitate utilizzando l'incapsulamento. Alcune opzioni si applicano generalmente al client, alcune sono specifiche per un'IA, e alcune sono specifiche per gli indirizzi all'interno di un'IA. Questi ultimi due casi sono discussi nelle sezioni 22.4 e 22.6.

22.2. Opzione Identificatore Client

L'opzione Client Identifier viene utilizzata per trasportare un DUID (vedi sezione 9) che identifica un client tra un client e un server. Il formato dell'opzione Client Identifier è:

     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
Lunghezza del DUID in ottetti.

DUID
Il DUID per il client.

22.3. Opzione Identificatore Server

L'opzione Server Identifier viene utilizzata per trasportare un DUID (vedi sezione 9) che identifica un server tra un client e un server. Il formato dell'opzione Server Identifier è:

     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
Lunghezza del DUID in ottetti.

DUID
Il DUID per il server.

22.4. Opzione Associazione di Identità per Indirizzi Non-temporanei

L'opzione Identity Association for Non-temporary Addresses (opzione IA_NA) viene utilizzata per trasportare un'IA_NA, i parametri associati all'IA_NA e gli indirizzi non-temporanei associati all'IA_NA.

Gli indirizzi che appaiono in un'opzione IA_NA non sono indirizzi temporanei (vedi sezione 22.5).

Il formato dell'opzione IA_NA è:

     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 + lunghezza del campo IA_NA-options.

IAID
L'identificatore univoco per questa IA_NA; l'IAID deve essere univoco tra gli identificatori per tutte le IA_NA di questo client. Lo spazio numerico per gli IAID IA_NA è separato dallo spazio numerico per gli IAID IA_TA.

T1
Il tempo in cui il client contatta il server da cui sono stati ottenuti gli indirizzi nell'IA_NA per estendere le durate di vita degli indirizzi assegnati all'IA_NA; T1 è una durata di tempo relativa al tempo corrente espressa in unità di secondi.

T2
Il tempo in cui il client contatta qualsiasi server disponibile per estendere le durate di vita degli indirizzi assegnati all'IA_NA; T2 è una durata di tempo relativa al tempo corrente espressa in unità di secondi.

IA_NA-options
Opzioni associate a questa IA_NA.

Il campo IA_NA-options incapsula le opzioni specifiche per questa IA_NA. Ad esempio, tutte le opzioni IA Address che trasportano gli indirizzi associati a questa IA_NA sono nel campo IA_NA-options.

Un'opzione IA_NA può apparire solo nell'area delle opzioni di un messaggio DHCP. Un messaggio DHCP può contenere più opzioni IA_NA.

Lo stato di qualsiasi operazione che coinvolge questa IA_NA è indicato in un'opzione Status Code nel campo IA_NA-options.

Si noti che un'IA_NA non ha una "durata di vita" o "lunghezza del lease" esplicita propria. Quando le durate di vita valide di tutti gli indirizzi in un'IA_NA sono scadute, l'IA_NA può essere considerata scaduta. T1 e T2 sono inclusi per dare ai server un controllo esplicito su quando un client ricontatta il server riguardo a una specifica IA_NA.

In un messaggio inviato da un client a un server, i valori nei campi T1 e T2 indicano la preferenza del client per quei parametri. Il client imposta T1 e T2 a 0 se non ha preferenza per quei valori. In un messaggio inviato da un server a un client, il client DEVE utilizzare i valori nei campi T1 e T2 per i parametri T1 e T2, a meno che quei valori in quei campi non siano 0. I valori nei campi T1 e T2 sono il numero di secondi fino a T1 e T2.

Il server seleziona i tempi T1 e T2 per consentire al client di estendere le durate di vita di qualsiasi indirizzo nell'IA_NA prima che le durate di vita scadano, anche se il server non è disponibile per un breve periodo di tempo. I valori raccomandati per T1 e T2 sono rispettivamente 0,5 e 0,8 volte la durata di vita preferita più breve degli indirizzi nell'IA che il server è disposto a estendere. Se la durata di vita preferita "più breve" è 0xffffffff ("infinito"), i valori raccomandati per T1 e T2 sono anche 0xffffffff. Se il tempo in cui gli indirizzi in un'IA_NA devono essere rinnovati deve essere lasciato alla discrezione del client, il server imposta T1 e T2 a 0.

Se un server riceve un'IA_NA con T1 maggiore di T2, e sia T1 che T2 sono maggiori di 0, il server ignora i valori non validi di T1 e T2 e elabora l'IA_NA come se il client avesse impostato T1 e T2 a 0.

Se un client riceve un'IA_NA con T1 maggiore di T2, e sia T1 che T2 sono maggiori di 0, il client scarta l'opzione IA_NA ed elabora il resto del messaggio come se il server non avesse incluso l'opzione IA_NA non valida.

Si deve prestare attenzione nell'impostare T1 o T2 a 0xffffffff ("infinito"). Un client non tenterà mai di estendere le durate di vita di qualsiasi indirizzo in un'IA con T1 impostato a 0xffffffff. Un client non tenterà mai di utilizzare un messaggio Rebind per individuare un server diverso per estendere le durate di vita di qualsiasi indirizzo in un'IA con T2 impostato a 0xffffffff.

22.5. Opzione Associazione di Identità per Indirizzi Temporanei

L'opzione Identity Association for Temporary Addresses (opzione IA_TA) viene utilizzata per trasportare un'IA_TA, i parametri associati all'IA_TA e gli indirizzi associati all'IA_TA. Tutti gli indirizzi in questa opzione sono utilizzati dal client come indirizzi temporanei, come definito in RFC 3041 [12]. Il formato dell'opzione IA_TA è:

     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 + lunghezza del campo IA_TA-options.

IAID
L'identificatore univoco per questa IA_TA; l'IAID deve essere univoco tra gli identificatori per tutte le IA_TA di questo client. Lo spazio numerico per gli IAID IA_TA è separato dallo spazio numerico per gli IAID IA_NA.

IA_TA-options
Opzioni associate a questa IA_TA.

Il campo IA_TA-Options incapsula le opzioni specifiche per questa IA_TA. Ad esempio, tutte le opzioni IA Address che trasportano gli indirizzi associati a questa IA_TA sono nel campo IA_TA-options.

Ogni IA_TA trasporta un "set" di indirizzi temporanei; cioè, al massimo un indirizzo da ogni prefisso assegnato al link a cui il client è collegato.

Un'opzione IA_TA può apparire solo nell'area delle opzioni di un messaggio DHCP. Un messaggio DHCP può contenere più opzioni IA_TA.

Lo stato di qualsiasi operazione che coinvolge questa IA_TA è indicato in un'opzione Status Code nel campo IA_TA-options.

Si noti che un'IA non ha una "durata di vita" o "lunghezza del lease" esplicita propria. Quando le durate di vita valide di tutti gli indirizzi in un'IA_TA sono scadute, l'IA può essere considerata scaduta.

Un'opzione IA_TA non include valori per T1 e T2. Un client PUÒ richiedere che le durate di vita sugli indirizzi temporanei siano estese includendo gli indirizzi in un'opzione IA_TA inviata in un messaggio Renew o Rebind a un server. Ad esempio, un client richiederebbe un'estensione della durata di vita di un indirizzo temporaneo per consentire a un'applicazione di continuare a utilizzare una connessione TCP stabilita.

Il client ottiene nuovi indirizzi temporanei inviando un'opzione IA_TA con un nuovo IAID a un server. Richiedere nuovi indirizzi temporanei dal server è equivalente a generare nuovi indirizzi temporanei come descritto in RFC 3041. Il server genererà nuovi indirizzi temporanei e li restituirà al client. Il client dovrebbe richiedere nuovi indirizzi temporanei prima che le durate di vita sugli indirizzi precedentemente assegnati scadano.

Un server DEVE restituire lo stesso set di indirizzi temporanei per la stessa IA_TA (come identificata dall'IAID) finché quegli indirizzi sono ancora validi. Dopo che le durate di vita degli indirizzi in un'IA_TA sono scadute, l'IAID può essere riutilizzato per identificare una nuova IA_TA con nuovi indirizzi temporanei.

Questa opzione PUÒ apparire in un messaggio Confirm se le durate di vita sugli indirizzi temporanei nell'IA associata non sono scadute.

22.6. Opzione Indirizzo IA

L'opzione IA Address viene utilizzata per specificare indirizzi IPv6 associati a un'IA_NA o un'IA_TA. L'opzione IA Address deve essere incapsulata nel campo Options di un'opzione IA_NA o IA_TA. Il campo Options incapsula le opzioni specifiche per questo indirizzo.

Il formato dell'opzione IA Address è:

     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 + lunghezza del campo IAaddr-options.

IPv6 address
Un indirizzo IPv6.

preferred-lifetime
La durata di vita preferita per l'indirizzo IPv6 nell'opzione, espressa in unità di secondi.

valid-lifetime
La durata di vita valida per l'indirizzo IPv6 nell'opzione, espressa in unità di secondi.

IAaddr-options
Opzioni associate a questo indirizzo.

In un messaggio inviato da un client a un server, i valori nei campi preferred e valid lifetime indicano la preferenza del client per quei parametri. Il client può inviare 0 se non ha preferenza per le durate di vita preferred e valid. In un messaggio inviato da un server a un client, il client DEVE utilizzare i valori nei campi preferred e valid lifetime per le durate di vita preferred e valid. I valori nelle durate di vita preferred e valid sono il numero di secondi rimanenti in ciascuna durata di vita.

Un client scarta qualsiasi indirizzo per cui la durata di vita preferita è maggiore della durata di vita valida. Un server ignora le durate di vita impostate dal client se la durata di vita preferita è maggiore della durata di vita valida e ignora i valori per T1 e T2 impostati dal client se quei valori sono maggiori della durata di vita preferita.

Si deve prestare attenzione nell'impostare la durata di vita valida di un indirizzo a 0xffffffff ("infinito"), che equivale a un'assegnazione permanente di un indirizzo a un client.

Un'opzione IA Address può apparire solo in un'opzione IA_NA o un'opzione IA_TA. Più di un'opzione IA Address può apparire in un'opzione IA_NA o un'opzione IA_TA.

Lo stato di qualsiasi operazione che coinvolge questo Indirizzo IA è indicato in un'opzione Status Code nel campo IAaddr-options.

22.7. Opzione Richiesta Opzioni

L'opzione Option Request viene utilizzata per identificare un elenco di opzioni in un messaggio tra un client e un server. Il formato dell'opzione Option Request è:

     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 * numero di opzioni richieste.

requested-option-code-n
Il codice di opzione per un'opzione richiesta dal client.

Un client PUÒ includere un'opzione Option Request in un messaggio Solicit, Request, Renew, Rebind, Confirm o Information-request per informare il server sulle opzioni che il client desidera che il server invii al client. Un server PUÒ includere un'opzione Option Request in un'opzione Reconfigure per indicare quali opzioni il client dovrebbe richiedere dal server.

22.8. Opzione Preferenza

L'opzione Preference viene inviata da un server a un client per influenzare la selezione di un server da parte del client.

Il formato dell'opzione Preference è:

     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
Il valore di preferenza per il server in questo messaggio.

Un server PUÒ includere un'opzione Preference in un messaggio Advertise per controllare la selezione di un server da parte del client. Vedi sezione 17.1.3 per l'uso dell'opzione Preference da parte del client e l'interpretazione del valore dei dati dell'opzione Preference.

22.9. Opzione Tempo Trascorso

     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
La quantità di tempo trascorso da quando il client ha iniziato la sua transazione DHCP corrente. Questo tempo è espresso in centesimi di secondo (10^-2 secondi).

Un client DEVE includere un'opzione Elapsed Time nei messaggi per indicare quanto tempo il client ha tentato di completare uno scambio di messaggi DHCP. Il tempo trascorso è misurato dal momento in cui il client ha inviato il primo messaggio nello scambio di messaggi, e il campo elapsed-time è impostato a 0 nel primo messaggio nello scambio di messaggi. I server e gli agenti relay utilizzano il valore dei dati in questa opzione come input alla politica che controlla come un server risponde a un messaggio client. Ad esempio, l'opzione Elapsed Time consente a un server DHCP secondario di rispondere a una richiesta quando un server primario non ha risposto in un tempo ragionevole. Il valore elapsed-time è un intero senza segno a 16 bit. Il client utilizza il valore 0xffff per rappresentare qualsiasi valore di tempo trascorso maggiore del valore di tempo massimo che può essere rappresentato nell'opzione Elapsed Time.

22.10. Opzione Messaggio Relay

L'opzione Relay Message trasporta un messaggio DHCP in un messaggio Relay-forward o Relay-reply.

Il formato dell'opzione Relay Message è:

     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
Lunghezza di DHCP-relay-message

DHCP-relay-message
In un messaggio Relay-forward, il messaggio ricevuto, inoltrato letteralmente al prossimo agente relay o server; in un messaggio Relay-reply, il messaggio da copiare e inoltrare all'agente relay o client il cui indirizzo è nel campo peer-address del messaggio Relay-reply

22.11. Opzione Autenticazione

L'opzione Authentication trasporta informazioni di autenticazione per autenticare l'identità e il contenuto dei messaggi DHCP. L'uso dell'opzione Authentication è descritto nella sezione 21. Il formato dell'opzione Authentication è:

     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 + lunghezza del campo authentication information

protocol
Il protocollo di autenticazione utilizzato in questa opzione Authentication

algorithm
L'algoritmo utilizzato nel protocollo di autenticazione

RDM
Il metodo di rilevamento replay utilizzato in questa opzione Authentication

Replay detection
Le informazioni di rilevamento replay per RDM

authentication information
Le informazioni di autenticazione, come specificato dal protocollo e dall'algoritmo utilizzati in questa opzione Authentication

22.12. Opzione Unicast Server

Il server invia questa opzione a un client per indicare al client che gli è consentito inviare messaggi unicast al server. Il formato dell'opzione Server Unicast è:

     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
L'indirizzo IP a cui il client dovrebbe inviare messaggi consegnati utilizzando unicast.

Il server specifica l'indirizzo IPv6 a cui il client deve inviare messaggi unicast nel campo server-address. Quando un client riceve questa opzione, dove consentito e appropriato, il client invia messaggi direttamente al server utilizzando l'indirizzo IPv6 specificato nel campo server-address dell'opzione.

Quando il server invia un'opzione Unicast al client, alcuni messaggi dal client non saranno inoltrati dagli agenti relay e non includeranno opzioni degli agenti relay dagli agenti relay. Pertanto, un server dovrebbe inviare un'opzione Unicast a un client solo quando gli agenti relay non stanno inviando opzioni degli agenti relay. Un server DHCP rifiuta qualsiasi messaggio inviato inappropriatamente utilizzando unicast per garantire che i messaggi siano inoltrati dagli agenti relay quando vengono utilizzate le opzioni degli agenti relay.

I dettagli su quando il client può inviare messaggi al server utilizzando unicast sono nella sezione 18.

22.13. Opzione Codice di Stato

Questa opzione restituisce un'indicazione di stato relativa al messaggio DHCP o all'opzione in cui appare. Il formato dell'opzione Status Code è:

     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 + lunghezza di status-message.

status-code
Il codice numerico per lo stato codificato in questa opzione. I codici di stato sono definiti nella sezione 24.4.

status-message
Una stringa di testo codificata UTF-8 adatta per la visualizzazione a un utente finale, che NON DEVE essere terminata da null.

Un'opzione Status Code può apparire nel campo delle opzioni di un messaggio DHCP e/o nel campo delle opzioni di un'altra opzione. Se l'opzione Status Code non appare in un messaggio in cui l'opzione potrebbe apparire, lo stato del messaggio è assunto essere Success.

22.14. Opzione Commit Rapido

L'opzione Rapid Commit viene utilizzata per segnalare l'uso dello scambio di due messaggi per l'assegnazione di indirizzi. Il formato dell'opzione Rapid Commit è:

     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.

Un client PUÒ includere questa opzione in un messaggio Solicit se il client è preparato a eseguire lo scambio di messaggi Solicit-Reply descritto nella sezione 17.1.1.

Un server DEVE includere questa opzione in un messaggio Reply inviato in risposta a un messaggio Solicit quando completa lo scambio di messaggi Solicit-Reply.

DISCUSSIONE:

Ogni server che risponde con una Reply a un Solicit che include un'opzione Rapid Commit impegnerà gli indirizzi assegnati nel messaggio Reply al client, e non riceverà alcuna conferma che il client ha ricevuto il messaggio Reply. Pertanto, se più di un server risponde a un Solicit che include un'opzione Rapid Commit, alcuni server impegneranno indirizzi che non sono effettivamente utilizzati dal client.

Il problema degli indirizzi non utilizzati può essere minimizzato, ad esempio, progettando il servizio DHCP in modo che solo un server risponda al Solicit o utilizzando durate di vita relativamente brevi per gli indirizzi assegnati.

22.15. Opzione Classe Utente

L'opzione User Class viene utilizzata da un client per identificare il tipo o la categoria di utente o applicazioni che rappresenta.

Il formato dell'opzione User Class è:

     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
Lunghezza del campo user-class-data.

user-class-data
Le classi utente trasportate dal client.

Le informazioni contenute nell'area dati di questa opzione sono contenute in uno o più campi opachi che rappresentano la classe o le classi utente di cui il client è membro. Un server seleziona informazioni di configurazione per il client basandosi sulle classi identificate in questa opzione. Ad esempio, l'opzione User Class può essere utilizzata per configurare tutti i client di persone nel dipartimento contabilità con una stampante diversa rispetto ai client di persone nel dipartimento marketing. Le informazioni sulla classe utente trasportate in questa opzione DEVONO essere configurabili sul client.

L'area dati dell'opzione User Class DEVE contenere una o più istanze di user-class-data. Ogni istanza di user-class-data è formattata come segue:

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

La user-class-len è lunga due ottetti e specifica la lunghezza dei dati opachi della classe utente in ordine di byte di rete.

Un server interpreta le classi identificate in questa opzione secondo la sua configurazione per selezionare le informazioni di configurazione appropriate per il client. Un server può utilizzare solo quelle classi utente che è configurato per interpretare nella selezione di informazioni di configurazione per un client e ignorare qualsiasi altra classe utente. In risposta a un messaggio contenente un'opzione User Class, un server include un'opzione User Class contenente quelle classi che sono state interpretate con successo dal server, in modo che il client possa essere informato delle classi interpretate dal server.

22.16. Opzione Classe Fornitore

Questa opzione viene utilizzata da un client per identificare il fornitore che ha prodotto l'hardware su cui il client è in esecuzione. Le informazioni contenute nell'area dati di questa opzione sono contenute in uno o più campi opachi che identificano i dettagli della configurazione hardware. Il formato dell'opzione Vendor Class è:

     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 + lunghezza del campo vendor-class-data.

enterprise-number
Il numero Enterprise registrato del fornitore come registrato con IANA [6].

vendor-class-data
La configurazione hardware dell'host su cui il client è in esecuzione.

Il vendor-class-data è composto da una serie di elementi separati, ognuno dei quali descrive alcune caratteristiche della configurazione hardware del client. Esempi di istanze vendor-class-data potrebbero includere la versione del sistema operativo su cui il client è in esecuzione o la quantità di memoria installata sul client.

Ogni istanza di vendor-class-data è formattata come segue:

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

La vendor-class-len è lunga due ottetti e specifica la lunghezza dei dati opachi della classe fornitore in ordine di byte di rete.

22.17. Opzione Informazioni Specifiche del Fornitore

Questa opzione viene utilizzata da client e server per scambiare informazioni specifiche del fornitore.

Il formato dell'opzione Vendor-specific Information è:

     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 + lunghezza del campo option-data

enterprise-number
Il numero Enterprise registrato del fornitore come registrato con IANA [6].

option-data
Un oggetto opaco di option-len ottetti, interpretato da codice specifico del fornitore sui client e server

La definizione delle informazioni trasportate in questa opzione è specifica del fornitore. Il fornitore è indicato nel campo enterprise-number. L'uso di informazioni specifiche del fornitore consente operazioni migliorate, utilizzando funzionalità aggiuntive in un'implementazione DHCP del fornitore. Un client DHCP che non riceve informazioni specifiche del fornitore richieste continuerà comunque a configurare lo stack IPv6 del dispositivo host per essere funzionale.

Il campo delle opzioni incapsulate specifiche del fornitore DEVE essere codificato come una sequenza di campi code/length/value di formato identico al campo delle opzioni DHCP. I codici delle opzioni sono definiti dal fornitore identificato nel campo enterprise-number e non sono gestiti da IANA. Ognuna delle opzioni incapsulate è formattata come segue:

     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
Il codice per l'opzione incapsulata.

option-len
Un intero senza segno che indica la lunghezza del campo option-data in questa opzione incapsulata in ottetti.

option-data
L'area dati per l'opzione incapsulata.

Più istanze dell'opzione Vendor-specific Information possono apparire in un messaggio DHCP. Ogni istanza dell'opzione è interpretata secondo i codici delle opzioni definiti dal fornitore identificato dal numero Enterprise in quella opzione.

22.18. Opzione Interface-Id

L'agente relay PUÒ inviare l'opzione Interface-id per identificare l'interfaccia su cui è stato ricevuto il messaggio client. Se un agente relay riceve un messaggio Relay-reply con un'opzione Interface-id, l'agente relay inoltra il messaggio al client attraverso l'interfaccia identificata dall'opzione.

Il formato dell'opzione Interface ID è:

     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
Lunghezza del campo interface-id.

interface-id
Un valore opaco di lunghezza arbitraria generato dall'agente relay per identificare una delle interfacce dell'agente relay.

Il server DEVE copiare l'opzione Interface-Id dal messaggio Relay-Forward nel messaggio Relay-Reply che il server invia all'agente relay in risposta al messaggio Relay-Forward. Questa opzione NON DEVE apparire in nessun messaggio tranne un messaggio Relay-Forward o Relay-Reply.

I server POSSONO utilizzare l'Interface-ID per le politiche di assegnazione dei parametri. L'Interface-ID DOVREBBE essere considerato un valore opaco, con politiche basate solo su corrispondenza esatta; cioè, l'Interface-ID NON DOVREBBE essere analizzato internamente dal server. Il valore Interface-ID per un'interfaccia DOVREBBE essere stabile e rimanere invariato, ad esempio, dopo il riavvio dell'agente relay; se l'Interface-ID cambia, un server non sarà in grado di utilizzarlo in modo affidabile nelle politiche di assegnazione dei parametri.

22.19. Opzione Messaggio di Riconfigurazione

Un server include un'opzione Reconfigure Message in un messaggio Reconfigure per indicare al client se il client risponde con un messaggio Renew o un messaggio Information-request. Il formato di questa opzione è:

     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 per un messaggio Renew, 11 per un messaggio Information-request.

L'opzione Reconfigure Message può apparire solo in un messaggio Reconfigure.

22.20. Opzione Accettazione Riconfigurazione

Un client utilizza l'opzione Reconfigure Accept per annunciare al server se il client è disposto ad accettare messaggi Reconfigure, e un server utilizza questa opzione per dire al client se accettare o meno messaggi Reconfigure. Il comportamento predefinito, in assenza di questa opzione, significa mancanza di volontà di accettare messaggi Reconfigure, o istruzione di non accettare messaggi Reconfigure, rispettivamente per i messaggi client e server. La figura seguente mostra il formato dell'opzione Reconfigure Accept:

     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.