Mi Blog
👉 Cómo instalar un servidor de DNS en GNU/Linux Debian

Cómo instalar un servidor de DNS en GNU/Linux Debian

 
(12 votos)

En este nuevo tutorial os voy a enseñar como montar un Servidor de Nombres de Dominio (DNS) en GNU/Linux Debian con el software BIND9 . La configuración de BIND9 podemos aplicarla a cualquier distribución de GNU/Linux pero respetando siempre las particularidades de cada una de ellas. Para el que no sepa lo que es un servidor DNS lo resumiré brevemente: "Un servidor DNS es el encargado de traducir una dirección IP a un nombre y viceversa". Por ejemplo, www.google.es se corresponde a 74.125.196.94. Gracias a los servidores de DNS podemos acordarnos de las direcciones Web de los sitios Web. Es mucho más sencillo recordar www.facebook.com que 91.234.1.47 ¿verdad?

⬇️ Compra en Amazon el hardware que utilizo ⬇️

🔥 ¡DESCÚBRELOS! 🔥

 

 

BIND9 es el software mas popular de resolución DNS usado en Internet, aunque existen otros muy populares como puede ser PowerDNS. BIND9 es al servicio DNS como Sendmail es al servicio de SMTP. Conocer como se usa y configura es elemental para un buen Sysadmin ;) ¡Espero que os guste el tutorial!

 

 

1.- ELEMENTOS UTILIZADOS EN ESTE TUTORIAL

  • [Servidor DNS] - GNU/Linux Debian 8
  • [Cliente DNS] - GNU/Linux Ubuntu 16.04
  • [Cliente DNS] - Windows 7

 

 

2.- INSTALACIÓN DEL SERVIDOR BIND9

Lo primero, como es obvio, es instalar el paquete de Bind9 para resolver nuestras peticiones de DNS.

Instalaremos el paquete como viene siendo habitual en todos los tutoriales de GNU/Linux Debian, con usuario root ó con sudo:

# apt-get update
# apt-get install bind9

 

 

3.- CONFIGURACIÓN DEL FICHERO LOCAL

El dominio que usaré en este tutorial será rpf-intranet.net y los hosts del dominio tendrán un nombre con la siguiente sintaxis: NOMBRE.rpf-intranet.net. El dominio entendemos que es de nuestra propiedad y no está siendo gestionado por ningún otro servidor de DNS de ningún ISP o Hosting. El directorio de configuración de BIND9 es /etc/bind/.

El direccionamiento actual que estoy usando en la LAN es: 192.168.145.0/24 y el servidor de DNS tiene la IP 192.168.145.213. Todas las pruebas las haremos a nivel de LAN y el servidor BIND9 resolverá equipos de la LAN únicamente, aunque podemos poner el servidor DNS en una DMZ y que esté accesible a Internet.

Editamos el /etc/bind/named.conf.local y añadiremos las entradas a los ficheros tanto de la zona de resolución directa como la de resolución inversa. Ambas entradas llamarán a su correspondiente fichero de configuración en la línea "file" quedando el fichero de la siguiente forma:

BIND9 DNS

Fichero named.conf.local

 

 

4.- CONFIGURACIÓN DE LA RESOLUCIÓN DIRECTA

Ahora crearemos un fichero basándonos en una de las plantillas que hay en el directorio /etc/bind/:

# cp /etc/bind/db.192 /etc/bind/rpf-intranet.net.db

Supongamos que tenemos varios servidores en la LAN y queremos asignarles una IP y un nombre. El fichero de resolución directa deberá tener el siguiente aspecto (OJO a todos los puntos detrás del dominio):

BIND9 DNS

Fichero de resolución directa

Ahora reiniciamos Bind9 para que los cambios se apliquen:

# /etc/init.d/bind9 restart

Para comprobar que el servidor DNS está resolviendo correctamente las DNS, usaremos el comando "dig" para preguntarle por uno de los equipos que hemos configurado en la resolución directa:

# dig @192.168.145.213 ns.rpf-intranet.net

; >> DiG 9.9.5-9+deb8u6-Debian >> @192.168.145.213 ns.rpf-intranet.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER- opcode: QUERY, status: NOERROR, id: 25715
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ns.rpf-intranet.net. IN A

;; ANSWER SECTION:
ns.rpf-intranet.net. 604800 IN A 192.168.145.213

;; AUTHORITY SECTION:
rpf-intranet.net. 604800 IN NS ns.rpf-intranet.net.

;; Query time: 0 msec
;; SERVER: 192.168.145.213#53(192.168.145.213)
;; WHEN: Wed May 25 11:46:05 CEST 2016
;; MSG SIZE rcvd: 78

Esto debemos hacerlo para todos los equipos de la resolución directa y comprobar que nos devuelve la IP correcta. Podemos hacer lo siguiente para comprobar los equipos:

# dig @192.168.145.213 ns.rpf-intranet.net | grep ^ns
ns.rpf-intranet.net. 604800 IN A 192.168.145.213
# dig @192.168.145.213 www.rpf-intranet.net | grep ^www
www.rpf-intranet.net. 604800 IN A 192.168.145.100
# dig @192.168.145.213 mail.rpf-intranet.net | grep ^mail
mail.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 smtp.rpf-intranet.net | grep ^smtp
smtp.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 pop3.rpf-intranet.net | grep ^pop3
pop3.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 imap.rpf-intranet.net | grep ^imap
imap.rpf-intranet.net. 604800 IN A 192.168.145.101
# dig @192.168.145.213 ftp.rpf-intranet.net | grep ^ftp
ftp.rpf-intranet.net. 604800 IN A 192.168.145.102

Si tenemos miles ó cientos de equipos, podemos hacernos un pequeño script para que nos haga todos los DIGs de una sola vez:

# for i in `cat /etc/bind/rpf-intranet.net.db | egrep "IN" | egrep -v "@|;" | awk '{print $1}'`; do dig @192.168.145.213 $i.rpf-intranet.net | grep ^$i; done
ns.rpf-intranet.net. 604800 IN A 192.168.145.213
www.rpf-intranet.net. 604800 IN A 192.168.145.100
mail.rpf-intranet.net. 604800 IN A 192.168.145.101
smtp.rpf-intranet.net. 604800 IN A 192.168.145.101
pop3.rpf-intranet.net. 604800 IN A 192.168.145.101
imap.rpf-intranet.net. 604800 IN A 192.168.145.101
ftp.rpf-intranet.net. 604800 IN A 192.168.145.102

 

 

5.- CONFIGURACIÓN DE LA RESOLUCIÓN INVERSA

Para cada una de las IPs que hemos creado en el fichero de resolución directa, tenemos que crear una entrada en el fichero de resolución inversa. El fichero a editar es: /etc/bind/db.rpf-intranet.net y debe tener el siguiente aspecto:

DNS Server

Fichero de resolución inversa

Podemos comprobar la resolución inversa lo podemos hacer exactamente igual que la directa, pero usaré otro método para que lo también sepáis usarlo. Primero debemos editar el fichero /etc/resolv.conf y añadir como DNS nuestro servidor local. Editaremos el fichero y pondremos una única línea.

nameserver 192.168.145.213

Ahora, con el comando host podremos ver si el DNS nos resuelve a través de la IP el NOMBRE del equipo:

# host 

DNS Server

Comprobando resolución inversa

 

 

6.- CONFIGURACIÓN EN LOS CLIENTES GNU/LINUX

Para que los clientes GNU/Linux usen nuestro servidor DNS, debemos editar el fichero /etc/resolv.conf y añadir la línea siguiente:

nameserver 192.168.1.45.213

Recordad que si algún gestor de conexión como NetWorkManager está instalado y funcionando en vuestro equipo, este cambio manual se perderá. Por tanto, debéis hacer el cambio desde el propio gestor de conexiones.

 

 

7.- CONFIGURACIÓN EN LOS CLIENTES WINDOWS

Para configurar como servidor DNS en los equipos Windows nuestro DNS GNU/Linux, debemos ir a las propiedades de la interfaz de Red y en "Protocolo TCP ipv4" debemos poner la IP del servidor DNS.

DNS Server

Configuración DNS cliente Windows

ENJOY!


Acerca de Mi

RPF

Soy Ingeniero Téc. Industrial Mecánico, Administrador de Sistemas Informáticos, Desarrollador de Aplicaciones Informaticas Web, Técnico Superior en PRL, Experto en Energías Renovables... y trabajo actualmente como Senior DevOPS en HP SCDS.

Contactar conmigo

Dirección: León, España

E-Mail: Contactar

Web: https://www.raulprietofernandez.net

Skype: raul.lnx

APÚNTATE GRATIS

VIP RPF
Entra en la Comunidad VIP y consigue acceso a las descargas en PDF, Trucos y Videotutoriales ocultos y mucho más... ¡Muy Pronto!
Cookies

Usamos cookies en nuestro sitio web. Algunas de ellas son esenciales para el funcionamiento del sitio, mientras que otras nos ayudan a mejorar el sitio web y también la experiencia del usuario (cookies de rastreo). Puedes decidir por ti mismo si quieres permitir el uso de las cookies. Ten en cuenta que si las rechazas, puede que no puedas usar todas las funcionalidades del sitio web.