Il cosiddetto “Dynamic Host Configuration Protocol” permette di assegnare i parametri di configurazione della rete ai singoli host tramite un server centrale, senza dover quindi configurare ogni singolo host presente sulla rete. Un client configurato tramite DHCP non dispone di indirizzi statici, ma viene configurato in modo automatico secondo le indicazioni del server DHCP.
Il server identifica i client in base al loro indirizzo di hardware della scheda di rete e quindi potrà assegnare lo costantemente le stesse impostazioni, come pure allocare ai client, che ne fanno richiesta, degli indirizzi in modo dinamico presi da un pool di indirizzi. In questo caso, il server DHCP provvederà a far sì che ad ogni richiesta venga assegnato al client lo stesso indirizzo anche per lunghi periodi di tempo — naturalmente, questo non funziona se nella rete vi sono più sistemi che indirizzi disponibili.
Un amministratore di sistema può quindi trarre vantaggio da DHCP in due modi diversi. Da un lato è possibile modificare comodamente gli indirizzi di rete e la configurazione intervenendo sul file di configurazione del server DHCP senza dover configurare singolarmente i vari client, e dall'altro, in particolar modo i client che si vanno ad aggiungere sulla rete possono essere integrati facilmente nella rete, assegnando loro un indirizzo IP preso dall'intervallo (pool) degli indirizzi. Anche per i portatili utilizzati continuamente in reti diverse è certamente una soluzione interessante ricevere da un server DHCP di volta in volta i parametri di rete appropriati.
Oltre all'indirizzo IP e alla maschera di rete, vengono comunicati al client anche il nome dell' host e del dominio, il gateway da utilizzare e gli indirizzi dei server dei nomi. Inoltre, possono venire configurati centralmente anche molti altri parametri come p.es. un time server da cui richiedere l'ora attuale o un server di stampa. In quel che segue, vi forniremo una breve descrizione di dhcpd. Prendendo spunto dall'esempio riportato di seguito intendiamo mostrare come sia possibile configurare una rete centralmente tramite un server DHCP.
vi offre sia un server DHCP che due pacchetti client. Il server DHCP dhcpd rilasciato dall'ISC (Internet Software Consortium) mette a disposizione i servizi server; come client potete utilizzare sia dhclient , rilasciato dall'ISC che il cosiddetto “DHCP Client Daemon” contenuto nel pacchetto dhcpcd.
Il dhcpcd installato come standard in è molto semplice da gestire, e viene lanciato automaticamente all'avvio del sistema per rilevare il server DHCP. Se la cava senza un file di configurazione e normalmente non è necessario intervenire sulla configurazione.
Per scenari più complessi, si può ricorrere al dhclient dell'ISC che potete amministrare tramite il file di configurazione /etc/dhclient.conf.
Il Dynamic Host Configuration Protocol Daemon è il cuore di ogni sistema DHCP che dà in “affitto” indirizzi e ne sorveglia l'uso in base a quanto stabilito nel file di configurazione /etc/dhcpd.conf. Tramite i parametri e i valori lì definiti, l'amministratore di sistema dispone di numerosi mezzi per impostare il comportamento del server DHCP secondo le sue preferenze.
Esempio di un semplice file /etc/dhcpd.conf:
Example 22.30. Il file di configurazione /etc/dhcpd.conf
default-lease-time 600; # 10 minutes
max-lease-time 7200; # 2 hours
option domain-name "cosmos.all";
option domain-name-servers 192.168.1.1, 192.168.1.2;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option subnet-mask 255.255.255.0;
subnet 192.168.1.0 netmask 255.255.255.0
{
range 192.168.1.10 192.168.1.20;
range 192.168.1.100 192.168.1.200;
}
Questo semplice file di configurazione è sufficiente affinché DHCP sia in grado di attribuire indirizzi IP nella vostra rete. Fate specialmente attenzione ai punti e virgola alla fine di ogni riga; senza di essi, dhcpd non si avvierà!
Come vedete, il nostro esempio si lascia suddividere in tre blocchi. Nel primo blocco viene definito di default per quanti secondi un indirizzo IP venga dato in “affitto” ad un computer richiedente, prima che questi cerchi di ottenere una proroga ( default-lease-time). Qui viene anche indicato il periodo di tempo massimo per il quale un computer può mantenere il numero IP assegnatogli dal server DHCP, senza dover richiedere una dilazione di tempo (max-lease-time).
Nel secondo blocco vengono definiti globalmente alcuni parametri di rete fondamentali:
Con option domain-name viene definito il dominio di default della vostra rete.
Con option domain-name-server possono venire indicati fino a tre server DNS che devono venire utilizzati per la risoluzione di indirizzi IP in nomi di host (e viceversa). E' consigliabile che sul vostro sistema o sulla vostra rete, fosse già in esecuzione un server dei nomi che tenesse in serbo anche un nome di host per indirizzi dinamici e viceversa. Ulteriori informazioni riguardanti la configurazione di un proprio server dei nomi si veda sezione Section 22.7, “DNS: Domain Name System”.
option broadcast-address stabilisce quale indirizzo broadcast debba usare il computer richiedente.
option routers stabilisce dove debbano venire inviati quei pacchetti di dati che in base all'indirizzo dell' host mittente e dell' host meta nonché della maschera della sottorete non possono venire recapitati nella rete locale. Nella maggior parte dei casi, proprio nelle reti di minor dimensione questo router è anche l'anello di connessione per l'Internet.
option subnet-mask indica la maschera di rete da consegnare al client.
Al di sotto di queste impostazioni generali vi è la definizione di un'altra rete con la maschera di sottorete. Infine, va stabilita un'area indirizzi dalla quale il demone DHCP possa attribuire indirizzi ai client che ne fanno richiesta. Nel nostro esempio, gli indirizzi fra 192.168.1.10 e 192.168.1.20 oppure 192.168.1.100 e 192.168.1.200.
Dopo queste poche righe, dovreste già essere in grado di attivare, con il comando rcdhcpd start, il demone DHCP che sarà subito a vostra disposizione.
In il demone DHCP viene lanciato di default, per motivi di sicurezza, in un ambiente chroot. Affinché vengano rilevati i file di configurazione, anch' essi devono essere copiati nel nuovo ambiente. Questo avviene automaticamente con rcdhcpd start.
Con rcdhcpd check-syntax potete anche far eseguire un breve controllo riguardante la sintassi del file di configurazione. Se inaspettatamente dovessero verificarsi dei problemi di configurazione ed il server dovesse terminare con un errore invece di avviarsi con un done, consultate il file di protocollo del sistema centrale /var/log/messages, oppure data un'occhiata alla console 10 (Ctrl-Alt-F10).
Come già accennato all'inizio, con DHCP è possibile assegnare ad un client un determinato indirizzo ad ogni richiesta.
Naturalmente tali esplicite attribuzioni di indirizzi hanno la precedenza sull'attribuzione dinamica di un indirizzo preso dal pool ovvero insieme di indirizzi. Gli indirizzi allocati esplicitamente non hanno una scadenza, come è invece il caso per quelli dinamici, quando non è più disponibile un numero sufficiente di indirizzi liberi e quindi si rende necessaria una riallocazione degli indirizzi.
Per identificare un sistema con un indirizzo statico, il dhcpd ricorre al cosiddetto indirizzo hardware: si tratta di un determinato codice unico al mondo composto da sei coppie di ottetti assegnato ad ogni dispositivo di rete, p.es. 00:00:45:12:EE:F4.
Se al file di configurazione del file Example 22.30, “Il file di configurazione /etc/dhcpd.conf” viene aggiunta una registrazione come nel file Example 22.31, “Aggiunte al file di configurazione”, il dhcpd fornirà in ogni caso gli stessi dati al sistema corrispondente.
Example 22.31. Aggiunte al file di configurazione
host {
hardware ethernet 00:00:45:12:EE:F4;
fixed-address 192.168.1.21;
}
La struttura di queste righe è autoesplicativa: come prima cosa viene indicato il nome del sistema da definire (host nome host), e nella riga seguente si indica l'indirizzo MAC. Nei sistemi Linux, potete rilevare questo indirizzo servendovi del comando ifstatus accompagnato dal nome della scheda di rete (ad esempio, eth0). Può darsi che sia necessario attivare prima la scheda, fatelo con: ifup eth0. Otterrete un output del tipo:
link/ether 00:00:45:12:EE:F4
Nel nostro esempio, viene assegnato al sistema - la cui scheda di rete possiede l'indirizzo MAC 00:00:45:12:EE:F4 - l'indirizzo IP 192.168.1.21 ed il nome host . Oggigiorno, come tipo di hardware viene generalmente usato ethernet, ma viene anche supportato token-ring , usato per la maggior parte con sistemi IBM.
Per ragioni di sicurezza in è contenuta la patch “non-root/chroot” di Ari Edelkind per il server DHCP ISC che permette a dhcpd di girare come utente nobody in un ambiente “chroot” (/var/lib/dhcp). Il file di configurazione dhcpd.conf deve trovarsi in /var/lib/dhcp/etc; lo script di inizializzazione lo copia automaticamente in tale directory all'avvio.
Questa funzionalità si lascia gestire tramite le registrazione contenute nel file /etc/sysconfig/dhcpd. Per continuare ad eseguire il dhcpd senza ambiente chroot, impostate la variabile DHCPD_RUN_CHROOTED nel file /etc/sysconfig/dhcpd su “no”
Affinché il dhcpd sia in grado di risolvere dei nomi host anche in un ambiente chroot si dovranno copiare inoltre i seguenti file di configurazione:
/etc/localtime
/etc/host.conf
/etc/hosts
/etc/resolv.conf
Ecco perché all'avvio dello script di inizializzazione anche questi file vengono copiati in /var/lib/dhcp/etc/. Questi file vanno tenuti aggiornati se vengono modificati in modo dinamico da script del tipo /etc/ppp/ip-up. Se nel file di configurazione si utilizzano solo indirizzi IP al posto di nomi host, non dovrebbero sorgere delle difficoltà.
Se il vostro tipo di configurazione richiede che vengano copiati nell'ambiente chroot in aggiunta determinati file, potete indicarli accanto al parametro DHCPD_CONF_INCLUDE_FILES nel file etc/sysconfig/dhcpd.
Affinché il demone dhcp possa continuare la sua attività di log nell'ambiente chroot, anche se viene riavviato il demone syslog, bisogna aggiungere il parametro "-a /var/lib/dhcp/dev/log" alla variabile SYSLOGD_PARAMS in /etc/sysconfig/syslog .
ll modulo DHCP di consente di configurare un proprio server DHCP in una rete locale. Questo modulo funziona in due modi di diversi:
Al primo avvio del modulo l'amministratore del sistema deve prendere alcune decisioni fondamentali. Una volta conclusa la configurazione iniziale il server è pronto e configurato a girare in scenari meno complessi.
Il modo per esperti permette di gestire compiti di configurazione più complessi come DNS dinamico, amministrazione TSIG etc.
![]() | Navigare nel modulo e visualizzare i testi di aiuto |
|---|---|
Tutte le finestre del modulo server DHCP sono strutturate in modo simile. Sulla sinistra viene visualizzata una stuttura ad albero per navigare attraverso le singole sezioni che compongono la configurazione; sulla destra avete la maschera vera e propria. Se desiderate un testo di aiuto riferito alla maschera attuale, cliccate sull'icona con il salvagente riportata in basso a sinistra. Per uscire dal testo di aiuto e ritornare alla vista ad albero, cliccate sull'icona con la vista ad albero stilizzata. | |
All'avvio del modulo invoca un assistente di configurazione. Concluso il procedimento configurativo avrete a vostra disposizione un semplice server DHCP sulla vostra rete.
Innanzitutto rileva le interfacce di rete del vostro sistema. Selezionate dall'elenco quella sulla quale il server DHCP debba mettersi in ascolto e stabilite tramite l'opzione se il firewall debba essere aperto per questa interfaccia (si veda la fig Figure 22.31, “Server DHCP: selezione dell'interfaccia di rete”).
Negli altri campi di immissione stabilite le informazioni di rete che ogni client amministrato da questo server DHCP debba ricevere: nome del dominio, indirizzo del server dell'ora, indirizzo del server dei nomi primario e secondario, indirizzo del server di stampa e server WINS (in reti eterogenee con client Windows e Linux) nonché l'indirizzo del gateway e la scadenza dell'indirizzo dato in affitto (si veda la fig. Figure 22.32, “Server DHCP: impostazioni generali”).
Si prosegue con la configurazione della allocazione dinamica degli indirizzi IP ai client connessi. A tal fine stabilite un intervallo di indirizzo IP nel quale si trovano gli indirizzi da assegnare. Tutti gli indirizzi devono appartenere alla stessa maschera di rete. Stabilite infine la scadenza degli indirizzi durante la quale il client può mantenere l'indirizzo senza dover fare “richiesta” di prolungamento della scadenza. Inoltre stabilite facoltativamente il tempo massimo per il quale un determinato indirizzo IP sul server venga riservato per un determinato client (si veda la fig. Figure 22.33, “Server DHCP: DHCP dinamico”).
Conclusa la terza parte dell'iter configurativo, giungete all'ultima finestra, nella quale stabilite le opzioni di avvio del server DHCP, ad esempio se il server DHCP debba essere avviato automaticamente al boot del sistema () o se va lanciato manualmente all'occorrenza, ad es. per eseguire dei test), (). Cliccando su portate a termine il processo configurativo del server (si veda la figura Figure 22.34, “Server DHCP: avvio”).
Per delle ulteriori informazioni dettagliate, visitate ad.es. il sito dell'Internet Software Consortium (http://www.isc.org/products/DHCP/.
Inoltre vi sono le pagine di manuale, in particolar modo dhcpd, dhcpd.conf, dhcpd.leases und dhcp-options.