Latencia a los DNS Root Servers, TLD y por qué importa en la experiencia en Internet del día a día

Abril 27, 2021 10:13 am Publicado por Deja tus comentarios

¿Cómo funciona el sistema DNS?

Este es probablemente uno de los temas donde he visto más desinformación, y creo que es importante primero entender correctamente cómo funciona este servicio, ya que determina en gran medida la disponibilidad y velocidad en la que se carga una página o servicio Web. Sin el correcto funcionamiento del servicio DNS no podríamos acceder a las páginas web, enviar correo electrónico ni ingresar a nuestra red social preferida.

Cada vez que quieres acceder a una página Web o servicio online, incluso en las Apps de tu celular se realizan una serie de consultas DNS que realiza la traducción de un dominio como elgato.net a una dirección IP. Si uno de los elementos del sistema DNS no responde obtienes un error de carga. Muchas veces pensamos que los DNS son simplemente el servidor recursive resolver (también conocido como servidor resolutivo) que configuramos en nuestro router o computador. Sin embargo, esto es sólo una pequeña parte del servicio DNS, que tiene muchos más componentes como los DNS Root Servers, los Top Level Domain (TLD), así como el servidor de nombres autoritativo del dominio que nuestro equipo consulta. Es importante entender que cuando queremos ingresar a un sitio Web, no se realiza sólo una consulta, sino varias decenas de consultas de diferentes dominios para los subelementos de una página o servicio Web.

Los registros sólo duran unos minutos u horas, por lo que aunque visitemos un sitio web con frecuencia, es probable que todo el proceso de consulta se deba volver a repetir por el tiempo de expiración del registro.

Cuando quieres ingresar a un sitio web como www.lasmejorespeliculas.com todo comienza por tu navegador que revisa si conoce el dominio en su cache local. Si no lo tiene en su cache local, le realiza la consulta al servidor DNS resolutivo que tienes configurado, el servidor DNS resolutivo revisará en su tabla si conoce el dominio. En caso que no tenga el registro, deberá realizar la consulta a los DNS Root Servers, este(os) servidor(es) le informarán al servidor Top Level Domain (TLD) donde se encuentra el registro de todos los dominios .com, en este caso es un gTLD. Con esta información, el servidor DNS resolutivo consultará al servidor de nombres autoritativo el dominio específico, y éste le entregará la dirección IP donde se encuentra el contenido. Luego de este proceso la petición de la página Web o servicio comenzará, es por esto que la latencia a los DNS Root Servers y TLDs es MUY IMPORTANTE.

Esto puede parecer complejo, sin embargo, gracias a la robustez del sistema DNS creada por los múltiples DNS Root y TLDs en la práctica para el usuario, es una experiencia sin complicaciones.

¿Cómo impacta la latencia?

Veamos como impacta la latencia en la ubicación de los diferentes elementos de la cadena DNS para realizar la petición al servidor Web, inclusive aunque el servidor DNS resolver y el servidor Web están ubicados localmente a sólo 1 ms.

En el primer ejemplo vemos que tenemos el DNS Resolver local de nuestro ISP, con una latencia de sólo 1ms (si la latencia a tu DNS resolver es mayor ajustar el valor al que corresponda en tu caso). Luego si el servidor DNS resolver no tiene en su cache el subdominio www.elgato.net entonces deberá hacer la consulta al Root Server (en nuestro ejemplo tenemos 80 ms al servidor DNS Root Server ubicado en Miami), luego nuestro resolver debe realizar la consulta el servidor TLD donde está el .net, en este caso también está en Miami, así que sumamos 80 ms más. Luego el DNS resolver va al servidor DNS autoritativo de elgato.net que está en Miami, que suma 80 ms extras. Y finalmente el DNS Resolver nos entrega la dirección IP al servidor que, aunque está local (1 ms), demora en total 242 ms en realizar la petición debido a la latencia a los servidores de las consultas que se realizaron.

Por otro lado, al estar conectado a Perú IX (PIT Perú sac) podemos acceder a múltiples Root Servers localmente, por lo que sólo tenemos una latencia de 1 ms. Por otro lado, Perú IX tiene múltiples (la mayoría) servidores TLD localmente (incluyendo .com, .net, .pe, .br, .cl, y otros muchos gracias a que tenemos un nodo anycast de LACTLD). Asumimos que el servidor Autoritativo está local, esto nos da una latencia total de 5 ms en realizar la petición al servidor Web, es decir, casi 200 ms menos latencia.

Root Servers

En español, conocidos como Servidores Raíz (https://es.wikipedia.org/wiki/Servidor_raíz), son el elemento básico del sistema DNS. Afortunadamente, hay múltiples Root Servers alojados localmente en Lima gracias a los nodos de PCH, Verisign y Netnod en Perú IX (PIT Perú sac).

Top Level Domains (TLD)

  • Dominios de nivel superior genéricos (gTLD): Aquí tenemos los dominios como .com, .net, entre otros. Los más importantes son gestionados por Verisign, que tiene un nodo local en Perú IX.
  • Dominios de nivel superior geográficos (ccTLD): Aquí tenemos los dominios de países, como por ejemplo el .pe, .es, .ar, .cl, .br, .ca, entre otros. La mayoría de los dominios de América Latina están alojados en la nube anycast de LACTLD, que tiene un nodo local en Perú IX.

Tipos de consultas DNS

  • Consulta Recursiva (Recursive Query): En una consulta recursiva, un cliente DNS realiza la consulta al servidor DNS Resolutivo, quien debe entregarle una respuesta, ya sea una respuesta válida (luego de revisar en el sistema DNS) o un mensaje de error que indica que el dominio no fue encontrado.
  • Consulta Iterativa (Iterative Query): En una consulta iterativa, el servidor de nombres no dará la respuesta directa a la consulta, pero va a redireccionar a otro servidor DNS, el que tendrá (o debería tener) la respuesta a la consulta.
  • Consulta No-recursiva (Non-recursive Query): En una consulta no-recursiva, el servidor DNS Resolutivo ya conoce la respuesta, por lo que no deberá consultar aguas arriba, ya que tiene la información en su cache.
« | »