Il protocollo DHCP (Dynamic Host Configuration
Protocol) ha lo scopo di consentire ad un computer che deve
connettersi ad una rete locale di
configurare automaticamente i parametri necessari.
Per comprendere il funzionamento occore
premettere qualche nozione sulla configurazione di un nodo di una rete.
La grande maggioranza delle reti locali (LAN) attualmente utilizzano una
serie di protocolli noti con il nome di TCP/IP (che, incidentalmente, coincidono
con quelli utilizzati più in generale par tutta la rete
Internet).
Vari argomenti connessi con protocolli TCP/IP sono stati già più volte trattati
su queste pagine (vedi:
A,
B,
C,
D,
E)
per riassumere, comunque, possiamo dire che un nodo di una rete per
poter funzionare correttamente ha bisogno di un certo numero di informazioni:
- Deve ricevere un proprio numero di rete (detto numero IP).
- Deve conoscere il numero IP del “gateway”, ovvero dell’apparecchio che
collega la LAN al resto di Internet. - Deve conoscere il numero IP del server DNS (ovvero di un particolare
nodo in grado di effettuare la traduzione fra un indirizzo di rete in forma
alfanumerica ed il numero IP corrispondente).
Come tutti coloro che hanno dovuto configurare i parametri di rete di un
computer sanno, queste informazioni possono essere impostate manualmente in
modo facile. Tuttavia ci sono casi in cui l’impostazione manuale può
essere poco pratica. Ad esempio nel caso di computer portatili che vengono
spesso spostati da una LAN ad un’altra: ogni volta è necessario
cambiare l’impostazione dei parametri, dopo aver trovato qualcuno in grado
di assegnare il numero IP e di comunicare le altre informazioni necessarie.
Oppure nel caso di LAN di grandi dimensioni con un gran numero di nodi.
Per consentire ad un nodo che viene connesso alla rete di procurarsi
le informazioni necessarie e quindi di autoconfigurarsi è stato
studiato il protocollo DHCP.
Il suo funzionamento è concettualmente assai semplice:
all’interno della LAN vengono installati uno o più server DHCP
che hanno lo scopo di “ascoltare” le richieste e rispondere adeguatamente.
Poiché ogni singolo nodo della LAN deve avere un numero IP diverso,
ciascun server DHCP ha a disposizione un gruppo di indirizzi IP e tiene
via via conto di quelli liberi e di quelli già assegnati.
Quando un computer attiva il software per la gestione della rete, per prima
cosa fa una “richiesta DHCP”. Questa viene effettuata mediante un apposito
messaggio “broadcast”, ovvero un messaggio che non ha un destinatario
specifico
ma viene ricevuto da tutti i nodi indistintamente. Solo i server DHCP
sono però programmati per rispondere al messaggio DHCP e rispondono
offrendo un numero IP e le altre informazioni necessarie. Il richiedente
fra tutte le “offerte” che riceve, ne sceglie una ed avverte il server
relativo che così può memorizzare che l’indirizzo IP
è stato assegnato.
Questo è in sostanza tutto quello che serve per supportare il
meccanismo di assegnazione automatica dei parametri di rete (nella
realtà devono essere trattati anche altri dettagli, come la scadenza
delle offerte, la
verifica periodica che un cliente sia ancora presente in rete, ecc.)
Tutti i dettagli di definizione del protocollo sono contenuti, come avviene per
tutti gli aspetti relativi ai protocolli di rete, in un documento
redatto ed aggiornato a cura dell’organizzazione IETF
(Internet Engineering Task Force):
RFC-2131, a cui si rimanda
per gli approfondimenti.