Los servidores DNS cumplen una función muy importante en Internet. Sin ellos, tendríamos simples direcciones IP y no nombres de dominio para hacernos más fácil el acceso a nuestras web favoritas.
Cuando escribimos un dominio en nuestro navegador web, se realiza una petición DNS a los servidores DNS configurados. Estos, a su vez, harán la petición a los servidores raíz.
Todo esto desde el punto de vista de los visitantes y de una forma muy resumida, claro.
Ahora vamos a darle la vuelta, vamos a explicarlo desde el lado del webmaster o administrador de un sitio web.
Cuando compramos / registramos un dominio, debemos configurar unos servidores DNS (como mínimo, 2). En estos servidores DNS se van a guardar los registros asociados al dominio.
La mayoría de proveedores de hosting ofrecemos servidores DNS para nuestros productos, tanto para usar con los dominios registrados como para utilizar con los hostings y servidores que vendemos.
¿Qué problema tienen estos DNS? Pues que son DNS normales, suelen ser geolocalizados pero nunca van a ser tan potentes como para competir con las grandes redes DNS Anycast del mundo: Google, Amazon, CloudFlare, etc.
¿Qué ventajas tienen unos servidores DNS Anycast frente a unos servidores DNS normales?
Pues creo que la diferencia en milisegundos en la fase de consulta DNS puede no parecer importante, pero se puede llegar a notar si se está intentando conseguir un mejor firstbyte en la carga de una web:
Vamos a empezar explicando lo que es un DNS Anycast y, a partir de ahí, iremos desarrollando para que entiendas cómo pueden beneficiarte este tipo de infraestructuras y cómo combinarlas correctamente en entornos web.
¿Quieres
recibir mis articulos?
No te pierdas todos mis trucos para WordPress, CMS, Marketing Digital y WPO.
¿Qué es un DNS Anycast?
Un DNS Anycast es un servidor DNS geodistribuido, es decir, con distintos nodos en distintos puntos geográficos alrededor del mundo.
Cuando usamos un DNS normal, las peticiones se realizan por round-robin a los servidores DNS configurados. En cambio, cuando usamos un DNS Anycast las peticiones se realizan al servidor DNS más cercano de todos los POPs o puntos de presencia que tenga el servicio DNS repartidos por el mundo.
Estos servicios copian los registros DNS en los servidores que tienen por todo el mundo, como si fuera un CDN. Así, cuando un visitante de cualquier parte del mundo realiza una petición DNS, se le contesta desde el punto más cercano a él.
¿Cómo se calcula esto? Pues con una red anycast que mide en “saltos” la distancia entre el visitante y el servidor. Para que lo entiendas, con el comando TRACERT o TRACER puedes sacar los saltos desde tu ordenador hasta el servidor al que haces la petición, así como los tiempos de respuesta (que es, precisamente, lo que nos importa).
Esto que puedes ver en la captura anterior no tiene nada que ver con el proceso de DNS Lookup, pero es simplemente un ejemplo para que veas cómo funcionan los “saltos”.
¿Quieres saber más? Pues vamos con las ventajas de utilizar un DNS Anycast.
Ventajas de un servidor DNS Anycast
Creo que puedo decir que los DNS Anycast no tienen inconvenientes. Todo son ventajas, empezando por la rapidez con la que se pueden responder los DNS Lookups usando un DNS Anycast:
A continuación, te dejo el resto de ventajas:
- La carga se balancea entre toda la red de servidores DNS. Por lo tanto, es mucho más difícil que los DNS se saturen por un exceso de tráfico. En caso de que un nodo empiece a saturarse, sus latencias subirán y otro nodo empezara a “asumir” tráfico y a responder peticiones DNS en su lugar.
- Se mejoran mucho las latencias y los tiempos de respuesta al responder peticiones DNS. Esto no implica una GRAN mejora en WPO, pero algo ayuda.
- Se mejora el uptime y la estabilidad del servicio, ya que existen muchas más rutas posibles para realizar las peticiones DNS.
- Las propagaciones DNS (operaciones sobre registros) suelen ser más rápidas en servicios DNS Anycast. Esto no puedo demostrar por qué sucede con pruebas técnicas, pero se cumple en todos los que he probado.
El único inconveniente, que es mínimo, es que toda la configuración DNS se debe realizar desde el panel del servicio en lugar de hacerla desde el panel de control del hosting o servidor.
Además, normalmente la configuración de un DNS Anycast (al igual que la configuración de registros DNS) suele requerir algo de conocimientos sobre el tema, para saber lo que estamos haciendo.
CloudFlare como DNS Anycast
Voy a hablar de CloudFlare porque es el servicio DNS que utilizo en el 90% de mis proyectos web, incluido este blog. También hay proyectos en los que uso el DNS Anycast geodistribuido de Amazon, llamado Amazon Route53.
Antes de nada, para que veas una de las razones por las que uso CloudFlare como DNS para mis sitios web, te dejo a continuación una captura:
Efectivamente, si entras a DNSPerf encontrarás un benchmark de rendimiento DNS donde CloudFlare DNS es el servicio más rápido en la resolución de nombres. Pero hay algo más, y es que CloudFlare ofrece su servicio DNS de forma totalmente GRATUITA y sin ningún tipo de limitación, pudiendo elegir si queremos utilizar o no el CDN.
Por otro lado, CloudFlare no solo ofrece DNS sino que utiliza su red anycast para ofrecer un servicio CDN muy bueno y diferente a la mayoría de servicios CDN del mercado.
Para utilizar CloudFlare como DNS, simplemente tenemos que registrarnos en su sitio web y el resto puedes verlo en este videotutorial:
El panel de control de CloudFlare DNS te ofrece todo lo que necesitas para gestionar los registros de tu dominio:
Y también estadísticas de uso y consultas DNS geográficamente clasificadas:
El resto del servicio DNS es bastante transparente. El servicio se encarga de mantener los tiempos de resolución DNS bajos y nosotros no tenemos que configurar nada.
¿Fácil? Pues así de sencillo es implementar un DNS Anycast en tu dominio.
Evidentemente, si queremos implementar otros DNS Anycast como Amazon Route53 la interfaz cambia, pero la teoría es exactamente la misma.
Tanto en CloudFlare DNS como en Amazon Route53, el proveedor te va a dar unos servidores DNS (normalmente 2, aunque pueden ser más) que tú debes configurar en tu proveedor de registro de dominios:
Esto que ves en la captura anterior es el ejemplo para un dominio registrado en Raiola Networks. Los DNS introducidos son dos DNS proporcionados por CloudFlare para utilizar su servicio DNS Anycast.
Rendimiento DNS benchmark
Ahora vamos a comprobar el rendimiento de los principales proveedores de DNS. Antes ya adelantamos algunas cosas con DNSPerf, pero se puede probar el rendimiento de otras formas y con otras aplicaciones.
En DNSPerf no solo podemos comprobar las DNS para dominios, sino también las DNS públicas utilizadas por los visitantes para navegar por Internet:
- Benchmark de DNS para dominios web: https://www.dnsperf.com/
- Benchmark de DNS públicas para usuarios: https://www.dnsperf.com/#!dns-resolvers
Si quieres hacer un benchmark de rendimiento de servidores DNS añadiendo los servidores DNS de tu proveedor de hosting, puedes hacerlo con la aplicación DNS Benchmark.
Si quieres ver un vídeo sobre cómo hacer un benchmark con DNS personalizados usando DNS Benchmark, puedes encontrarlo aquí:
Puedes descargar la aplicación DNS Benchmark desde aquí: https://www.grc.com/files/DNSBench.exe
Existe otra alternativa, llamada NameBench, que también es una aplicación de escritorio. Sin embargo, en este caso existe versión para Linux y para Macintosh.
Puedes descargar NameBench desde aquí: https://code.google.com/archive/p/namebench/downloads
Todas estas aplicaciones traen normalmente servidores DNS públicos, pero podemos “darles la vuelta” y probar DNS de proveedores si sabemos los nombres DNS o las direcciones IP (en el caso de DNS Anycast, deben ser nombres o hostnames). No es difícil, yo lo he probado en el siguiente videotutorial:
Otra herramienta que te puede ayudar bastante a detectar puntos débiles en el WPO de tu dominio en el proceso de consultas DNS es esta: https://www.dnsperf.com/dns-speed-benchmark/