DHCP, il Protocollo di Configurazione Host Dinamico,
descrive i passi attraverso i quali un sistema
si può connettere ad una rete ed ottenere
l'informazione necessaria per comunicare attraverso
quella rete. Le versioni di FreeBSD prima della 6.0
usano l'implementazione DHCP client (dhclient(8))
dell'ISC (Internet Software Consortium). Le ultime versioni
usano il dhclient
di OpenBSD preso
da OpenBSD 3.7.
Tutte le informazioni specifiche all'implementazione
di dhclient
in questa sede
sono riferite all'uso dei client DHCP sia di ISC che di OpenBSD.
Il server DHCP è quello incluso nella
distribuzione ISC.
Questa sezione descrive sia il lato client
del sistema DHCP di ISC e di OpenBSD che il lato server del
sistema DHCP ISC. Il
programma client, dhclient
,
è già
integrato con FreeBSD, e la parte server è
disponibile nel port net/isc-dhcp3-server. Le
pagine di manuale dhclient(8), dhcp-options(5), e
dhclient.conf(5), oltre ai riferimenti
elencati oltre, sono risorse utili.
Quando dhclient
, il client
DHCP, viene eseguito sulla macchina client, inizia
a fare broadcasting di richieste per informazioni
di configurazione. Di default
queste richieste sono sulla porta UDP 68. Il server
risponde sulla porta UDP 67, dando al client un
indirizzo IP ed altre informazioni rilevanti di rete
come la netmask, il router ed il DNS server. Tutte
queste informazioni
arrivano sotto forma di un «rilascio» DHCP
e sono valide sono per un certo periodo di tempo
(configurato dall'amministratore del server DHCP).
In questo modo, gli indirizzi IP bloccati da client
che non sono più connessi alla rete possono
essere riutilizzati automaticamente.
I client DHCP possono ottenere molti tipi di informazione dal server. Una lista esauriente può essere trovata in dhcp-options(5).
FreeBSD integra completamente il client
DHCP ISC o OpenBSD, dhclient
(a seconda della versione di FreeBSD utilizzata). Viene fornito
supporto al client DHCP sia con l'installazione
sia con il sistema base, rendendo inutile il bisogno
di una conoscenza dettagliata della configurazione
di rete su ogni rete che abbia un server DHCP.
dhclient
è stato incluso
in tutte le distribuzioni FreeBSD a partire
dalla 3.2.
DHCP è supportato da
sysinstall. Quando
configuri una interfaccia di rete con
sysinstall, la seconda
domanda che ti pone è:
« Vuoi provare a configurare
l'interfaccia via DHCP?». Una risposta
affermativa eseguirà dhclient
,
e, se ha successo, riempirà le informazioni
di configurazione della rete in automatico.
Ci sono due cose che devi fare per far sì che il tuo sistema usi il DHCP all'avvio:
Accertati che il device
bpf
sia compilato nel tuo kernel. Per fare
ciò, aggiungi device bpf
al tuo file di
configurazione del kernel, e ricompilalo.
Per maggiori informazioni su come ricompilare
i kernel, vedi Capitolo 8, Configurazione del Kernel di FreeBSD.
Il device
bpf
è già
parte del kernel GENERIC
che è fornito con FreeBSD, così
se non hai un kernel custom, non dovresti
aver bisogno di crearne uno al fine di far funzionare
il DHCP.
Quelli di voi che sono particolarmente
attenti alla sicurezza, dovrebbero sapere che il
device bpf
è
anche il device che permette agli sniffer di
pacchetti di
funzionare correttamente (anche se devono sempre
essere eseguiti come root
).
bpf
è
richiesto per l'uso del DHCP, ma se siete molto
attenti alla sicurezza, non dovreste probabilmente
aggiungere bpf
al
vostro kernel in previsione di un uso
futuro del DHCP.
Edita il tuo /etc/rc.conf
per includere la seguente linea:
ifconfig_fxp0="DHCP"
Accertati di sostituire
fxp0
con il
nome dell'interfaccia che intendi configurare
dinamicamente, come descritto in
.
Se stai usando una locazione diversa
per dhclient
, o se desideri
passare flags addizionali a
dhclient
includi anche le linee seguenti (editandole
come necessario):
dhcp_program="/sbin/dhclient" dhcp_flags=""
Il server DHCP, dhcpd, è incluso come parte del port net/isc-dhcp3-server nella collezione dei ports. Questo port contiene il server DHCP ISC e la documentazione.
/etc/dhclient.conf
dhclient
richiede
un file di configurazione,
/etc/dhclient.conf
. Tipicamente
il file contiene solo commenti, essendo i default
ragionevolmente corretti. Questo file di
configurazione è descritto dalla
pagina di manuale dhclient.conf(5).
/sbin/dhclient
dhclient
è
linkato staticamente e risiede in
/sbin
.
Le pagine di manuale di dhclient(8) danno
maggiori informazioni su dhclient
.
/sbin/dhclient-script
dhclient-script
è
lo script di configurazione del client DHCP
specifico di FreeBSD. Viene descritto in
dhclient-script(8)
ma non dovrebbe aver bisogno di nessuna
modifica utente
per funzionare correttamente.
/var/db/dhclient.leases
Il client DHCP mantiene un database di validi rilasci in questo file, che viene scritto come un log. dhclient.leases(5) ne dàuna descrizione leggermente più estesa.
Il protocollo DHCP è
descritto in maniera estesa in
RFC 2131.
Informazioni aggiuntive sono presenti a questo URL:
http://www.dhcp.org/
.
Questa sezione fornisce informazioni su come configurare un sistema FreeBSD che funzioni come un server DHCP usando l'implementazione del server DHCP dell'ISC (Internet Software Consortium).
Il server non viene fornito come parte di FreeBSD, così dovrai installare il port net/isc-dhcp3-server per fornire questo servizio. Vedi Capitolo 4, Installazione delle Applicazioni: Port e Package per più informazioni su come usare la Collezione dei Port.
Per configurare il tuo sistema FreeBSD
come un server DHCP, assicurati che il
device bpf(4) sia compilato nel
kernel. Per farlo, aggiungi
device bpf
al file di configurazione del kernel, e ricompilalo. Per
maggiori informazioni su come compilare un kernel,
vedi Capitolo 8, Configurazione del Kernel di FreeBSD.
Il device bpf
è già
parte del kernel GENERIC
che viene fornito con FreeBSD, così
non hai bisogno di creare
un kernel custom per far funzionare il DHCP.
Quelli di voi che sono particolarmente
attenti alla sicurezza, dovrebbero notare che
bpf
è anche il
device che permette agli sniffer di pacchetti
di funzionare correttamente (anche se tali
programmi hanno bisogno di accesso privilegiato).
bpf
è
richiesto per il funzionamento del DHCP,
ma se siete molto attenti alla sicurezza,
probabilmente non dovreste includere
bpf
nel vostro kernel semplicemente perchè vi
aspettate di usare il DHCP in qualche momento.
La prossima cosa che devi fare è
editare il file dhcpd.conf
che
è stato installato dal port
net/isc-dhcp3-server.
Di default, questo sarà
/usr/local/etc/dhcpd.conf.sample
e dovresti copiare questo file in
/usr/local/etc/dhcpd.conf
prima di procedere con i cambiamenti.
dhcpd.conf
è
composto di dichiarazioni riguardanti
sottoreti ed host, e forse lo si spiega
meglio con un esempio:
option domain-name "example.com";option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
} host mailhost { hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}
Questa opzione specifica il dominio che verrà servito ai client come il dominio di default di ricerca. Si veda resolv.conf(5) per più informazioni. | |
Questa opzione specifica una lista di server DNS separata da virgole, che i client dovrebbero usare. | |
Un client potrebbe richiedere una lunghezza di tempo specifica per la quale il rilascio sarà valido. Altrimenti il server assegnerà un tempo di rilascio con questa durata (in secondi). | |
Questa è la lunghezza massima di
tempo per la quale un server effettuerà
un rilascio. Se un client dovesse richiedere
un rilascio più lungo, sarà effettuato
un rilascio, anche se sarà valido solo per
| |
Questa opzione specifica se il server DHCP dovrà cercare di modificare il DNS quando un rilascio è accettato o liberato. Nella implementazione ISC questa opzione è richiesta. | |
Questo identifica quale indirizzo IP dovrà essere usato nel pool riservato per l'allocazione ad i client. Gli indirizzi IP fra, ed inclusi, quelli dichiarati sono assegnabili agli utenti. | |
Dichiara il default gateway che sarà assegnato ad i client. | |
L'indirizzo hardware MAC di un host (cosicchè il server DHCP possa riconoscere un host quando fa una richiesta). | |
Specifica che all'host dovrebbe sempre essere fornito lo stesso indirizzo IP. Nota che usare un hostname è corretto in questo caso, dato che il DHCP server risolverà l'hostname stesso prima di restituire l'informazione sul rilascio. |
Una volta che hai finito di scrivere
il tuo dhcpd.conf
,
puoi abilitare il server DHCP in
/etc/rc.conf
, aggiungendo:
dhcpd_enable="YES" dhcpd_ifaces="dc0"
Sostituisci il nome dell'interfaccia
dc0
con l'interfaccia
(o le interfacce, separate da spazi) su cui il tuo server DHCP
dovrebbe stare in ascolto per le richieste DHCP dei client.
Quindi, puoi procedere ad avviare il server con il seguente comando:
#
/usr/local/etc/rc.d/isc-dhcpd.sh start
Se hai bisogno di fare altri cambiamenti
alla configurazione del server in futuro,
è importante notare che l'invio di
un segnale SIGHUP
a dhcpd
non fa sì che il file
di configurazione sia ricaricato, come avviene
con la maggior parte dei demoni. Dovrai inviare
un segnale SIGTERM
per fermare
il processo, e poi riavviarlo usando il comando
sopracitato.
/usr/local/sbin/dhcpd
dhcpd è
linkato staticamente e risiede in
/usr/local/sbin
. La pagina di manuale di
dhcpd(8) installata con il port
dà più informazioni
su dhcpd.
/usr/local/etc/dhcpd.conf
dhcpd richiede
un file di configurazione,
/usr/local/etc/dhcpd.conf
, prima che possa iniziare a
fornire il servizio ai client. Questo
file deve contenere tutte le informazioni
che devono essere fornite ai client che
sono serviti, oltre alle informazioni
riguardanti le operazioni del server. Questo
file di configurazione è descritto
dalla pagina di manuale dhcpd.conf(5)
installata dal port.
/var/db/dhcpd.leases
Il server DHCP mantiene un database dei rilasci che ha effettuato in questo file, che viene scritto come un log. La pagina di manuale dhcpd.leases(5), installata dal port ne dà una descrizione leggermente pi` lunga.
/usr/local/sbin/dhcrelay
dhcrelay è usata in ambienti avanzati dove un server DHCP reinvia le richieste da un client ad un altro server DHCP su una rete separata. Se hai bisogno di questa funzionalità, installa il port net/isc-dhcp3-relay. La pagina di manuale dhcrelay(8) fornita col port contiene più dettagli.
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Per domande su FreeBSD, leggi la
documentazione prima di contattare
<questions@FreeBSD.org>.
Per domande su questa documentazione, invia una e-mail a
<doc@FreeBSD.org>.