En la anotación anterior, llegamos a la conclusión de que no es cierto que Google tenga sus servidores DNS en Mountain View, sino que ya los ha distribuido por todo el mundo —sería estúpido por su parte no hacerlo así—, así que la disponibilidad geográfica está más que garantizada. Otra opción para comprobar que, efectivamente, existen multitud de DNS utilizando direccionamiento anycast, es seguir esta URL donde se hace un ping desde varios puntos del mundo y se nos muestra el RTT.
En los comentarios, un lector nos apuntaba que otro análisis interesante sería realizar peticiones de dominios que no estuvieran cacheados —por lo que tendrían que realizar una petición a un DNS superior en la jerarquía—, para ver con qué velocidad se desenvuelven en ese escenario. Así pues, he modificado el script y ha quedado de esta manera:
[code lang=»bash»]#!/bin/bash
dic="dictionary.txt"
dominios="dominios_comunes.txt"
servers=(80.58.61.250 192.168.1.1 8.8.8.8 208.67.222.222)
muestras=50
for n in {0..3}
do
server=${servers[@]:n:1}
while read dominio
do
a=$(dig @${server} ${dominio} | grep "Query time")
echo ${a:15:${#a}-20} >> "${server}_conocidos"
done < $dominios
for ((i=1; i<=muestras; i++))
do
rand=$(shuf -n 1 $dic)
rand=${rand:0:${#rand}-1}
dominio="$rand.com"
a=$(dig @${server} ${dominio} | grep "Query time")
echo ${a:15:${#a}-20} >> "${server}_raros"
done
done[/code]
El primer bucle interior lo que hace es leer del archivo «dominios_comunes.txt» unos dominios que a mí me han parecido bastante comunes, y por lo tanto con una alta probabilidad de estar cacheados en todos los servidores DNS a estudiar. La gráfica resultante es muy parecida, por consiguiente, a la obtenida el otro día. Tan sólo hay un cambio: esta vez disponía de un router viejo y podemos apreciar que los tiempos que nos ofrece el DNS del router por defecto (192.168.1.1) son muy malos —más de 50 ms por encima de Google y OpenDNS y 100 ms peor que el DNS del ISP—.
El segundo bucle interior hace uso del archivo «dictionary.txt». Se me ha ocurrido que la mejor manera de dar con dominios raros que no estuviesen cacheados —dado que pones cualquier palabra en inglés en el navegador, añades «.com», y existe—, era utilizar un diccionario de inglés, extraer una palabra aleatoriamente, y añadir el punto com. Eso es precisamente lo que hace ese pedazo de código. Aquí va la gráfica:
Y aquí ya sí que se aprecian diferencias significativas. Veamos los tiempos medios para aclararnos un poco:
- DNS del ISP (80.58.61.250): 624 ms de media.
- DNS del ISP router mediante (192.168.1.1): 802 ms de media.
- OpenDNS (208.67.222.222): 370 ms de media.
- Google Public DNS (8.8.8.8): 415 ms de media.
Vemos que el DNS del ISP consigue tiempos mediocres con dominios no cacheados. Google Public DNS todavía tiene camino por recorrer y mucho que aprender de su competidor OpenDNS, pero obtiene un meritorio segundo puesto teniendo en cuenta que es un servicio recién aparecido.
[clap][clap][clap]
No me ha dado tiempo a probar el script anterior y me vienes con este.
Se me acumula el trabajo…..
Por cierto enhorabuena por el blog…
[…] es la cantidad de gente que empezará a usarlos sin saber muy bien lo que hace, simplemente porque va más o menos rápido o que los usará sin siquiera saberlo porque vienen pre configurados en su […]
[…] y en el del operador no; afirmación que me hubiera creído de no ser porque hace unas semanas realicé un pequeño estudio al respecto. Así que, sin más, me pasé por los comentarios de la noticia para dejar constancia de que Google […]