Si presuppone un minimo di conoscenza di djbdns.
Partiamo con l'installazione di ucspi-tcp e dei daemontools
# cd /tmp # wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz [1] # tar xzf ucspi-tcp-0.88.tar.gz # (cd ucspi-tcp-0.88 && make setup check) # wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz [2] # mkdir -p /package # cd /package # tar xzf /tmp/daemontools-0.76.tar.gz # (cd admin/daemontools-0.76 && package/install && rm -r compile) # rm /tmp/daemontools-0.76.tar.gz # rm -r /tmp/ucspi-tcp-0.88*
riavviamo quindi il sistema per far partire i daemontools. Se però non vogliamo riavviare, basta andare a vedere cosa è stato scritto in /etc/rc.local dall'installazione dei daemontools, e lanciarlo :-)
installiamo ora djbdns
# cd /tmp # wget http://cr.yp.to/djbdns/djbdns-1.05.tar.gz [3] # tar xzf djbdns-1.05.tar.gz # (cd djbdns-1.05 && make setup check) # rm -r /tmp/djbdns-* # useradd -s /usr/bin/true -d /nonexistent -u 901 Gdnscache # useradd -s /usr/bin/true -d /nonexistent -u 902 Gtinydns # useradd -s /usr/bin/true -d /nonexistent -u 903 Gdnslog # mkdir -p /etc/service
Vediamo ora, a partire da un'installazione djbdns standard, come attivare una cache dns
# dnscache-conf Gdnscache Gdnslog /etc/service/dnscache 192.168.171.11 # touch /etc/service/dnscache/root/ip/192.168.171 # ln -s /etc/service/dnscache /service/
dove 192.168.171.11 è l'indirizzo ip con cui la nostra cache deve rimanere in ascolto.
nella seconda riga, 192.168.171 significa che la cache può essere interrogata da tutti gli ip che iniziano per 192.168.171.
È possibile creare altri file per consentire ad ulteriori reti di interrogare la nostra cache.
Et voilà, la cache è servita.
Vediamo ora, a partire da un'installazione djbdns standard, come attivare un dns autoritativo per i nostri domini
# tinydns-conf Gtinydns Gdnslog /etc/service/tinydns 192.168.171.52 # ln -s /etc/service/tinydns /service/
dove 192.168.171.52 è l'indirizzo ip a cui il server dns deve rispondere.
Attenzione! se tinydns gira su una macchina in cui gira già dnscache, tinydns e dnscache non possono restare in ascolto sullo stesso ip!
Per motivi di sicurezza è comunque sconsigliato far girare sia tinydns che dnscache sulla stessa macchina.
Se vogliamo che dnscache interroghi direttamente tinydns (per i domini del quale è autoritativo) senza passare per i root servers, in /etc/service/dnscache/root/servers diamo
# echo 192.168.171.52 > gnustile.local # echo 192.168.171.52 > 171.168.192.in-addr.arpa
dove 192.168.171.52 è l'indirizzo di tinydns, e gnustile.local è il nostro dominio.
dobbiamo quindi riavviare dnscache con
svc -t /etc/service/dnscache
configuriamo ora tinydns per gestire il nostro dominio; editiamo /etc/service/tinydns/root/data inserendo
# dns autoritativo (anche per la zona inversa) .gnustile.local:192.168.171.52:a .gnustile.local:192.168.171.11:b .gnustile.local:192.168.171.24:c .171.168.192.in-addr.arpa:192.168.171.52:a .171.168.192.in-addr.arpa:192.168.171.11:b .171.168.192.in-addr.arpa:192.168.171.24:c # record MX @gnustile.local:192.168.171.22:a @gnustile.local:192.168.171.23:b # record A =gandalf.gnustile.local:192.168.171.1 =illo.gnustile.local:192.168.171.11 =groucho.gnustile.local:192.168.171.21 =chico.gnustile.local:192.168.171.22 =harpo.gnustile.local:192.168.171.23 =gummo.gnustile.local:192.168.171.24 =zeppo.gnustile.local:192.168.171.25 # alias +mail.gnustile.local:192.168.171.22 +www.gnustile.local:192.168.171.21 +www.gnustile.local:192.168.171.24 +mailout.gnustile.local:192.168.171.25
Dopo aver salvato, diamo
# cd to /etc/service/tinydns/root # make
Questo make "compilerà" il file data.cdb, che sarà il file che tinydns leggerà.
In alternativa alle modifiche manuali possiamo usare alcuni script presenti nella cartella, come
Può essere utile, in tinydns, fornire indirizzi diversi a seconda del client che effettua la richiesta:
è sufficiente modificare il file data, inserendone all'inizio
%in:192.168.171 %ex
e poi, nel contenuto
=www.dominio.it:192.168.171.72:::in =www.dominio.it:194.177.96.1:::ex
per tutto il resto si rimanda alle ottime guide presenti in rete; tanto per citarne una
djbdns - Un'alternativa (sicura) a BIND [4]
Links:
[1] http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
[2] http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
[3] http://cr.yp.to/djbdns/djbdns-1.05.tar.gz
[4] http://www.morettoni.net/docs/djbdns.html