A proposito dell'autore

E’ Founder & Executive di AreaNetworking.it, uno dei maggiori punti di riferimento online del settore ICT ed il più grande Cisco Users Group ufficiale in Italia. E’ fondatore e presidente di Tesla Club Italy, club ufficiale italiano per appassionati e possessori Tesla. E’ stato l’ideatore & Event Director del festival ICT e Business Development Manager in Smau. Owner di CiscoForums.it. Amministratore di Lagni Group Srls.

Il protocollo DHCP (Dynamic Host Configuration Protocol) è una estensione del protocollo BOOTP (Bootstrap Protocol) e consente l’assegnazione automatica di indirizzi IP in una rete TCP/IP.

Oltre agli indirizzi IP, il protocollo DHCP assegna anche server DNS, WINS (o NBNS se sistemi non Microsoft) e il gateway (utilizzato dal client).

E’ un protocollo molto utile in quanto migliora la gestione di una grossa rete. Pensiamo infatti ad una rete con molte postazioni: senza il protocollo DHCP, saremmo costretti ad assegnare manualmente per ogni macchina gli indirizzi IP, server DNS, eccetera.

Facciamo un esempio, tanto per capire come funziona e a che serve questo protocollo: abbiamo una LAN di tre postazioni, chiaramente non troveremo quasi mai un server DHCP, poichè quest’ultimo può divenire indispensabile solo in una grossa rete. Infatti, in una rete di piccole dimensioni, questo protocollo può essere sostituito da un processo analogo.

Questa qui sopra è la rete che ipotizziamo di avere.
Come funziona il protocollo DHCP? Il client ha un particolare tipo di comunicazione con il server, chiamato lease del DHCP.

Il lease del DHCP

Il lease è un piccolo processo nel quale il server DHCP fornisce le informazioni sugli IP ai client.

Tutto ciò avviene quando il client richiede un indirizzo IP specifico, ma riceve da parte del server, una risposta negativa.
Il servizio DHCP, per eseguire il lease, utilizza un processo diviso in quattro fasi: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST e infine DHCPACK. (figura1).
Il DHCPDISCOVER (richiesta di IP) è il primo passaggio nel quale il client fa una richiesta a un indirizzo broadcast. Questo perchè l’indirizzo del server DHCP, servente per fare la richiesta di IP, è sconosciuto, il client allora esegue la richiesta da un IP uguale a 0.0.0.0 e come destinazione a 255.255.255.255. Nel messaggio del dhcpdiscover sono contenuti gli indirizzi hardware e il nome del client, in modo che il server riesca a risalire al mittente e quindi al giusto client.

Nel DHCPOFFER (offerta di IP), tutti i server DHCP che ricevono una richiesta di lease, effettuano il broadcasting di un msg DHCPOFFER, comprendente l’indirizzo hardware del client, un IP, una subnet mask, la durata effettiva del lease e infine l’indirizzo IP del server offrente.
Il server invia un messaggio. Il client selezione l’IP della prima offerta ricevuta. Il server inoltre “registra” l’IP rilasciato, in modo da non rilasciarlo a un altro client.

Il DHCPREQUEST (selezione di IP), terzo passaggio del processo DHCP, avviene dopo che il client ha ricevuto un messaggio DHCPOFFER, cioè l’offerta dell’IP da parte del server. Il client accetta l’indirizzo IP, offerto da un server DHCP, e rifiuta tutte le altre offerte.

Il DHCPACK (ACKnowledgment) avviene quando il client accetta un IP in modo corretto. In poche parole, il messaggio DHCPACK non è altro che una conferma che il client dà al server. Al contrario, se l’esito è quindi negativo, viene effettuato il broadcasting di un messaggio DHCPNACK (messaggio negativo).

DHCP Nack

Il DHCP Nack (Negative ACKnowledgment), è un pacchetto che viene trasmesso dal server DHCP quando il client ha richiesto un indirizzo IP che non è possibile utilizzare nella attuale subnet.

DHCP Relay Agent

Dopo quanto scritto, ci possiamo porre delle domande: sulla mia rete quanti server DHCP mi servono? Mi servono tanti server DHCP quanti sono i segmenti della rete? Assolutamente no. Possiamo usare un DHCP Relay Agent.

Un DHCP Relay Agent non è altro che una macchina in grado di assegnare indirizzi IP e quindi di sostituire un server DHCP.
Spieghiamo meglio. Mettiamo il caso di avere la rete della figura3. C’è un router al quale sono collegati due switch. Ogni switch ha uno scope diverso: il primo 192.168.1.0 e il secondo 192.168.2.0. Nello scope 1 (da questo momento in poi 192.168.1.0 è lo scope 1 mentre 192.168.2.0 è lo scope 2) come possiamo vedere non c’è nessuno server DHCP, al contrario dello scope 2. Se un client dello scope 2 chiede un indirizzo IP, quest’ultimo viene fornito dal server DHCP presente. Ma lo stesso non accade nello scope 1 perchè non è presente un server DHCP. Quindi possiamo usare un DHCP Relay Agent, che intercetta nel proprio segmento di rete, i pacchetti di DHCP Discovery e DHCP Request, e li inoltra al server DHCP presente nello scope 2, aggiungendo al pacchetto il proprio indirizzo IP. Quest’ultima azione indica al server DHCP che tipo di indirizzi IP assegnare, quindi non gli indirizzi del proprio scope.

Un DHCP Relay Agent, può comunque essere posto anche in un segmento dove vi è già la presenza di un server DHCP. Infatti, nel caso di una qualche sorta di avaria di quest’ultimo, c’è sempre a disposizione il Relay Agent.

Post correlati

Close
Entra in contatto con altri professionisti ICT, seguici su Facebook e Twitter: