DHCP – Dynamic Host Configuration Protocol

DHCP – Dynamic Host Configuration Protocol

Il DHCP è un protocollo di rete che viene utilizzato per fornire un sistema di gestione centrale e automatico di assegnazione degli indirizzi IP all’interno di una rete, in modo da evitare all’amministratore di rete di dover assegnare l’indirizzo IP manualmente ad ogni singolo host. Oltre all’indirizzo IP il protocollo DHCP si occupa anche di gestire subnet, gateway e DNS per la navigazione.

Il protocollo DHCP opera al livello Application dello stack TCP/IP ed è implementato come servizio di rete, ovvero esiste come tipologia di server. Gli indirizzi IP da assegnare ai client vengono configurati nel database del server DHCP, chiamato Scope. Il server garantisce inoltre l’indirizzo IP per un certo periodo di tempo, periodo chiamato Lease.

DHCP utilizza il protocollo UDP con le porte 67 per il server e 68 per il client.

Figura 36: Server DHCP
Figura 36: Server DHCP

I server DHCP hanno tre modalità di funzionamento:

Statico: in questa modalità il server DHCP crea un indirizzo IP privato dipendente dal MAC Address di ogni client collegato alla rete, in base ad una mappatura eseguita precedentemente dall’amministratore di rete. Se non viene rilevata una corrispondenza con il MAC Address di uno o più client, il server DHCP può rifiutare l’assegnazione dell’IP.

Automatico: il server DHCP assegna automaticamente un indirizzo IP al client che ne ha fatto richiesta nell’ambito dell’intervallo di indirizzi IP definiti dall’amministratore della rete, come avviene per l’assegnazione dinamica. Tuttavia, in questa modalità il server mantiene in memoria una tabella delle assegnazioni passate, in modo da poter eventualmente riassegnare ad un certo dispositivo lo stesso indirizzo IP, se disponibile.

Dinamico: questa è la modalità di funzionamento classica e più utilizzata. Quando un client senza IP si collega ad una rete gestita da un server DHCP si avvia il processo di configurazione, che si svolge in quattro fasi:

Configurazione IP

Fase 1: Richiesta dell’IP

Il client invia al server una richiesta (DHCPDISCOVER), che viene inviata all’indirizzo broadcast 255.255.255.255, dato che il client ignora l’indirizzo IP del server DHCP. La richiesta avrà quindi mittente 0.0.0.0, poiché ancora nessun IP è stato assegnato o configurato per il client. La richiesta contiene il MAC Address del client, in modo che quest’ultimo possa essere univocamente identificato dal server.

Fase 2: Offerta dell’IP

Il server DHCP manda al client un messaggio broadcast DHCPOFFER contenente l’indirizzo IP. Il client utilizzerà il primo indirizzo IP che riceverà. Nel caso in cui ci siano più server DHCP sulla rete, ulteriori nuove offerte saranno ignorate.

Fase 3: Selezione dell’IP

Dopo aver accettato un IP, il client manda al server il messaggio broadcast DHCPREQUEST informando tutti i server DHCP di aver accettato un determinato IP. Il messaggio include l’indirizzo IP del server DHCP che ha inviato l’offerta accettata: in questo modo tutte le eventuali altre offerte di altri server DHCP verranno ritirate.

Fase 4: ACK

Una volta ricevuta la richiesta relativa all’offerta inviata, il server DHCP invia al client un messaggio di conferma, ovvero un DHCPACK, per comunicare la fine della negoziazione. Il messaggio contiene tutti i dati necessari alla configurazione (subnet, DNS) e il tempo di lease, ovvero il tempo dopo il quale l’assegnazione scade ed è necessario effettuare di nuovo la procedura di richiesta e configurazione. Solitamente questo tempo è di 24 ore, ma è possibile modificarlo, agendo sulla configurazione del server DHCP.

Se il tempo di lease è terminato, e quindi l’assegnazione dell’IP è scaduta e il client vuole continuare ad essere collegato alla rete, si avvia la procedura di Rinnovo dell’IP, articolata in 3 tentativi

Figura 37: Sessione DHCP
Figura 37: Sessione DHCP

Rinnovo dell’IP

1° Tentativo: quando il valore del periodo di lease è sceso del 50%, se il cliente desidera ancora rimanere connesso alla rete, invia un messaggio di richiesta al server (DHCPREQUEST) chiedendo il rinnovo del periodo di lease. Se il server è disponibili ad effettuare il rinnovo, allora invierà al client un messaggio di conferma con eventualmente i nuovi parametri di configurazione. Se il client non riceve alcuna risposta continuerà comunque ad utilizzare il periodo di lease rimasto a sua disposizione.

2° Tentativo: se il primo tentativo fallisce, il client effettua un secondo tentativo di rinegoziare il periodo di lease, continuando nel frattempo ad utilizzare il tempo rimasto a disposizione.

3° Tentativo: se il periodo di lease è scaduto, il client tenterà di rinnovare l’indirizzo IP contattando qualsiasi server DHCP disponibile sulla rete. Allo scadere del periodo di lease, se non ha ricevuto alcuna risposta, il client rilascia l’IP che gli era stato assegnato ed esegue nuovamente una richiesta broadcast per ottenere un nuovo indirizzo IP, seguendo tutte le procedure viste prima, fino a quando non otterrà una nuova assegnazione.