Red Hat Linux 9: Red Hat Linux Customization Guide | ||
---|---|---|
Indietro | Capitolo 18. Dynamic Host Configuration Protocol (DHCP) | Avanti |
È 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 18.2.2.
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:
Parametri — indicano come eseguire un'operazione, se eseguire un'operazione oppure quali opzioni di configurazione di rete inviare al client.
Dichiarazioni — descrivono la topologia della rete, i client, forniscono indirizzi per i client o applicano un gruppo di parametri a un gruppo di dichiarazioni.
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.
![]() | Importante |
---|---|
Se modificate il file di configurazione, le modifiche avranno effetto solo al riavvio del demone DHCP con il comando service dhcpd restart. |
Nell'Esempio 18-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 18-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.
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; } |
Esempio 18-1. Dichiarazione di sottorete
Tutte le sottoreti che condividono la stessa rete fisica dovrebbero essere inserite in una dichiarazione shared-network, come mostra l'Esempio 18-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.
shared-network name { option domain-name "test.redhat.com"; option domain-name-servers ns1.redhat.com, ns2.redhat.com; option routers 192.168.1.254; more parameters for EXAMPLE shared-network subnet 192.168.1.0 netmask 255.255.255.0 { parameters for subnet range 192.168.1.1 192.168.1.31; } subnet 192.168.1.32 netmask 255.255.255.0 { parameters for subnet range 192.168.1.33 192.168.1.63; } } |
Esempio 18-2. Dichiarazione di rete condivisa
Come mostra l'Esempio 18-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.
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; } } |
Esempio 18-3. Dichiarazione di gruppo
Per configurare un server DHCP che affitta indirizzi IP dinamici al sistema inserito in una sottorete, modificate l'Esempio 18-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.
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; } |
Esempio 18-4. Parametro del range
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 18-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.
host apex { option host-name "apex.example.com"; hardware ethernet 00:A0:78:8E:9E:AA; fixed-address 192.168.1.4; } |
Esempio 18-5. Indirizzo IP statico con DHCP
![]() | Suggerimento | |
---|---|---|
Potete usare il file campione di configurazione in Red Hat Linux 9 come il punto iniziale a cui aggiungere le opzioni di configurazione personalizzata. Copiatelo nella posizione appropriata con il comando
|
Per un elenco completo di dichiarazioni per le opzioni e delle loro funzioni, fate riferimento alla pagina man dhcp-options.
Sul server DHCP, il file /var/lib/dhcp/dhcpd.leases archivia la database degli affitti 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 degli affitti. 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 della database degli affitti fanno riferimento al Greenwich Mean Time (GMT), non all'ora locale.
La database degli affitti viene ricreata ogni tanto cosichè no diventa troppo lungo. Prima, tutti gli affitti esistenti vengono salvati in una databasetemporanea degli affitti. Il file dhcpd.leases viene rinominato dhcpd.leases~ e la database temporanea degli affitti viene scritta nel file dhcpd.leases.
Quando la database degli affitti viene rinominata come file di backup, questo potrebbe causare il demone DHCP ad essere eliminato o potrebbe bloccare il sistema, se il nuovo file non viene creato prima. In questo caso, non vi è il file dhcpd.leases, che è richiesto per avviare il servizio. Se ciò si verifica, non create un nuovo file degli affitti, 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.
![]() | Importante |
---|---|
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 14 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:
-p <numero-porta> — specificate il numero di porta udp sulla quale il dhcpd deve stare in ascolto. L'impostazione di default è la porta 67. Il server DHCP trasmette le risposte ai client DHCP a un numero di porta superiore di un valore a quello specificato per la porta udp. Per esempio, se si accetta la porta 67, il server si mette in ascolto sulla porta 67 per raccogliere le richieste e le risposte per il client sulla porta 68. Se si specifica una porta e si utilizza il relay agent DHCP, occorre specificare la stessa porta sulla quale il relay agent DHCP è in ascolto. Per maggiori dettagli consultate la Sezione 18.2.4.
-f — eseguite il demone come processo in primo piano. Questo è usato soprattutto per operazioni di debug.
-d — registrate il demone del server DHCP sul descrittore di errori standard. Questo è usato soprattutto per operazioni di debug. Se non è specificato, il log viene scritto nel file /var/log/messages.
-cf nomefile — specificate la posizione del file di configurazione. La posizione di default è /etc/dhcpd.conf.
-lf nomefile specificate la posizione della database degli affitti. Se la database esiste già, è importante che lo stesso file venga utilizzato a ogni avvio del server DHCP. Si consiglia di usare questa opzione solo per operazioni di debug su macchine non destinate alla produzione. La posizione di default è /var/lib/dhcp/dhcpd.leases.
-q — non stampate l'intero messaggio di copyright quando avviate il demone.
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.