Come implementare un server DHCP in Linux (Ubuntu)

Diamogli un indirizzo con un server DHCP.

Il Dynamic Host Configuration Protocol (DHCP) è un protocollo di rete utilizzato per consentire l’assegnazione automatica di indirizzi IP ai computer host o periferiche e le relative configurazioni di rete da un server.

L’indirizzo IP assegnato da un  DHCP server al client DHCP è su un “lease”, il tempo di lease normalmente varia a seconda di quanto tempo un computer client richiederà probabilmente la connessione o la configurazione DHCP. E’ un parametro che viene configurato.

DHCP server in linux
DHCP server in linux



Come funziona.

Una volta che un client (che è configurato per usare DHCP) e connesso ad una rete si avvia, invia un pacchetto DHCPDISCOVER al server DHCP.
Quando il servizio DHCP riceve il pacchetto di richiesta DHCPDISCOVER, risponde con un pacchetto DHCPOFFER.
Poi il client riceve il pacchetto DHCPOFFER e invia un pacchetto DHCPREQUEST al server mostrando di essere pronto a ricevere le informazioni di configurazione di rete fornite nel pacchetto DHCPOFFER.
Infine, dopo che il server DHCP riceve il pacchetto DHCPREQUEST dal client, invia il pacchetto DHCPACK mostrando che al client è ora consentito utilizzare l’indirizzo IP ad esso assegnato.

Per un maggiore approfondimento.

Installiamo il servizio DHCP.

Prima di tutto il canonico

sudo apt-get update

sudo apt-get upgrade

poi …

sudo apt-get install isc-dhcp-server



Configuriamo server DHCP .

Una volta completata l’installazione del servizioDHCP, ci sposteremo verso la sua configurazione. Supponiamo che l’indirizzo IP del nostro servizio DHCP sia  192.168.1.1.

Il file di configurazione DHCP si trova in /etc/dhcp/dhcpd.conf. Possiamo aprire questo file eseguendo il seguente comando nel terminale

sudo nano /etc/dhcp/dhcp/dhcpd.conf

! ricordate ! alla fine di ogni parametro di configurazione , inserire ;  e racchiuderle in parentesi graffe { }.

subnet 192.168.1.0 netmask 255.255.255.0 {

Per specificare l’intervallo di indirizzi disponibili per il lease, aggiungere la seguente riga.

range 192.168.1.2 192.168.1.150;   

(da 192.168.1.2 a 192.168.1.150 , magari da 151 a 254 decidiamo di  utilizzarli per server, ap, etc etc)

andiamo a specificare i server DNS da passare ai client

option domain-name-servers 4.4.4.4 , 8.8.8.8 ;

Se poi avete più interfacce di rete e dovete scegliere su quale braccio far usufruire del servizio:

INTERFACESv4=”eth0″;



Valore di lease.

Se si gestisce un’azienda o si lavora in un ufficio in cui sono in uso più dispositivi, si vorrà considerare la possibilità di regolare il tempo di leasing DHCP, in particolare se si hanno dipendenti,  o clienti che utilizzano i loro dispositivi occasionalmente. La mancata regolazione del tempo di lease comporta probabilmente una carenza di indirizzi IP se si utilizza una /24 .

Se si dispone di numerosi dispositivi, potrebbe essere necessario impostare il tempo di lease DHCP anche sulla rete domestica. In questo caso, un tempo di lease più lungo può essere sufficiente per dispositivi che vengono utilizzati abbastanza frequentemente ma non quotidianamente.

In genere, l’impostazione predefinita del tempo di lease DHCP sulla maggior parte dei server è 24 ore. Tuttavia, questo può essere più breve o più lungo a seconda del proprio server. Le impostazioni possono essere regolate da un minuto fino a un certo numero di giorni.

Si consiglia di evitare di impostare un tempo di lease troppo basso, in quanto ciò può causare interruzioni del servizio. Ad esempio, anche in uno studio medico, in una caffetteria o in un’altra azienda che offre servizi wireless ai propri clienti e clienti, una persona può trascorrere più di 2 ore a navigare in Internet sul proprio telefono. L’impostazione del tempo di locazione per pochi minuti si traduce in interruzioni e rallentamenti.

Possiamo anche impostare i valori di lease:

default-lease-time 28800;

max-lease-time 28800;

Vediamo il servizio in azione.

sudo systemctl status isc-dhcp-server.service

comunque come ogni servizio si può avviare , fermare e riavviare.

sudo systemctl start isc-dhcp-server.service

sudo systemctl stop isc-dhcp-server.service

sudo systemctl restart isc-dhcp-server.service