En este tutorial vamos a instalar un servidor DNS para resolver las peticiones DNS en Debian. La gran ventaja de usar un servidor DNS propio, es poder cachear las peticiones dentro de tu misma red y así lograr acelerar la resolución de nombres (y por ejemplo, que los sitios web carguen más rápido en el navegador). Esto es muy útil en redes en las que hay muchos equipos haciendo peticiones DNS como por ejemplo, grandes empresas, aunque también puede ser útil tener uno en casa.
El software que vamos a utilizar se llama BIND, el cual es usado en la gran mayoría de servidores de nombres de Internet.
En primer lugar, como siempre, actualizamos Debian:
apt-get -y update apt-get -y upgrade
Después, instalamos BIND y el editor de texto nano, si aún no lo tenemos instalado:
apt-get -y install bind9 nano
Después, entramos en el directorio de BIND, borramos el archivo named.conf.options y creamos uno nuevo:
cd /etc/bind rm named.conf.options nano named.conf.options
Usando el editor de texto nano, escribimos lo siguiente:
options { directory "/var/cache/bind"; forwarders { 8.8.8.8; 8.8.4.4; }; auth-nxdomain no; listen-on-v6 { ::1; }; listen-on { 127.0.0.1; }; allow-recursion { 127.0.0.1; }; };
Guardamos el archivo pulsando ctrl+o y salimos de nano pulsando ctrl+x.
En la sección forwarders, escribiremos las IPs de los DNS de nuestro ISP (o en este caso, los de Google), a los que haremos las consultas DNS que no tengamos cacheadas (o que hayan expirado).
Después, en el caso de que queramos que escuche en nuestra red, en listen-on escribiremos la IP del servidor. Si únicamente queremos que escuche en ese mismo equipo, lo dejamos así. Si nuestra red es IPv6, exactamente lo mismo en listen-on-v6.
listen-on { 192.168.0.10; }
En allow-recursion especificaremos qué equipos podrán hacer consultas recursivas.
Si lo vamos a usar en una red local pero el DNS será visible desde Internet y no queremos que se hagan consultas desde fuera, especificamos los rangos de IP locales que permitiremos en formato CIDR, por ejemplo 192.168.0.0/24.
allow-recursion { 192.168.0.0/24; }
Si no será público o bien queremos que se puedan hacer consultas desde fuera, lo dejamos como any.
allow-recursion { any; }
Y si únicamente queremos que se puedan hacer consultas desde el mismo equipo, lo dejamos en 127.0.0.1.
Ahora reiniciamos BIND:
service bind9 restart
Y ya tendríamos nuestro DNS en funcionamiento.
Ahora, cambiamos los DNS de la misma máquina editando el archivo resolv.conf
nano /etc/resolv.conf
Y escribimos lo siguiente:
nameserver 127.0.0.1
Como antes, guardamos el archivo con ctrl+o y salimos de nano con ctrl+x.
Y ahora, probamos que todo esté funcionando correctamente:
nslookup martinandrino.com
Y debería devolver algo así:
root@localhost:~# nslookup martinandrino.com Server: 127.0.0.1 Address: 127.0.0.1#53 Non-authoritative answer: Name: martinandrino.com Address: 176.31.212.11
Si la dirección que aparece en Server es 127.0.0.1 o bien la IP local del servidor DNS, todo funcionó correctamente.

Pingback: Nuevo blog LinuxTuts, Tutoriales de Linux en Español | Martin Andrino