bind9-lignux

Tener un servidor DNS en una red local es muy útil para mejorar la velocidad de respuesta de todos los dispositivos, ademas nos puede ayudar a mejorar la privacidad, ya que la mayoría de peticiones DNS no viajaran fuera de nuestra red. Este tutorial es perfecto para los que tenemos una RPI en casa o cualquier tipo de dispositivo conectado 24h en la red. También puede ser útil para usarse de forma local en un único equipo, ya que a nivel de SO en GNU/Linux no se suele cachear.

En este caso voy a usar bind9, este al recibir una solicitud mirara si esta en su base de datos/cache, en caso contrario solicitara a otro DNS la IP, de esta forma la primera vez que se vaya a resolver el nombre sera algo más lento, pero luego mejoran muchísimo los tiempos.
Para esta guía voy a suponer que se tiene instalado Debian o algún derivado como Raspbian.

Configuración del servidor:

Antes de empezar siempre nos debemos asegurar tener todo el sistema actualizado:

# apt update && apt upgrade

Instalamos bind9:

# apt install bind9

Realizamos una copia de seguridad del fichero de configuración:

# cp /etc/bind/named.conf.options /etc/bind/named.conf.options.back

 Por suerte bind9 ya viene configurado para funcionar como servidor cache y únicamente debemos de agregar las IPs de los servidores que tomara los datos, por lo tanto descomentamos la sección de forwarders y agregamos unas cuantas IPs:

forwarders {
8.8.8.8;
208.67.222.222;
8.8.4.4;
208.67.220.220;
};

Eso seria un ejemplo, podemos agregar los que queramos, los más recomendables son los más rápidos en la zona de cada uno, en mi caso son los de google y OpenDNS, pero aquí tenéis algunos interesantes que respetan la privacidad:

https://dns.watch/

84.200.69.80
84.200.70.40

www.piratpartiet.no/dns/

87.238.35.136
185.56.187.149

www.opennicproject.org/

5.9.49.12
87.98.175.85
193.183.98.15
45.135.183.146

Ahora levantamos el servicio:

Testando desde otro host:

Con esto ya deberíamos de poder hacer unas pruebas para ver si funciona correctamente, para eso vamos a usar dig:

$ dig @ip.de.nuestro.dns www.url.com

Se debe sustituir la IP por la correspondiente, en mi caso quedaría así:

$ dig @192.168.1.5 www.lignux.com | tail -n 5

Solo imprimirá las últimas 5 lineas que son las interesantes:

;; Query time: 54 msec
;; SERVER: 192.168.1.5#53(192.168.1.5)
;; WHEN: Fri Oct 20 18:22:07 CEST 2017
;; MSG SIZE rcvd: 218

La primera linea nos mostrara el tiempo que ha tardado, pero si lo volvemos a ejecutar vemos como baja drásticamente:

;; Query time: 1 msec
;; SERVER: 192.168.1.5#53(192.168.1.5)
;; WHEN: Fri Oct 20 18:23:39 CEST 2017
;; MSG SIZE rcvd: 218

Si todo ha ido bien agregamos bind9 al arranque:

# systemctl enable bind9

Configurando el router:

Ahora debemos hacer que nuestros equipos usen por defecto este DNS y no el que nos proporciona nuestro ISP, cada router es un mundo y probablemente debamos de buscar información del modelo especifico de cada uno, pero igualmente voy a dar unas indicaciones básicas.

Para empezar debemos de configurar el servidor con una IP fija, esto se puede hacer desde el propio host o aun mejor desde el DHCP:

router2-1

Y también cambiamos los valores del los servidores DNS que proporciona por defecto:

router3-1

Con esto deberíamos de obtener una IP estática por el DHCP, pero no es instantáneo, deberíamos de poder obtener la IP nueva forzando una petición nueva:

# dhclient -r eth0 && dhclient eth0

Como extra voy a señalar como forzar el uso de los DNS que queramos haciendo caso omiso a los datos proporcionados por el DHCP:

# echo nameserver 192.168.1.254 > /etc/resolv.conf

Y esto agregara manualmente nuestro servidor como único DNS (podemos poner varios, uno por linea), si queremos que el cambio sea persistente debemos de modificar el fichero: “/etc/resolv.conf.head” en el cual agregamos de la misma forma las IPs que nos interesen.

Si todo ha ido bien a partir de ahora todos nuestros dispositivos al intentar acceder a un dominio primero preguntara a nuestro servidor local mejorando considerablemente la velocidad de navegación do todos los dispositivos en la casa, pero ademas si abrimos los puertos podemos realizar solicitudes desde fuera.

 

Fuente: lignux

¿Quién está en línea?

Hay 5631 invitados y ningún miembro en línea