The Cable GuyIl protocollo DHCPv6

Joseph Davies

Il protocollo DHCP (Dynamic Host Configuration Protocol) è stato progettato per l'assegnazione di indirizzi IP ed altre informazioni di rete ai computer, in modo che essi siano in grado di comunicare automaticamente sulla rete. Attraverso una rete IPv6, non occorre in realtà DHCP per configurare gli indirizzi, ma possono sussistere buone ragioni per utilizzarlo. DHCP per IPv6 (DHCPv6) è in grado di

fornire la configurazione dell'indirizzo con controllo di stato o le impostazioni di configurazione senza controllo di stato agli host IPv6i. Gli host IPv6 utilizzano vari metodi per configurare gli indirizzi:

Configurazione automatica dell'indirizzo senza controllo di stato Viene utilizzata per configurare sia indirizzi locali collegati che ulteriori indirizzi locali non collegati scambiando messaggi di richiesta router e messaggi di annuncio router con i router vicini.

Configurazione automatica dell'indirizzo con controllo di stato Viene utilizzata per configurare indirizzi locali non collegati attraverso l'uso di un protocollo di configurazione come DHCP.

Un host IPv6 esegue la configurazione automatica di un indirizzo senza controllo di stato e utilizza un protocollo di configurazione come DHCPv6 basato sui seguenti flag nel messaggio di annuncio router inviato da un router vicino:

Flag di configurazione per indirizzo gestito, noto anche come flag M. Se impostato su 1, questo flag indica all'host di utilizzare un protocollo di configurazione per ottenere indirizzi con controllo di stato.

Altro flag di configurazione con controllo di stato, noto anche come flag O. Quando viene impostato su 1, questo flag indica all'host di utilizzare un protocollo di configurazione per ottenere indirizzi con controllo di stato.

Combinando i valori dei flag M e O, il risultato è il seguente:

Entrambi i flag M ed O sono impostati su 0. Questa combinazione corrisponde a una rete senza un'infrastruttura DHCPv6. Gli host utilizzano gli annunci router per indirizzi locali non collegati e altri metodi (come la configurazione manuale) per configurare le altre impostazioni.

I flag M ed O sono entrambi impostati su 1. DHCPv6 viene utilizzato per entrambi gli indirizzi e altre impostazioni di configurazione. Questa combinazione è come DHCPv6 con controllo di stato, in cui DHCPv6 assegna gli indirizzi con controllo di stato agli host IPv6i.

Il flag M è impostato su 0 e il flag O è impostato su 1. DHCPv6 non è utilizzato per assegnare indirizzi, ma soltanto per assegnare altre impostazioni di configurazione. I router vicini sono configurati per annunciare prefissi di indirizzi locali non collegati da cui gli host IPv6 traggono gli indirizzi senza controllo di stato. Questa combinazione è nota come DHCPv6 senza controllo di stato: DHCPv6 non assegna gli indirizzi con controllo di stato agli host IPv6, bensì le impostazioni di configurazione senza controllo di stato.

Il flag M è impostato su 1 e il flag O è impostato su 0. In questa combinazione, DHCPv6 viene utilizzato per la configurazione dell'indirizzo ma non per altre impostazioni. Poiché gli host IPv6 hanno generalmente bisogno di essere configurati con altre impostazioni, come gli indirizzi IPv6 dei server Domain Name System (DNS), questa combinazione è improbabile.

Come DHCP per IPv4, i componenti di un'infrastruttura DHCPv6 comprendono client DHCPv6 che devono essere configurati, server DHCPv6 che forniscono la configurazione e agenti di inoltro DHCPv6 che convogliano messaggi tra client e server quando i client sono su subnet che non hanno un server DHCPv6.

Messaggi di DHCPv6

Come con DHCP per IPv4, DHCPv6 utilizza messaggi del tipo User Datagram Protocol (UDP). I client DHCPv6 sono in attesa di messaggi di DHCP sulla porta UDP 546. I server e gli agenti di inoltro DHCPv6 sono in attesa di messaggi di DHCPv6 sulla porta UDP 547. La struttura per i messaggi di DHCPv6 è molto più semplice di quella di DHCP per IPv4, che ha avuto origine nel protocollo BOOTP per supportare le workstation senza dischi. Nella Figura 1 viene mostrata la struttura dei messaggi DHCPv6 inviati tra client e server.

Figura 1 Messaggi DHCPv6 tra client e server

Figura 1** Messaggi DHCPv6 tra client e server **(Fare clic sull'immagine per ingrandirla)

Il campo Msg-Type (Tipo Msg) da 1 byte indica il tipo di messaggio DHCPv6. Il campo Transaction-Id (ID transazione) da 3 byte è determinato da un client ed è utilizzato per raggruppare i messaggi di uno scambio di messaggi DHCPv6. Dopo il campo Transaction-Id (ID transazione), le opzioni di DHCPv6 sono utilizzate per indicare l'identificazione di client e server, gli indirizzi, e le altre impostazioni di configurazione. Per l'elenco delle opzioni DHCPv6 definite, vedere la RFC 3315, in base al riferimento nella barra laterale "Risorse RFC di DHCPv6".

Le opzioni di DHCPv6 sono formattate con il formato Type-Length-Value (TLV). Nella Figura 2 viene mostrata la struttura delle opzioni di DHCPv6.

Il campo Option-Code (Codice opzione) da 2 byte indica un'opzione specifica. Il campo Option-Len (Lunghezza opzione) da 2 byte indica la lunghezza del campo Option-Data (Dati opzione) sotto forma di byte. Il campo Option-Data (Dati opzione) contiene i dati per l'opzione.

C'è una struttura di messaggio separata per i messaggi scambiati tra gli agenti di inoltro e i server per registrare ulteriori informazioni. Nella Figura 3 viene mostrata la struttura di questi tipi di messaggi.

Figura 2 Struttura delle opzioni di DHCPv6

Figura 2** Struttura delle opzioni di DHCPv6 **(Fare clic sull'immagine per ingrandirla)

Il campo Hop-Count (Conteggio hop) da 1 byte indica il numero di agenti di inoltro che hanno ricevuto il messaggio. Un agente di inoltro in ricezione può scartare il messaggio se questo eccede il numero di hop massimo configurato. Il campo Link-Address (Indirizzo collegamento) da 16 byte contiene un indirizzo locale non collegato che è assegnato ad un'interfaccia connessa alla subnet su cui si trova il client. Dal campo Link-Address (Collegamento indirizzo), il server è in grado di determinare l'ambito corretto dell'indirizzo da cui assegnare un indirizzo. Il campo Peer-Address (Indirizzo peer) da 16 byte contiene l'indirizzo IPv6 del client che ha inviato il messaggio in origine o l'agente di inoltro precedente che ha trasmesso il messaggio. Oltre al campo Peer-Address (Indirizzo peer) vi sono le opzioni DHCPv6 che contengono l'opzione del messaggio di inoltro, che a sua volta contiene il messaggio in fase di trasmissione e altre opzioni. L'opzione del messaggio di inoltro fornisce un incapsulamento dei messaggi scambiati tra client e server.

Non ci sono indirizzi di broadcast definiti per l'IPv6. Pertanto, l'uso dell'indirizzo di tramissione limitato per alcuni messaggi DHCPv4 è stato sostituito con l'uso dell'indirizzo All_DHCP_Relay_Agents_and_Servers di FF02::1:2 per DHCPv6. Per esempio, un client DHCPv6 che tenta di scoprire la posizione del server DHCPv6 sulla rete invia un messaggio di Sollecito dal suo indirizzo locale collegato al FF02::1:2. Se sulla subnet dell'host c'è un server DHCPv6, questo riceve il messaggio di sollecito e invia una risposta appropriata. Di solito, un agente di inoltro DHCPv6 sulla subnet dell'host riceve il messaggio di sollecito e lo invia a un server DHCPv6.

Figura 3 Struttura dei messaggi tra relay e server

Figura 3** Struttura dei messaggi tra relay e server **(Fare clic sull'immagine per ingrandirla)

Scambio di messaggi con controllo di stato

Uno scambio di messaggi DHCPv6 con controllo di stato per ottenere indirizzi e impostazioni per la configurazione dell'IPv6 (quando i flag M e O in un annuncio router ricevuto sono impostati su 1) consiste generalmente nei messaggi seguenti:

  • Un messaggio di sollecito inviato dal client per individuare i server.
  • Un annuncio inviato da un server per indicare che può fornire indirizzi e impostazioni di configurazione.
  • Un messaggio di richiesta inviato dal client per richiedere indirizzi e impostazioni di configurazione da un server specifico.
  • Un messaggio di risposta inviato dal server richiesto che contiene indirizzi e impostazioni di configurazione.

Se è tra client e server, l'agente di inoltro invia messaggi Relay-Forward al server contenenti i messaggi incapsulati di sollecito e richiesta provenienti dal client. Il server invia i messaggi Relay-Reply dell'agente di inoltro che contenogno i messaggi incapsulati di annuncio e risposta per il client. Per un elenco completo dei messaggi di DHCPv6, vedere la Figura 4.

Figure 4 Messaggi di DHCPv6

Messaggio di DHCPv6 Descrizione Equivalenza del messaggio DHCP a IPv4
Sollecito Inviato da un client per individuare i server. DHCPDiscover
Annuncio Inviato da un server in risposta a un messaggio di sollecito per indicare la disponibilità. DHCPOffer
Richiesta Inviato da un client per richiedere le impostazioni degli indirizzi o della configurazione da un server specifico. DHCPRequest
Conferma Inviato da un client a tutti i server per determinare se la configurazione di un client è valida per il collegamento attivo. DHCPRequest
Rinnovo Inviato da un client a un server specifico per estendere la durata degli indirizzi assegnati e ottenere le impostazioni di configurazione aggiornate. DHCPRequest
Riesecuzione del binding Inviato da un client a qualunque server quando non viene ricevuta una risposta al messaggio di rinnovo. DHCPRequest
Risposta Inviato da un server a un client specifico in risposta a un messaggio di sollecito, richiesta, rinnovo, riesecuzione del binding, richiesta di iInformazioni, conferma, rilascio o rifiuto. DHCPAck
Rilascio Inviato da un client per indicare che il client non utilizza più un indirizzo assegnato. DHCPRelease
Rifiuto Inviato da un client a un server specifico per indicare che l'indirizzo assegnato è già in uso. DHCPDecline
Riconfigurare Inviato da un server a un client per indicare che il server ha impostazioni di configurazione nuove o aggiornate. Il client invia poi un messaggio di richiesta di rinnovo o di informazioni. N/D
Richiesta di informazioni Inviato da un client per richiedere le impostazioni di configurazione (ma non gli indirizzi). DHCPInform
Relay-Forward Inviato da un agente di inoltro per inviare un messaggio a un server. Relay-Forward contiene un messaggio incapsulato del client come l'opzione Relay-Message di DHCPv6. N/D
Relay-Reply Inviato da un server per inviare un messaggio a un client tramite un agente di inoltro. Relay-Reply contiene un messaggio del server incapsulato come l'opzione Relay-Message di DHCPv6. N/D

Scambio di messaggi senza controllo di stato

Uno scambio di messaggi senza controllo di stato di DHCPv6 per ottenere soltanto impostazioni di configurazione (quando il flag M è impostato su 0 e il flag O è impostato su 1 in un annuncio router ricevuto) consiste generalmente nei messaggi seguenti: Un messaggio di richiesta informazioni inviato dal client DHCPv6 per richiedere impostazioni di configurazione da un server e un messaggio di risposta inviato da un server, contenente le impostazioni di configurazione richieste.

Per una rete IPv6 che abbia router configurati in maniera tale da assegnare prefissi d'indirizzo senza controllo di stato agli host IPv6, lo scambio a due messaggi di DHCPv6 può essere utilizzato per assegnare server DNS, nomi di domini DNS, ed altre impostazioni di configurazione che non sono contenute nel messaggio di annuncio router.

Supporto DHCPv6 in Windows

Windows Vista™ e la prossima versione di Windows Server®, nome in codice "Longhorn," contengono un client DHCPv6. Il client DHCPv6 tenta una configurazione basata su DHCPv6 a seconda dei valori dei flag M e O nei messaggi di annuncio router ricevuti. Per utilizzare quindi il DHCPv6, si devono configurare i server e gli agenti di inoltro DHCPv6 in modo da revisionare ogni subnet IPv6 e configurare poi il router IPv6 per impostare questi due flag con i loro valori appropriati. Se ci sono annunci router multipli per una data subnet, questi devono essere configurati in modo da annunciare gli stessi prefissi degli indirizzi senza controllo di stato e i valori dei flag M e O. Gli host IPv6 che operano con Windows® XP o Windows Server 2003 non comprendono un client DHCPv6 e ignorano quindi i valori dei flag M e O negli annunci router ricevuti.

Un router IPv6 che opera con Windows Vista o Windows Server "Longhorn" può essere configurato in maniera da impostare il flag M su 1 negli annunci router con il comando "netsh interface ipv6 set interface InterfaceName managedaddress=enabled". Allo stesso modo, è possibile impostare il flag O su 1 negli annunci router con il comando "netsh interface ipv6 set interface InterfaceName otherstateful=enabled".

La versione Beta 2 di Window Server "Longhorn" supporta un agente di inoltro DHCPv6 e una configurazione senza controllo di stato di DHCPv6 col servizio del server DHCP. Il servizio del server DHCP può essere configurato affinché le opzioni di DHCPv6 siano distribuite a tutti i client DHCPv6 nello scambio di messaggi a due messaggi di DHCPv6 precedentemente descritto. Microsoft ha in progetto di includere il supporto per l'operazione DHCPv6 con controllo di stato, includendo la capacità di creare ambiti per l'indirizo IPv6 nello snap-in DHCP, nella versione Beta 3 di Windows Server "Longhorn".

Risorsa RFC su DHCPv6

Alcune RFC relative a DHCPv6 (in inglese):

Joseph Daviesè un autore tecnico di Microsoft. Dal 1992 tiene corsi e scrive su argomenti legati alle reti Microsoft. Ha scritto cinque libri per Microsoft Press ed è autore della rubrica mensile Cable Guy su TechNet.

© 2008 Microsoft Corporation e CMP Media, LLC. Tutti i diritti riservati. È vietata la riproduzione completa o parziale senza autorizzazione.