Instalando un DNS Caché en Manjaro

Instalar un DNS Caché hace que nuestras consultas sobre nombre de dominio se hagan de manera local, de esa manera las consultas son mucho más rápidas y se ganan unos milisegundos cada vez que nuestro equipo necesite resolver la dirección de un dominio. Anteriormente había escrito un artículo similar pero en Ubuntu, ahora será Manjaro flavor.

Instalar pdnsd

Pdnsd es un proxy de DNS permanente, esto es una ventaja, porque de manera local (y más rápida) guarda un registro de los dominios que consultamos frecuentemente y no se pierden durante el reinicio.

Para instalarlo solo hay que teclear en una terminal:

sudo pacman -S pdnsd

Pdnsd viene con un archivo de configuración de ejemplo que nos servirá como base para nuestra propia configuración:

sudo cp /etc/pdnsd.conf.sample /etc/pdnsd.conf

Ahora se tiene que adaptar el archivo de configuración que como pueden ver esta lleno de ejemplos, puedes usar el ejemplo marcado como OpenDNS, en mi caso, uso los DNS de Google como pueden ver en este ejemplo:

Para arrancar el programa es necesario:

sudo systemctl start pdnsd

Probando nuestra instalación.

Para probar que pdnsd este funcionando vamos a preguntarle por la dirección de un dominio:

nslookup google.com 127.0.0.1

Si obtienen una respuesta favorable es que nuestro DNS Caché esta funcionando correctamente.

Para evaluar su tiempo de respuesta podemos ejecutar:

dig google.com|grep "Query time"

Y obtendrán una respuesta muy similar a esta.

;; Query time: 0 msec

Probablemente la primera vez que lo ejecuten mostrará un tiempo que puede variar (218 msec por ejemplo), pero la segunda vez la respuesta debe de ser inmediata, precisamente porque el caché esta funcionando, ya no necesita pedir la dirección del DNS de internet y en su lugar utiliza la información que ya esta almacenada en nuestro equipo.

Configurar la red

Con eso es suficiente para que nuestro equipo empiece a resolver las direcciones de los dominios. Pero primero hay que hacer algunos ajustes a la configuración de la red para que que utilice el DNS de nuestra computadora.

El siguiente ejemplo es de Manjaro Cinnamon pero se puede adaptar fácilmente a cualquier otra distribución.

Si nuestra configuración de red la obtenemos mediante un servicio DHCP, le indicamos que solamente obtenga las direcciones IP y que nosotros vamos a elegir nuestro DNS que en este caso será 127.0.0.1 o localhost.

Editando Conexión cableada

Si todo funciona correctamente, entonces le podemos decir a nuestro equipo que inicie pdnsd cada vez que arranque nuestro equipo:

sudo systemctl enable pdnsd

Conclusiones

Usar un caché de DNS puede acelerar un poco la navegación, incluso se puede recomendar cuando no se cuenta con una conexión a internet estable o cuando los DNS de nuestro proveedor de internet están fallando (raro pero puede llegar a pasar). El impacto de pdnsd es mínimo en memoria y en recursos así que si ustedes quieren adentrarse un poco en estos temas pueden intentarlo.

¡Happy hacking!

Actualización – Reiniciar pdnsd

Hay un pequeño bug en todo esto, al parecer pdnsd inicia operaciones antes de que este activa la conexión de la red. Esto provoca un fallo y deja de resolver los dominios.

Para evitar esto, a manera de solución temporal, hice un pequeño script que reinicia el servicio pdnsd. Lo ejecuto cuando ya entre a mi sesión y la tarjeta de red esta en funciones.

rpdnsd.sh

Recuerden darle permisos de ejecución:

chmod +x rpdnsd.sh

Espero encontrar pronto una solución automática y permanente.

Para saber más

6 comentarios en «Instalando un DNS Caché en Manjaro»

  1. Para hacerlo de forma local esta bien, aunque para una red interna he tenido problemas, lo que me llama la atención es el hecho de que sea persistente el caché. Aún asi, tengo bind9 en mi red local.

    Responder
    • No, porque a fin de cuentas tu le puedes indicar a pdnsd cuales DNS vas a utilizar para obtener las direcciones de los dominios. Puedes usar a OpenDNS o Google DNS o cualquier otro que tu elijas. La diferencia es el tiempo de respuesta, porque una vez que tiene la dirección resuelta ya no la pide a internet porque ya la tiene guardada en tu equipo.

      Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.