DHCP, cos'è e a cosa serve nelle reti

Una breve guida al protocollo DHCP: cos'è, a cosa serve e come funziona l'assegnazione degli indirizzi IP nelle reti LAN.
DHCP, cos'è e a cosa serve nelle reti

Ogni dispositivo che comunica in rete locale e sulla rete Internet è dotato di uno specifico indirizzo IP che può essere di tipo IPv4 o IPv6.

In Windows, per leggere l’indirizzo IP utilizzato dal singolo dispositivo all’interno della rete locale basta digitare cmd nella casella di ricerca del sistema operativo quindi digitare il comando ipconfig.
Analogamente in Linux si può utilizzare il comando ifconfig.

Cos’è DHCP e come funziona in breve

DHCP (Dynamic Host Configuration Protocol) è un protocollo di rete che viene utilizzato proprio per assegnare gli indirizzi IP e altre informazioni di configurazione della rete ai dispositivi che inviano un’esplicita richiesta.

Quando un dispositivo si connette a una rete ed è impostato per ottenere automaticamente un indirizzo IP, questo invia una richiesta al server DHCP che a sua volta risponde trasmettendo l’indicazione dell’indirizzo IP da usare, l’indirizzo del gateway predefinito, i server DNS da usare e così via.

DHCP semplifica la configurazione della rete poiché elimina la necessità di configurare manualmente ogni singolo dispositivo con le varie impostazioni (gateway e DNS da utilizzare) e con un indirizzo IP univoco. Non possono esserci più dispositivi che condividono lo stesso IP altrimenti si creano conflitti di indirizzi IP che in alcuni casi potrebbero non essere neppure immediati da individuare.

Il protocollo DHCP permette inoltre di ottimizzare l’utilizzo degli indirizzi IP disponibili nella rete assegnandoli dinamicamente solo quando necessario e liberandoli (cioè rendendoli disponibili per altri device) dopo un certo periodo di tempo.

Differenza tra assegnazione di un indirizzo IP statico e uso di DHCP

Nulla vieta di assegnare un indirizzo IP statico a singoli dispositivi. Si pensi ad esempio a server, telecamere, NVR, NAS, sistemi per il controllo della smart home, centrali d’allarme, switch e stampanti di rete: su questi dispositivi ha senso impostare un indirizzo IP statico che non cambia mai nel tempo. In questo modo, ad esempio, sarà facile digitare il corrispondente indirizzo IP per collegarsi al pannello di amministratore del dispositivo usando il browser installato su un qualunque host connesso in rete locale.

Associando un indirizzo IP statico al singolo dispositivo, questo non invierà più alcuna richiesta al server DHCP presente in rete locale.
L’importante è che l’indirizzo IP che si decide di assegnare manualmente non sia utilizzato da altri dispositivi in rete locale e che sia fuori dall’intervallo utilizzato dal server DHCP (lo vediamo più avanti).

Dove si trova il server DHCP e come si configura

Nelle reti domestiche e aziendali il server DHCP è di solito integrato sul router: è possibile però nominare server DHCP altri dispositivi collegati in rete locale. Anche se è possibile avere più server DHCP nella stessa rete, ciò è vivamente sconsigliato.

All’indirizzo del gateway predefinito, restituito con i comandi ipconfig e ifconfig visti in precedenza, spesso risponde anche il server DHCP.
In generale, però, gateway predefinito e server DHCP non sono necessariamente lo stesso sistema: in una rete complessa i due potrebbero corrispondere a sistemi diversi per ragioni di scalabilità, ridondanza e sicurezza.

Nella maggior parte dei casi, tuttavia, accedendo al pannello di amministrazione che risponde tramite interfaccia Web sull’indirizzo IP locale del gateway predefinito (basta digitarlo nella barra degli indirizzi del browser), si accede alla configurazione del router locale.

Accedendo alla sezione LAN, Server DHCP (le denominazioni possono cambiare leggermente…) si può verificare l’indirizzo IP iniziale e l’indirizzo IP finale tra i quali DHCP può muoversi per l’assegnazione automatica ai client che ne fanno richiesta.

Nell’esempio in figura, DHCP assegna gli indirizzi IP in modo dinamico nell’intervallo compreso tra 192.168.1.50 e 192.168.1.199. La subnet mask consente di dimensionare la rete e quindi l’intervallo di indirizzi IP complessivamente disponibile.
In questo caso, avendo una subnet mask uguale a 255.255.255.0, il numero complessivo di IP utilizzabili è compreso tra 192.168.1.1 e 192.168.1.254. Lo si può verificare facilmente con l’IP Subnet Calculator.

Per l’assegnazione di indirizzi IP statici, sempre prendendo in esame l’esempio visto in precedenza, si deve lavorare negli intervalli 192.168.1.2 – 192.168.1.49 e 192.168.1.200 – 192.168.1.254.

DHCP: processo di richiesta e risposta

Quando si collega un dispositivo client alla rete locale questo non sa e non può sapere dove si trova il server DHCP che gli fornirà dinamicamente un indirizzo IP così viene instaurato un processo di richiesta e risposta che prevede i seguenti passaggi:

Discover. Quando il dispositivo si connette alla rete, invia una richiesta DHCP in broadcast chiamata DHCP Discover. La richiesta viene inviata in broadcast via UDP con l’indirizzo della sorgente (client) impostato a 0.0.0.0 e quello di destinazione a 255.255.255.255.
Abbiamo visto la differenza tra TCP e UDP in un altro articolo.

Offer. Il server DHCP che riceve la richiesta invia una “offerta” al dispositivo attraverso una risposta chiamata DHCP Offer. L’offerta include l’indirizzo IP assegnato, la durata del lease e altre informazioni di configurazione.
La durata del lease è il periodo di tempo durante il quale un indirizzo IP assegnato da un server DHCP è riservato per uno specifico dispositivo. Nell’immagine pubblicata in precedenza corrisponde al Tempo di rilascio: il valore 86400 sta a significare che per lo stesso numero di secondi (24 ore) il client avrà assicurato lo stesso indirizzo IP locale, anche se dovesse disconnettersi dalla rete per poi ricollegarsi in seguito.

Il dispositivo client è tenuto a rinnovare il lease prima della scadenza per mantenere l’indirizzo IP assegnato via DHCP.

Nel caso delle connessioni WiFi condivise con utenti guest (ospiti), può avere senso ridurre il lease, ad esempio a una o due ore. In questo modo gli IP temporaneamente impegnati dai client saranno liberati e riassegnati ad altri client che ne facessero richiesta.

Nella fase DHCP Offer, la risposta viene inviata in unicast al dispositivo che ha inviato la richiesta DHCP Discover perché il server conosce il client (a partire dal suo indirizzo MAC).

Request. Il dispositivo client riceve l'”offerta” dal server DHCP e invia una richiesta di conferma al server selezionato attraverso una risposta chiamata DHCP Request.

Acknowledge. Il server DHCP conferma la richiesta del dispositivo inviando una risposta chiamata DHCP Acknowledge. Questa risposta conferma l’assegnazione dell’indirizzo IP e fornisce altre informazioni di configurazione richieste dal dispositivo (quelle di cui abbiamo già parlato in precedenza).

Il processo di richiesta e risposta DHCP avviene automaticamente e in modo trasparente per l’utente finale che non deve fare assolutamente nulla. Il protocollo DHCP è progettato per gestire automaticamente la riassegnazione degli indirizzi IP quando i lease scadono o quando un dispositivo lascia la rete.

Il server DHCP esiste anche per IPv6? Quali sono le porte utilizzate?

Il protocollo per l’assegnazione dinamica degli indirizzi IP viene utilizzato anche nelle reti IPv6. In questo caso si chiama DHCPv6 e svolge la stessa funzione di DHCP per IPv4.

DHCPv6 è utilizzato per assegnare gli indirizzi IPv6 trasferendo ai client anche le informazioni sulla configurazione di rete e altri dati. Tuttavia, a differenza di DHCP per IPv4, DHCPv6 non è l’unico metodo per assegnare gli indirizzi IPv6.

In IPv6 è infatti possibile utilizzare anche il protocollo Stateless Address Autoconfiguration (SLAAC) che consente ai dispositivi di assegnarsi automaticamente gli indirizzi a partire dalle informazioni che descrivono la rete locale.

DHCP per IPv4 utilizza le porte di comunicazione UDP 68 lato client e UDP 67 lato server. DHCPv6, invece, colloquia sulle porte UDP 546 (lato client) e 547 (lato server).

È possibile avere più server DHCP nella stessa rete?

Sebbene sia possibile avere più server DHCP nella stessa rete, questo tipo di configurazione è sconsigliata.

In una rete con più server DHCP, i dispositivi che si connettono ricevono un’offerta di indirizzo IP da ciascun server DHCP disponibile. Questo può causare problemi come la duplicazione degli indirizzi IP, l’eventuale sovrapposizione degli intervalli di indirizzi IP assegnati e rendere instabile la rete.

I server DHCP potrebbero a loro volta non essere in grado di scambiarsi le informazioni di configurazione di rete, ad esempio l’assegnazione di un indirizzo IP già in uso, causando confusione. Posto che nella maggior parte dei casi è preferibile avere un solo server DHCP in rete, in una rete complessa con sottoreti multiple, potrebbe essere necessario avere più server DHCP. In questo caso, è importante configurare correttamente i server DHCP in modo che non si sovrappongano o causino problemi.

Ti consigliamo anche

Link copiato negli appunti