Mejorar tiempos de consulta con DNS-Cache

Andando surfeando el internet en busca de información para instalar un servidor DNS me encontre con que podemos mejorar los tiempos de consulta a los sitios web al implementar un servidor DNS-Cache.

¿Y que es un servidor DNS-Cache y como funciona?

El proceso de recibir información de una página web es transparente para el usuario. Pero lo que en realidad pasa es que buscamos la direccion IP del dominio que deseamos accesar. Cada dominio tiene asignado un DNS el cual es el que se encarga de mostar la direcciones de los dominios que tiene registrados.

Entonces si estoy buscando la direccion www.misitio.com el browser busca quien es el servidor DNS y le hace una petición: dime cual es la dirección IP para el dominio www.misitio.com, el servidor DNS busca en su base de datos el dominio y si lo encuentra devuelve la direccion IP que es la que usa nuestro browser para acceder a la informacion que deseamos.


Mas explicitamente; El sistema operativo, antes de establecer alguna comunicación, comprueba si la respuesta se encuentra en la memoria caché. En el caso de que no se encuentre, la petición se enviará a uno o más servidores DNS.

La mayoría de usuarios domésticos utilizan como servidor DNS el proporcionado por el proveedor de servicios de Internet. La dirección de estos servidores puede ser configurada de forma manual o automática mediante DHCP. En otros casos, los administradores de red tienen configurados sus propios servidores DNS.

Entonces si tengo instalado un servidor DNS-Cache significa que en vez de estar haciendo la consulta al servidor DNS remoto en busca de la dirección IP primero busca esas direcciones en mi servidor local, de esta manera se eficientiza la busqueda de direcciones IP. En el dado caso de que la direccion IP cambie, se hace una consulta al servidor DNS remoto y se guarda en el caché de nuestro servidor local.

¿Cómo lo instalo?

Este post esta hecho para El sistema operativo GNU/Linux y mas especificamente Ubuntu, así que vamos a la terminal y ponemos:

1. Instalamos el dnsmasq

$x: sudo apt-get install dnsmasq

2. Copiamos /etc/resolv.conf como /etc/resolv.dnsmasq.conf.

$ sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf

3. Editamos /etc/resolv.conf:

$ sudo gedit /etc/resolv.conf

Y añadimos la siguiente línea al principio del archivo:

nameserver 127.0.0.1

Ahora podemos comprobar si nuestro DNS-Cache funciona:

$ dig guia-ubuntu.org | grep Query
;; Query time: 89 msec

Lo ejecutamos otra vez para comprobar:

$ dig guia-ubuntu.org | grep Query
;; Query time: 0 msec

Dig hace una consulta DNS y entre otros parámetros ofrece el de “Query time” que informa de cuanto tiempo ha tardado en saber la IP, la primera vez al no tenerla guardada pueden pasar 50ms, 100ms, 200ms, dependiendo de la latencia de tu conexión, la segunda vez ya tiene el dato y baja a entre 0 y 2ms +/-.