Ricerca nel sito web

Come installare un server DHCP in Ubuntu e Debian


Dynamic Host Configuration Protocol (DHCP) è un protocollo di rete utilizzato per consentire l'assegnazione automatica degli indirizzi IP e delle relative configurazioni di rete da un server ai computer host.

L'indirizzo IP assegnato da un server DHCP al client DHCP è in "lease", il tempo di lease varia normalmente a seconda della durata del tempo in cui un computer client richiederà la connessione o la configurazione DHCP.

Come funziona il DHCP?

Quella che segue è una breve descrizione di come funziona effettivamente DHCP:

  • Una volta avviato un client (configurato per utilizzare DHCP) e connesso a una rete, invia un pacchetto DHCPDISCOVER al server DHCP.
  • Quando il server DHCP riceve il pacchetto di richiesta DHCPDISCOVER, risponde con un pacchetto DHCPOFFER.
  • Quindi il client riceve il pacchetto DHCPOFFER e invia un pacchetto DHCPREQUEST al server mostrando che è pronto a ricevere le informazioni di configurazione di rete fornite nel DHCPOFFER forte> pacchetto.
  • Infine, dopo che il server DHCP ha ricevuto il pacchetto DHCPREQUEST dal client, invia il pacchetto DHCPACK mostrando che ora il client è autorizzato a utilizzare l'indirizzo IP assegnatogli.

In questo articolo ti mostreremo come configurare un server DHCP in Ubuntu/Debian Linux ed eseguiremo tutti i comandi con il comando sudo per ottenere i privilegi di utente root.

Configurazione dell'ambiente di test

Utilizzeremo il seguente ambiente di test per questa configurazione.

DHCP Server - Ubuntu 16.04 
DHCP Clients - CentOS 7 and Fedora 25

Passaggio 1: installazione del server DHCP in Ubuntu

1. Esegui il comando seguente per installare il pacchetto server DCHP, precedentemente noto come dhcp3-server.

sudo apt install isc-dhcp-server

2. Al termine dell'installazione, modifica il file /etc/default/isc-dhcp-server per definire le interfacce che DHCPD dovrebbe utilizzare per servire le richieste DHCP, con l'opzione INTERFACES .

Ad esempio, se vuoi che il demone DHCPD sia in ascolto su eth0, impostalo in questo modo:

INTERFACES="eth0"

E scopri anche come configurare un indirizzo IP statico per l'interfaccia sopra.

Passaggio 2: configurazione del server DHCP in Ubuntu

3. Il file di configurazione DHCP principale è /etc/dhcp/dhcpd.conf, devi aggiungere qui tutte le informazioni di rete da inviare ai client.

Inoltre, esistono due tipi di istruzioni definite nel file di configurazione DHCP, ovvero:

  • parametri: specifica come eseguire un'attività, se eseguire un'attività o quali opzioni di configurazione di rete inviare al client DHCP.
  • dichiarazioni: definiscono la topologia della rete, dichiarano i client, offrono indirizzi per i client o applicano un gruppo di parametri a un gruppo di dichiarazioni.

4. Ora apri e modifica il file di configurazione principale, definisci le opzioni del tuo server DHCP:

sudo vi /etc/dhcp/dhcpd.conf 

Imposta i seguenti parametri globali nella parte superiore del file, si applicheranno a tutte le dichiarazioni seguenti (specifica i valori che si applicano al tuo scenario):

option domain-name "tecmint.lan";
option domain-name-servers ns1.tecmint.lan, ns2.tecmint.lan;
default-lease-time 3600; 
max-lease-time 7200;
authoritative;

5. Ora definisci una sottorete; qui configureremo DHCP per la rete LAN 192.168.10.0/24 (utilizza i parametri che si applicano al tuo scenario).

subnet 192.168.10.0 netmask 255.255.255.0 {
        option routers                  192.168.10.1;
        option subnet-mask              255.255.255.0;
        option domain-search            "tecmint.lan";
        option domain-name-servers      192.168.10.1;
        range   192.168.10.10   192.168.10.100;
        range   192.168.10.110   192.168.10.200;
}

Passaggio 3: configurare l'IP statico sulla macchina client DHCP

6. Per assegnare un indirizzo IP fisso (statico) a un particolare computer client, aggiungi la sezione seguente in cui devi specificare esplicitamente i suoi indirizzi MAC e l'IP da assegnare staticamente:

host centos-node {
	 hardware ethernet 00:f0:m4:6y:89:0g;
	 fixed-address 192.168.10.105;
 }

host fedora-node {
	 hardware ethernet 00:4g:8h:13:8h:3a;
	 fixed-address 192.168.10.106;
 }

Salva il file e chiudilo.

7. Successivamente, avvia momentaneamente il servizio DHCP e abilitalo all'avvio automatico al successivo avvio del sistema, in questo modo:

------------ SystemD ------------ 
sudo systemctl start isc-dhcp-server.service
sudo systemctl enable isc-dhcp-server.service


------------ SysVinit ------------ 
sudo service isc-dhcp-server.service start
sudo service isc-dhcp-server.service enable

8. Successivamente, non dimenticare di consentire il servizio DHCP (il demone DHCPPD è in ascolto sulla porta 67/UDP) sul firewall come di seguito:

sudo ufw allow  67/udp
sudo ufw reload
sudo ufw show

Passaggio 4: configurazione delle macchine client DHCP

9. A questo punto, puoi configurare i computer client sulla rete per ricevere automaticamente gli indirizzi IP dal server DHCP.

Accedere ai computer client e modificare il file di configurazione dell'interfaccia Ethernet come segue (prendere nota del nome/numero dell'interfaccia):

sudo vi /etc/network/interfaces

E definisci le opzioni di seguito:

auto  eth0
iface eth0 inet dhcp

Salvare il file ed uscire. E riavvia i servizi di rete in questo modo (o riavvia il sistema):

------------ SystemD ------------ 
sudo systemctl restart networking

------------ SysVinit ------------ 
sudo service networking restart

In alternativa, utilizzare la GUI su un computer desktop per eseguire le impostazioni, impostare il Metodo su Automatico (DHCP) come mostrato nello screenshot seguente (desktop Fedora 25).

A questo punto, se tutte le impostazioni sono configurate correttamente, il computer client dovrebbe ricevere automaticamente gli indirizzi IP dal server DHCP.

Questo è tutto! In questo tutorial ti abbiamo mostrato come configurare un server DHCP in Ubuntu/Debian. Condividi i tuoi pensieri con noi tramite la sezione feedback qui sotto. Se stai utilizzando una distribuzione basata su Fedora, scopri come configurare un server DHCP in CentOS/RHEL.