Product SiteDocumentation Site

10.7. DHCP

DHCP (protocollo di configurazione dinamica degli host: Dynamic Host Configuration Protocol) è un protocollo con il quale una macchina può ottenere la configurazione di rete automaticamente al suo avvio. Questo permette di centralizzare la gestione delle configurazioni di rete, e garantire che tutte le macchine desktop abbiano impostazioni simili.
Un server DHCP fornisce molti parametri relativi alla rete. Il più comune di questi è un indirizzo IP e la rete a cui la macchina appartiene, ma può anche fornire altre informazioni, come: server DNS, server WINS, server NTP e così via.
L'autore principale del server DHCP è l'Internet Software Consortium (coinvolto anche nello sviluppo di bind). Il pacchetto Debian corrispondente è isc-dhcp-server.

10.7.1. Configurazione

I primi elementi che devono essere modificati nel file di configurazione del server DHCP (/etc/dhcp/dhcpd.conf) sono il nome di dominio e i server DNS. Se è l'unico server DHCP nella rete locale (come definito dalla propagazione broadcast), deve essere abilitata (o decommentata) la direttiva authoritative. Inoltre, è necessario creare anche una sezione subnet che descriva la rete locale e le informazioni di configurazione che devono essere fornite. L'esempio seguente è adatto ad una rete locale 192.168.0.0/24 con un router 192.168.0.1 che funge da gateway. Gli indirizzi IP disponibili sono compresi nell'intervallo da 192.168.0.128 a 192.168.0.254.

Esempio 10.15. Estratto da /etc/dhcp/dhcpd.conf

#
# Sample configuration file for ISC dhcpd for Debian
#

# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed. We default to the
# behavior of the version 2 packages ('none', since DHCP v2 didn't
# have support for DDNS.)
ddns-update-style interim;

# option definitions common to all supported networks...
option domain-name "internal.falcot.com";
option domain-name-servers ns.internal.falcot.com;

default-lease-time 600;
max-lease-time 7200;

# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;

# Use this to send dhcp log messages to a different log file (you also
# have to hack syslog.conf to complete the redirection).
log-facility local7;

# My subnet
subnet 192.168.0.0 netmask 255.255.255.0 {
    option routers 192.168.0.1;
    option broadcast-address 192.168.0.255;
    range 192.168.0.128 192.168.0.254;
    ddns-domainname "internal.falcot.com";
}

10.7.2. DHCP e DNS

Una caratteristica interessante è la registrazione automatica dei client DHCP nella zona DNS, in modo che ogni macchina abbia un nome significativo (piuttosto che qualcosa di impersonale, come machine-192-168-0-131.internal.falcot.com). Per utilizzare questa caratteristica è necessario configurare il server DNS in modo che accetti gli aggiornamenti nella zona DNS internal.falcot.com da parte del server DHCP, e la configurazione di quest'ultimo ad inviare gli aggiornamenti ad ogni registrazione.
Nel caso di bind, la direttiva allow-update deve essere aggiunta in ciascuna delle zone che il server DHCP deve modificare (quella per il dominio internal.falcot.com e la sua zona inversa). Questa direttiva elenca gli indirizzi IP autorizzati ad effettuare questi aggiornamenti. Pertanto dovrebbe contenere i possibili indirizzi del server DHCP (l'indirizzo locale e l'indirizzo pubblico, se opportuno).
allow-update { 127.0.0.1 192.168.0.1 212.94.201.10 !any };
Attenzione! Una zona che può essere modificata verrà modificata tramite bind, quest'ultimo sovrascriverà i file di configurazione a intervalli regolari. Poiché questa procedura automatizzata produce file che sono meno leggibili rispetto a quelli scritti manualmente, gli amministratori Falcot gestiscono il dominio internal.falcot.com con un server DNS delegato; questo significa che il file di zona falcot.com resta saldamente sotto il loro controllo manuale.
L'esempio di configurazione del server DHCP precedente include già le direttive necessarie per gli aggiornamenti della zona DNS: sono le righe ddns-update-style interim; e ddns-domain-name "internal.falcot.com"; nel blocco che descrive la sottorete.