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.

bookmark bookmark bookmark bookmark

One Response to “Servidor DNS con djbdns I.”

  1. [...] 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 [...]

Dejar una Respuesta.