domingo, 23 de octubre de 2011

DNS Públicos de Google vs DNS del Proveedor (ISP) vs DNS Local

Generalmente usamos los servidores DNS del proveedor de Internet como en mi caso 200.48.225.130 y 200.48.225.146. Google tiene los servidores 8.8.8.8 y 8.8.4.4 (http://code.google.com/intl/es-ES/speed/public-dns/). ¿Cómo sabemos cuál es más eficiente?

La manera más simple es de la siguiente forma:

En un sistema operativo Windows entramos a la línea de comandos (Win + R, tipear: cmd).


El resultado indica que el promedio de latencia entre el cliente y los servidores del proveedor (200.48.225.130 y 200.48.225.146) son 28ms y 29ms respectivamente. Y la latencia para los servidores de Google (8.8.8.8 y 8.8.4.4) son 127ms y 133ms respectivamente. A más latencia, más demora, lo cuál no es conveniente. Por lo tanto los servidores del proveedor son mejores, pero relativamente, ya que el proveedor siempre ubica sus servidores los más cercanos a sus clientes y los de Google están más lejos, sin embargo para otros clientes en otras partes del mundo podrían no ser conveniente los servidores del proveedor y sí lo serían servidores de Google, así que cada cliente debe hacer una prueba para sacar sus propias conclusiones. La distancia de los servidores se comprueba con el comando tracert.


Los servidores de mi proveedor están a sólo 10 saltos (hops) y los servidores de Google a 16 saltos. Estos resultados son relativos y cada quién debe hacer la prueba para sacar sus propias conclusiones.

Se hará una segunda prueba usando un servidor DNS del proveedor (200.48.225.130) y un servidor DNS local (192.168.1.253), es decir un servidor en la misma red LAN.


El promedio de latencia para los servidores del proveedor (200.48.225.130 y 200.48.225.146) es 29ms y 28ms respectivamente; para los servidores locales (192.168.1.253 y 192.168.1.252) es 0ms en ambos casos. Es decir, los servidores locales son mucho más convenientes de usar.

Finalmente si hubiera un servidor local DNS es prioritario usarlo, sin embargo para la mayoría de redes domésticas no hay un servidor DNS local así que en mi caso fue la segunda opción usar el servidor del proveedor y como última alternativa estuvieron los servidores de Google. Si hubiera otros servidores más convenientes que los del proveedor, es decir con menor latencia al ejecutar el comando ping, entonces serían nuestra prioridad sobre los servidores del proveedor.

En un entorno Linux en el shell de comandos se recomienda usar ping de la siguiente forma: ping -c 4 8.8.8.8. La opción -c indica el número de cuentas, que en este caso son sólo 4, si no se especifica esta opción Linux ejecuta el comando ping hasta que el usuario detenga el proceso con las teclas Ctrl + C. En Linux el comando para saber la distancia a la que se encuentran los servidores es traceroute. Los resultados en este sistema operativo tienen decimales lo que puede ser ventajoso al momento de tener resultados parecidos. También se puede usar la herramienta hping3 para mayores detalles y opciones.