Configurazione di un server DHCP

� possibile configurare un server DHCP usando il file di configurazione /etc/dhcpd.conf.

Il DHCP utilizza anche il file /var/lib/dhcp/dhcpd.leases per archiviare il database in 'affitto' (lease) del client. Per ulteriori informazioni, fate riferimento alla la sezione Database in affitto.

File di configurazione

La prima fase della configurazione di un server DHCP � la creazione del file di configurazione contenente le informazioni di rete per i client. Le opzioni globali possono essere inserite per tutti i client oppure per ciascun sistema client.

Il file di configurazione pu� contenere schede e linee vuote aggiuntive per facilitare la formattazione. Le parole chiave non distinguono tra lettere maiuscole e lettere minuscole e le linee che iniziano con un cancelletto (#) sono considerate commenti.

Due sono gli schemi di aggiornamento DNS correntemente implementati, la modalit� di aggiornamento DNS ad-hoc e quella della bozza di interazione DHCP-DNS temporanea. Se e quando queste due modalit� verranno accettate come parte del processo degli standard IETF, sar� disponibile una terza modalit�, il metodo di aggiornamento DNS standard. Il server DHCP deve essere configurato per l'utilizzo di uno dei due schemi correnti. La versione 3.0b2pl11 e la versione precedente utilizzavano la modalit� ad-hoc, che ora non � pi� cos� utilizzata. Se desiderate che venga mantenuto lo stesso comportamento, aggiungete la riga riportata di seguito nella parte superiore del file di configurazione:

ddns-update-style ad-hoc;

Per utilizzare la modalit� consigliata, aggiungete la riga riportata di seguito nella parte superiore del file di configurazione:

ddns-update-style interim;

Per ulteriori informazioni sulle diverse modalit�, consultate la pagina man dhcpd.conf.

Esistono due tipi di dichiarazioni nei file di configurazione:

Alcuni parametri richiedono di essere avviati con la parola chiave option e sono indicati come opzioni che configurano le opzioni DHCP, mentre i parametri configurano i valori non opzionali oppure controllano l'attivit� del server DHCP.

I parametri (incluse le opzioni) dichiarati prima di una sezione inclusa tra parentesi graffe ({ }) sono considerati parametri globali, ovvero si applicano a tutte le sezioni che li seguono.

ImportanteImportante
 

Se modificate il file di configurazione, le modifiche avranno effetto solo al riavvio del demone DHCP con il comando service dhcpd restart.

Nell'Esempio 17-1 le opzioni routers, subnet-mask, domain-name, domain-name-servers e time-offset sono utilizzate per le dichiarazioni host dichiarate sotto di esse.

Come mostra l'Esempio 17-1, � possibile indicare una subnet. � necessario includere una dichiarazione subnet per ogni sottorete della rete. In caso contrario, il server DHCP non si avvier�.

Quest'esempio riporta delle opzioni globali per ogni client DHCP nella sottorete e un range dichiarato. Ai client viene assegnato un indirizzo IP compreso nel range.

Esempio 17-1. Dichiarazione di sottorete

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers                  192.168.1.254;
        option subnet-mask              255.255.255.0;

        option domain-name              "example.com";
        option domain-name-servers       192.168.1.1;

        option time-offset              -18000;     # Eastern Standard Time

	range 192.168.1.10 192.168.1.100;
}

Tutte le sottoreti che condividono la stessa rete fisica dovrebbero essere inserite in una dichiarazione shared-network, come mostra l'Esempio 17-2. I parametri contenuti nella shared-network e non nelle dichiarazioni subnet sono considerati parametri globali. Il nome della shared-network dovrebbe essere un titolo descrittivo per la rete, come per esempio test-lab per descrivere tutte le sottoreti in un ambiente di laboratorio per i test.

Esempio 17-2. Dichiarazione di rete condivisa

shared-network nome {
    option domain-name              "test.redhat.com";
    option domain-name-servers      ns1.redhat.com, ns2.redhat.com;
    option routers                  192.168.1.254;
    ulteriori parametri per la rete condivisa dell'ESEMPIO
    subnet 192.168.1.0 netmask 255.255.255.0 {
        parametri per sottorete
        range 192.168.1.1 192.168.1.31;
    }
    subnet 192.168.1.32 netmask 255.255.255.0 {
        parametri per sottorete
        range 192.168.1.33 192.168.1.63;
    }
}

Come mostra l'Esempio 17-3, la dichiarazione group pu� essere utilizzata per applicare i parametri globali a un gruppo di dichiarazioni. � possibile raggruppare reti condivise, sottoreti, host o altri gruppi.

Esempio 17-3. Dichiarazione di gruppo

group {
   option routers                  192.168.1.254;
   option subnet-mask              255.255.255.0;

   option domain-name              "example.com";
   option domain-name-servers       192.168.1.1;

   option time-offset              -18000;     # Eastern Standard Time

   host apex {
      option host-name "apex.example.com";
      hardware ethernet 00:A0:78:8E:9E:AA;
      fixed-address 192.168.1.4;
   }

   host raleigh {
      option host-name "raleigh.example.com";
      hardware ethernet 00:A1:DD:74:C3:F2;
      fixed-address 192.168.1.6;
   }
}

Per configurare un server DHCP che affitta indirizzi IP dinamici al sistema inserito in una sottorete, modificate l'Esempio 17-4 inserendo i vostri valori. Questo dichiara un tempo di affitto di default, il tempo massimo e i valori della configurazione di rete per i client. L'esempio riportato qui di seguito assegna gli indirizzi IP ai sistemi client nel range 192.168.1.10 e 192.168.1.100.

Esempio 17-4. Parametro del range

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 "example.com";

subnet 192.168.1.0 netmask 255.255.255.0 {
   range 192.168.1.10 192.168.1.100;
}

Per assegnare un indirizzo IP a un client che si basa sull'indirizzo MAC della scheda di rete, utilizzare il parametro hardware ethernet contenuto nella dichiarazione host. Come dimostra l'Esempio 17-5, la dichiarazione host apex specifica che la scheda di rete con l'indirizzo MAC 00:A0:78:8E:9E:AA dovrebbe sempre corrispondere all'indirizzo IP 192.168.1.4.

Si ricorda che � anche possibile utilizzare il parametro opzionale host-name per assegnare un nome di host al client.

Esempio 17-5. Indirizzo IP statico con DHCP

host apex {
   option host-name "apex.example.com";
   hardware ethernet 00:A0:78:8E:9E:AA;
   fixed-address 192.168.1.4;
}

SuggerimentoSuggerimento
 

Potete usare il file campione di configurazione in Red Hat Linux 8.0 come il punto iniziale a cui aggiungere le opzioni di configurazione personalizzata. Copiatelo nella posizione appropriata con il comando
cp /usr/share/doc/dhcp-<numero-versione>/dhcpd.conf.sample /etc/dhcpd.conf
(dove <numero-versione> � la versione DHCP in uso).

Per un elenco completo di dichiarazioni per le opzioni e delle loro funzioni, fate riferimento alla pagina man dhcp-options.

Database in affitto

Sul server DHCP, il file /var/lib/dhcp/dhcpd.leases archivia il database affittato del client DHCP. Si consiglia di non modificare il file manualmente. Le informazioni sull'affitto DHCP per ogni indirizzo IP assegnato di recente sono archiviate automaticamente nel database affittato. Le informazioni includono la lunghezza dell'affitto, a chi � stato assegnato l'indirizzo IP, l'inizio e la chiusura delle date di affitto e l'indirizzo MAC della scheda di interfaccia di rete usata per reperire l'affitto.

Tutti gli orari del database in affitto fanno riferimento al Greenwich Mean Time (GMT), non all'ora locale.

Il file dhcpd.leases viene rinominato dhcpd.leases~ e il database temporaneo in affitto viene scritto nel file dhcpd.leases.

Il demone DHCP dovrebbe essere eliminato, altrimenti il sistema, trovandosi in una situazione in cui il database in affitto � stato rinominato come file di backup ma il nuovo file non � ancora stato scritto, potrebbe bloccarsi. In questo caso, non vi � il file dhcpd.leases, richiesto per avviare il servizio. Se ci� si verifica, non create un nuovo file di affitto, altrimenti tutti gli affitti precedenti andranno persi causando molti problemi. La soluzione corretta � rinominare il file di backup dhcpd.leases~ come dhcpd.leases, quindi avviare il demone.

Avvio e arresto del server

ImportanteImportante
 

Prima di avviare il server DHCP per la prima volta, assicuratevi dell'esistenza del file dhcpd.leases, in mancanza del quale l'operazione fallir�. Utilizzate il comando touch /var/lib/dhcp/dhcpd.leases per creare il file prima di avviare il servizio.

Per avviare il servizio DHCP, utilizzate il comando /sbin/service dhcpd start. Per arrestarlo, utilizzate invece il comando /sbin/service dhcpd stop. Se desiderate che il demone si avvii automaticamente durante l'avvio, consultate il Capitolo 13 per informazioni sulla gestione dei servizi.

Se disponete di pi� interfacce di rete per il sistema, ma desiderate che il server DHCP si avvii unicamente su un'interfaccia, potete configurare il server DHCP a tale scopo. Nel file /etc/sysconfig/dhcpd, aggiungete il nome dell'interfaccia all'elenco DHCPDARGS:

# Command line options here
DHCPDARGS=eth0

Si rivela utile se avete un firewall con due schede di rete. Una scheda pu� essere configurata come client DHCP per recuperare un indirizzo IP in Internet, l'altra come server DHCP per la rete interna protetta dal firewall. Se specificate solo la scheda di rete collegata alla rete interna, otterrete un sistema pi� sicuro in quanto gli utenti non possono collegarsi al demone tramite Internet.

Altre opzioni della linea di comando possono essere specificate nel file /etc/sysconfig/dhcpd e includono:

Relay Agent DHCP

Il Relay Agent DHCP (dhcrelay) vi consente di comunicare le richieste DHCP e BOOTP provenienti da una sottorete senza server DHCP a uno o pi� server DHCP su altre sottoreti.

Quando un client DHCP richiede delle informazioni, il Relay Agent inoltra la richiesta all'elenco di server DHCP specificati all'avvio del Relay Agent DHCP. Quando un server DHCP invia una risposta, viene eseguito il broadcast o l'unicast sulla rete che ha inviato la richiesta originale.

Il Relay Agent DHCP ascolta le richieste DHCP su tutte le interfacce a meno che non vengano specificate le interfacce nel file /etc/sysconfig/dhcrelay con la direttiva INTERFACES.

Per avviare il Relay Agent DHCP, utilizzate il comando service dhcrelay start.