Servidor DNS con djbdns I.
En este articulo explicaré como configurar un servidor dns con tinydns, para poder resolver los nombres de un dominio del cual seamos propietarios. Posteriormente, explicaré como meterle un panel de control mediante web y otro explicando como replicar los datos en un servidor secundario.
Ips utilizadas:
10.0.0.10: ip donde escuchara el servidor dns.
10.0.0.1: ip de un host server1.example.com
10.0.0.3: ip del servidor de correo de example.com
Instalamos software necesario:
apt-get install djbdns-installer ucspi-tcp-src
Daemonstools:
build-daemontools
Podemos contestar por defecto a todas las preguntas.
ucspi-tcp:
build-ucspi-tcp
De nuevo podemos contestar por defecto a todas las preguntas.
djbdns:
build-djbdns
Otra vez tendremos preguntas que podremos responder por defecto.
Al instalar djbdns nos habra añadido 4 usuarios nuevos al sistema:
cat /etc/passwd
... dnslog:x:101:65534:djbdns log user,,,:/var/log/dns:/bin/false dnscache:x:102:65534:dnscache daemon,,,:/etc/dnscache:/bin/false tinydns:x:103:65534:tinydns daemon,,,:/etc/tinydns:/bin/false axfrdns:x:104:65534:axfrdns daemon,,,:/etc/axfrdns:/bin/false
Directorio donde estará la configuración y logs de tinydns:
mkdir /var/lib/svscan
Configuramos tinydns en ese directorio y escuchando en la ip 10.0.0.10
tinydns-conf tinydns dnslog /var/lib/svscan/tinydns 10.0.0.10
Lo enlazamos en el directorio de las daemontools, para que éstas lo gestionen:
ln -s /var/lib/svscan/tinydns /service
Reiniciamos djbdns para activar todas las modificaciones:
/etc/init.d/djbdns restart
Comprobamos que está escuchando:
netstat -anp|grep -i tinydns
udp 0 0 10.0.0.10:53 0.0.0.0:* 5177/tinydns
Vamos a crear registros para el dominio example.com y asi probar nuestro servidor dns:
cd /var/lib/svscan/tinydns/root
vim data
.example.com:10.0.0.10:ns1.example.com +server1.example.com:10.0.0.1 @example.com:10.0.0.3:mail.example.com:10
Habrás notado que todos registros empiezan por signos tales como “.”, “+”, “@”, “C”, etc. Dependiendo del signo estarás especificando un tipo de registro u otro:
. SOA, NS, A
& NS, A
@ MX, A
= PTR, A
+ A
‘ TXT
^ PTR
C CNAME
Z SOA
Nosotros hemos creado un registro “.” que engloba soa, ns y a, un registro + que es un a y un @ que es un mx y a.
Activamos los registros:
make
Para comprobarlo:
dig @10.0.0.10 -t ns example.com
; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59651 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;example.com. IN NS ;; ANSWER SECTION: example.com. 259200 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 259200 IN A 10.0.0.10 ;; Query time: 1 msec ;; SERVER: 10.0.0.10#53(10.0.0.10) ;; WHEN: Mon Jul 28 18:37:01 2008 ;; MSG SIZE rcvd: 63
dig @10.0.0.10 server1.example.com
; <<>> DiG 9.4.2 <<>> @10.0.0.10 server1.example.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 758 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;server1.example.com. IN A ;; ANSWER SECTION: server1.example.com. 86400 IN A 10.0.0.1 ;; AUTHORITY SECTION: example.com. 259200 IN NS ns1.example.com. ;; ADDITIONAL SECTION: ns1.example.com. 259200 IN A 10.0.0.10 ;; Query time: 1 msec ;; SERVER: 10.0.0.10#53(10.0.0.10) ;; WHEN: Mon Jul 28 18:37:23 2008 ;; MSG SIZE rcvd: 87
dig @10.0.0.10 -t mx example.com
; <<>> DiG 9.4.2 <<>> @10.0.0.10 -t mx example.com ; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46941 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;example.com. IN MX ;; ANSWER SECTION: example.com. 86400 IN MX 10 mail.example.com. ;; AUTHORITY SECTION: example.com. 259200 IN NS ns1.example.com. ;; ADDITIONAL SECTION: mail.example.com. 86400 IN A 10.0.0.3 ns1.example.com. 259200 IN A 10.0.0.10 ;; Query time: 1 msec ;; SERVER: 10.0.0.10#53(10.0.0.10) ;; WHEN: Mon Jul 28 18:37:36 2008 ;; MSG SIZE rcvd: 100
Con esto ya tenemos nuestro servidor dns corriendo y resolviendo para el dominio example.com.






[...] dns tinydns, en una distribución Debian Lenny y me he dado cuenta que el anterior articulo Servidor DNS con djbdns I, no sirve para esta distrubución, ya que se reduce mucho por la liberarización total de los [...]