Namebench: Encontrando el mejor DNS

Hoy hablaremos sobre DNS, y por qué muchas veces utilizar servidores lentos hace que nuestra experiencia de usuario sea mala. Aprenderemos a usar Namebench.


Tu conexión a Internet anda lenta? El test de velocidad da bien? Puede que tengdnsas problemas de DNS. Si la resolución de nombres es lenta, en general la experiencia de usuario utilizando el servicio de Internet será mala. Muchos proveedores ISP (Internet Service Provider) brindan sus DNS propios para sus clientes, pero muchas veces ocurre que sobrevenden el servicio, y el DNS no da a basto a responder las consultas de todos los usuarios. Hoy hablaremos sobre cómo configurar el cliente de DNS en Linux, y cómo hacer para encontrar los mejores DNS’s para nuestra conexión utilizando NameBench.

Configurando un cliente DNS en Linux

La configuración de un cliente Linux se realiza editando, directa o indirectamente, el archivo /etc/resolv.conf.
Este archivo contendrá una o más líneas de alguna de las siguientes directivas:

nameserver direccion_ip

Esta línea puede repetirse para distintas direcciones, e indica las ip’s de los servidores de nombres que nuestra máquina utilizará para resolver nombres. Es decir, cuando alguna aplicación local requiera resolver un determinado nombre de dominio, hará la consulta alguno de estos servidores de nombres. Estas ip’s pueden ser servidores de nombres provistos por nuestro ISP, o servidores de nombres públicos.

domain nombre.de.dominio

Esta línea permite especificar el dominio que se utilizará para auto-completar nombres cortos de la red local. Por ejemplo, si configuramos “domain juncotic.com” e intentamos resolver en nuestra red el nombre “equipo1”, el nombre será auto-completado con equipo1.juncotic.com.

search nombre_dominio

Esta línea puede repetirse, y es mutuamente excluyente con “domain”. Cuando nuestra máquina intenta contactar a un nombre de host que posee menos de un punto “.” en su nombre, lo buscará en todos los dominios que hayamos establecido en “search”.

Un ejemplo típico del archivo /etc/resolv.conf podría ser:

Eligiendo un buen servidor dns

Generalmente el archivo /etc/resolv.conf se configura solo cuando obtenemos dirección ip desde un servidor dhcp, como nuestro router, o nuestro ISP (Internet Service Provider).

Uno también puede modificar la configuración de dns’s editando el contenido del archivo resolv.conf a mano, para lo cual sería conveniente desactivar el cliente de dhcp y configurar direccionamiento manual y evitar que la re-negociación periódica de ip’s con el dhcp server reescriba nuestros cambios en el archivo resolv.conf.

Muchas veces ocurre que nuestro ISP no brinda un buen servicio de DNS debido a que ha sobrevendido su servicio, y los servidores terminan estando sub-dimensionados para el volumen de consultas que reciben de sus clientes.

En este tipo de casos es conveniente cambiar los dns’s, y afortunadamente existen dns’s públicos que podremos utilizar, y que muchas veces brindarán un servicio mejor que el de nuestro ISP.

En el ejemplo anterior, los números 8.8.8.8 y 8.8.4.4 corresponden a los servidores dns públicos de Google, primario y secundario respectivamente.

Los invito a visitar sitios como “Free & Public DNS Servers” (http://pcsupport.about.com/od/tipstricks/a/free-public-dns-servers.htm), donde encontrarán una lista de los servidores DNS públicos que les pueden servir para probar.

Namebench, eligiendo el mejornamebench

Si no queremos estar probando dns por dns en nuestro archivo resolv.conf hasta encontrar el que mejor se adapte a nuestro servicio y nuestra ubicación, podemos usar scripts como “namebench”, que harán éste trabajo basados en los sitios que uno suele frecuentar, y en nuestra ubicación geográfica, tiempos mínimos de respuesta, etc.

Namebench es un software de benchmarking open-source para servicios dns, y podemos descargarlo desde el siguiente enlace: https://code.google.com/p/namebench/downloads/list

La versión de GNU/Linux es una serie de scripts de Python, solo es cuestión de descargarlo en algún directorio de nuestro sistema, descomprimirlo, y ejecutarlo:

Y veremos una interfaz gráfica similar a la siguiente, en donde podremos seleccionar ubicación, servicios públicos, navegador desde donde tomar los enlaces más frecuentes, y lanzar el test.

namebench

Al finalizar obtendremos un reporte html similar al siguiente, en el que se pueden apreciar los servidores que mejor rendimiento obtuvieron, y que podremos configurar en nuestro resolv.conf:

namebench

En nuestro caso quedará algo similar a esto:

Cabe aclarar que dicho reporte se almacena en el directorio /tmp, por lo que si deseamos guardarlo, deberemos copiar el archivo para evitar perderlo en un reinicio del ordenador.
Espero que les sea útil!


Próximamente publicaremos esta entrada en video en nuestro canal de youtube, no dejen de suscribirse para estar al tanto de las novedades, y de compartir a quien pueda servirle! ¡GRACIAS!