Devo dire che se avete già un'installazione di BIND (per esempio da un RPM)
dovete rimuoverla prima di installare quella nuova. Sui sistemi Red Hat di
solito significa rimuovere i pacchetti bind
e bind-utils
, e
possibilmente bind-devel
e caching-nameserver
, se li avete.
Potrebbe essere una buona idea salvare una copia dello script di init (per
esempio /etc/rc.d/init.d/named
) prima di disinstallare; tornerà utile
in seguito.
Se state aggiornando BIND da una versione più vecchia, come BIND 8, vi
conviene leggere la documentazione di migrazione nel file
doc/misc/migration
nel pacchetto sorgente di BIND. Non mi occupo di
nessun argomento che riguardi la migrazione in questo documento; assumerò
soltanto che stiate rimpiazzando una preesistente versione funzionante di
BIND 9.
Questa è la parte facile :-). Semplicemente eseguite make install
e
lasciate fare tutto a lui. Davvero, è tutto qui!
Se avete già uno script di inizializzazione dalla vostra distribuzione, sarebbe bene modificare quello per eseguire i nuovi binari con le opzioni appropriate. Gli switch sono... (rullo di tamburi prego...)
-u named
, che dice a BIND di girare come utente named
invece che come root
.-t /chroot/named
, che dice a BIND di utilizzare la gabbia
chroot che abbiamo creato per lui.-c /etc/named.conf
, che dice a BIND dove trovare i suoi file di
configurazione all'interno della gabbia.Quello che segue è lo script di inizializzazione che uso nel mio sistema Red
Hat 6.0. Come potete vedere è quasi esattamente lo stesso file fornito da
Red Hat. Non ho ancora provato i comandi rndc
ma non vedo motivo per
cui non debbano funzionare.
#!/bin/sh
#
# named This shell script takes care of starting and stopping
# named (BIND DNS server).
#
# chkconfig: 345 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -f /usr/local/sbin/named ] || exit 0
[ -f /chroot/named/etc/named.conf ] || exit 0
# See how we were called.
case "$1" in
start)
# Start daemons.
echo -n "Starting named: "
daemon /usr/local/sbin/named -u named -t /chroot/named -c /etc/named.conf
echo
touch /var/lock/subsys/named
;;
stop)
# Stop daemons.
echo -n "Shutting down named: "
killproc named
rm -f /var/lock/subsys/named
echo
;;
status)
status named
exit $?
;;
restart)
$0 stop
$0 start
exit $?
;;
reload)
/usr/local/sbin/rndc reload
exit $?
;;
probe)
# named knows how to reload intelligently; we don't want linuxconf
# to offer to restart every time
/usr/local/sbin/rndc reload >/dev/null 2>&1 || echo start
exit 0
;;
*)
echo "Usage: named {start|stop|status|restart|reload}"
exit 1
esac
exit 0
Come con syslogd, dalla Red Hat 7.2 anche questo lavoro è più facile. C'è un
file chiamato /etc/sysconfig/named
in cui specificare parametri
supplementari per syslogd. Lo script predefinito
/etc/rc.d/init.d/named
su Red Hat 7.2 però controllerà l'esistenza di
/etc/named.conf
prima di partire. Dovrete correggere questo percorso.
Su sistemi Caldera OpenLinux dovrete soltanto modificare le variabili definite in cima e a quanto sembra lo script si occuperà del resto al vostro posto:
NAME=named
DAEMON=/usr/local/sbin/$NAME
OPTIONS="-t /chroot/named -u named -c /etc/named.conf"
E per FreeBSD 4.3 potete modificare rc.conf
ed inserirci queste righe:
named_enable="YES"
named_program="chroot/named/bin/named"
named_flags="-u named -t /chroot/named -c /etc/namedb/named.conf"
Dovrete anche aggiungere o cambiare alcune opzioni nel vostro
named.conf
per sistemare le varie directory. In particolare dovrete
aggiungere (o cambiare, se le avete già) le seguenti direttive nella sezione
options
:
directory "/etc/namedb";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
Dato che questo file è letto dal demone named
tutti i percorsi sono
naturalmente relativi alla gabbia chroot. Al momento della stesura di questo
documento, BIND 9 non supporta molti dei file di statistiche e di dump che
aveva prima. Probabilmente tale supporto verrà ripristinato nelle prossime
versioni. Se state utilizzando una di queste nuove versioni potreste dover
aggiungere voci aggiuntive per far scrivere anche questi nella directory
/var/run
.