In informatica si parla di DHCP (Dynamic Host Configuration Protocol) per individuare un protocollo. Questo server ha come obiettivo l’assegnazione a un dispositivo che si collega alla sua rete del primo indirizzo IP valido disponibile.

Per l’utilizzo di questo servizio in una rete locale, internet, Wi-Fi è fondamentale che ci sia almeno un DHCP attivo e che tutti i dispositivi connessi abbiano la rete impostata in modalità automatica o di default. 

Affinché il servizio DHCP possa rimanere costantemente attivo viene attivato sulla “macchina server” oppure sul router, di casa. Effettuando la configurazione è possibile stabilire una serie di indirizzi da assegnare in modo dinamico o statico ai vari dispositivi connessi.

Che cos’è un DHCP?

Si parla di DHCP per indicare il protocollo di configurazione dinamica degli indirizzi, ovvero un protocollo che consente ai dispositivi di rete di ricevere una configurazione IP univoca, necessaria per lavorare sulla rete. Per entrare a fare parte di una rete, un computer deve avere un indirizzo univoco.

Questo equivale a dire che due PC non possono avere uno stesso Internet Protocol. Talvolta però, assegnare un indirizzo diverso a tutte le macchine che si collegano in reti di grandi dimensioni può essere problematico.

Per facilitare questo compito viene utilizzato un server che si occupa di compiere questa funzione di assegnare indirizzi agli “host”. Oggi questi server possono essere all’interno di vere macchine oppure su apparecchi più piccoli come “access point” o “router”.

Il protocollo DHCP viene, invece, utilizzato su reti locali ed è utile per rendere una macchina pronta per l’utilizzo in rete. Oltre ad avere assegnato un proprio IP, questo viene utilizzato per scambiare informazioni necessarie all’host per un corretto funzionamento. Per potere funzionare, il DHCP necessita di due componenti molto importanti:

  • un server DHCP: un router assegna un IP e si occupa di svolgere questa funzione;
  • un client DHCP: si tratta del router che necessita di ottenere un IP valido per le sue sotto-reti a cui è collegato, il programma che si occupa di richiedere l’IP e di configurarlo;
  • un DHCP Relay: una componente che non è sempre presente.

Che cos’è un DHCP Relay? A cosa serve?

Il DHCP Relay è il calcolatore o molto spesso il router che si occupa di inviare le richieste di un DHCP a un server, quando questo non si trova sulla stessa sotto-rete. Questo componente è utile solo se un server deve collegarsi a varie sotto-reti. Deve esistere almeno un DHCP per ogni sottorete a cui fornire informazioni. Ogni “relay” va configurato per rispondere alle richieste di uno o più server.

Funzionamento

Il DHCP utilizza un protocollo chiamato UDP. Le porte registrate sono la numero 67 per il server e la numero 68 per il client. Prima di ottenere un indirizzo dal server, un client ha impostato il proprio indirizzo di default. Per ottenerne uno valido con tutte le relative informazioni, il client invia un pacchetto che prende il nome di DHCPDISCOVER. Questo viene ricevuto da tutti gli “host” che fanno parte della rete, ma a rispondere, saranno soltanto i server DHCP.

La risposta avviene per mezzo di un altro pacchetto che prende il nome di DHCPOFFER che, si occupa di fornire tutti i dati necessari al client per potere entrare a fare parte della rete. Il client aspetta prima di rispondere alle offerte, in modo da ottenerne un buon numero. In un secondo momento, effettua la scelta tra tutte quelle ottenute e comunica al server DHCP di riferimento, di avere acquisito l’IP. Questo avviene tramite la spedizione di un terzo pacchetto che si chiama DHCPREQUEST.

Questo pacchetto viene mandato in modo da comunicare a tutti i server DHCP quale sia l’indirizzo scelto. Alla fine, il server conferma l’assegnazione andata a buon fine con un quarto pacchetto che prende il nome di DHCPACK.

Fatto ciò, il client essendo in possesso di un valido indirizzo di rete entra a fare parte a tutti gli effetti della rete, sfruttando la connessione a sua disposizione. L’indirizzo che viene assegnato rimarrà il medesimo per un certo intervallo di tempo che prende il nome di “lease” o “lease time”. Per rinnovarlo prima della scadenza, occorre rimandare il DHCPREQUEST al server, il quale confermerà al client il DHCPACK.