## DHCP (Dynamic Host Configuration Protocol)

Il DHCP (Dynamic Host Configuration Protocol) è un servizio di rete che consente di assegnare automaticamente le impostazioni per i computer host da un server, senza la necessità di configurare manualmente ogni singolo host di rete. I computer configurati per essere client DHCP non hanno alcun controllo sulle impostazioni che ricevono dal server DHCP e la configurazione è trasparente all'utente del computer.

Le impostazioni comuni fornite da un server DHCP a un client includono:

- Indirizzo IP e maschera di rete (netmask)

- DNS

- WINS

Comunque, un server DHCP può fornire anche altre proprietà di configurazione come:

- Nome dell'host

- Nome del dominio

- Gateway predefinito

- Server NTP (Network Time Protocol)

- Server di stampa

Il vantaggio di utilizzare DHCP è che i cambiamenti apportati alla rete, ad esempio una modifica dell'indirizzo del server DNS, devono essere apportati solamente al server DHCP, mentre tutti gli host della rete vengono riconfigurati quando i client DHCP interrrogano il server DHCP. Come ulteriore vantaggio, risulta anche molto semplice integrare nuovi computer nella rete, senza la necessità di controllare la disponibilità di un indirizzo IP. I conflitti nell'allocazione degli indirizzi IP sono quindi notevolmente ridotti.

Le impostazioni di configurazione sono fornite da un server DHCP usando due metodi:

Indirizzo MAC

  Questo metodo comporta l'utilizzo di DHCP per indentificare l'indirizzo hardware univoco di ogni scheda di rete collegata alla rete, così da fornire in modo continuato un configurazione costante ogni volta che il client DHCP avanza una richiesta al server DHCP usando quel particolare dispositivo di rete.

Spazio degli indirizzi

  Questo metodo comporta la definizione di un insieme o intervallo di indirizzi IP (a volte indicati come pool) con cui configurare dinamicamente i client DHCP in base all'ordine di arrivo delle richieste (la prima che arriva è la prima servita, disciplina FIFO). Dopo un determinato periodo, se il client DHCP non è presente in rete, la configurazione scade e viene reinserita nello spazio di indirizzi per poter essere riutilizzata.

Ubuntu comprende sia un server che un client DHCP. Il server è dhcpd (dynamic host configuration protocol daemon). Il client fornito è dhclient e dovrebbe essere installato su tutti i computer che necessitano di essere configurati automaticamente. Entrambi i programmi sono facili da installare e da configurare e vengono avviati automaticamente al boot del sistema.

### Installazione

A un prompt di terminale, inserire il seguente comando per installare dhcpd:

    sudo apt-get install dhcpd

Verrà mostrato il seguente output indicante i prossimi passi da compiere:

    Please note that if you are installing the DHCP server for the first
    time you need to configure. Please stop (/etc/init.d/dhcp
    stop) the DHCP server daemon, edit /etc/dhcpd.conf to suit your needs
    and particular configuration, and restart the DHCP server daemon
    (/etc/init.d/dhcp start).

    You also need to edit /etc/default/dhcp to specify the interfaces dhcpd
    should listen to. By default it listens to eth0.

    NOTE: dhcpd's messages are being sent to syslog. Look there for
    diagnostics messages.

    Starting DHCP server: dhcpd failed to start - check syslog for diagnostics.

### Configurazione

Il messaggio di errore con cui si conclude l'installazione potrebbe essere fuorviante, ma i passi seguenti consentono di configurare il servizio:

Nella maggior parte dei casi si vuole assegnare un indirizzo IP in modo casuale. Questo può essere ottenuto con impostazioni come le seguenti:

    # Esempio di /etc/dhcpd.conf
    # (aggiungere qui i propri commenti)
    default-lease-time 600;
    max-lease-time 7200;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.1.255;
    option routers 192.168.1.254;
    option domain-name-servers 192.168.1.1, 192.168.1.2;
    option domain-name "mydomain.org";

    subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.10 192.168.1.100;
    range 192.168.1.150 192.168.1.200;
    }

Come risultato si ottiene che il server DHCP fornisce a un client un indirizzo IP nell'intervallo 192.168.1.10 ~ 192.168.1.100 oppure 192.168.1.150 ~ 192.168.1.200. Se il client non richiede uno specifico intervallo di tempo, la durata di "affitto" di un indirizzo IP è di 600 secondi; in caso contrario il valore massimo (consentito) è di 7200 secondi. Il server inoltre "avvisa" il client di utilizzare 255.255.255.0 come maschera di sottorete, 192.168.1.255 come indirizzo di broadcast, 192.168.1.254 come gateway e 192.168.1.1 e 192.168.1.2 come server DNS.

Se è necessario specificare un server WINS per i client Windows, è necessario includere l'opzione netbios-name-servers, per esempio

    option netbios-name-servers 192.168.1.1;

Le impostazioni di configurazione per dhcpd sono prese dal mini-HOWTO di DHCP, il quale può essere trovato qui.

### Riferimenti

FAQ di DHCP

NFS (Network File System) |  | DNS (Domain Name Service)