El servicio DNS: Qué es y cómo funciona

Somos Roberto y Francisco, un pequeño equipo dedicado al desarrollo web especializado en las cuestiones técnicas de las plataformas WordPress y WooCommerce. Realizamos consultoría y formación, desarrollamos plugins y temas, optimizamos, securizamos, respondemos a incidentes de seguridad y mantenemos sitios. Fundada en 2012, somos el apoyo técnico de más de un centenar de proyectos web en España y Alemania, además formamos parte activa de la comunidad WordPress.

🌎 Pasa desapercibido, no lo notas, pero estás constantemente usando el servicio DNS.

¿Qué es el servicio DNS?

🈯 Siempre habrás escuchado es que el servicio DNS es un traductor de nombres. Traduce el nombre que hay asignado a un sitio web (por ejemplo google.es) en una IP (Por ejemplo 192.0.2.1 o 2001:db8:85a3:8d3:1319:8a2e:370:7348) que es necesaria para poder conectarse.

Pero quiero llegar un poco más allá, viendo cómo realmente funciona este sistema.
🌎 DNS funciona a través de una base de datos descentralizada y jerarquizada que siempre va a intentar llevarte a tu destino. 

1️⃣ Todo comienza con los servidores raíz.

Son servidores mantenidos por distintos operadores (predominan organizaciones de EEUU). La tarea de estos servidores es servir, mantener y actualizar el archivo raíz de zonas. Es un pequeño archivo de texto de unos 200Kb de tamaño, puedes verlo aquí: internic.net/domain/root.zo…

Este archivo es esencial. Indica a quién tienes que preguntar para cada tipo de dominio (TLDs, la parte final después del punto).

  • Dominios .com, te manda preguntar a a.gtld-servers.net (y otros)
  • Dominios .es, te manda preguntar a a.nic.es (y otros)

2️⃣ Así que ahora toca preguntar al servidor específico para el tipo de dominio.

Para google.es preguntaríamos a a.nic.es, pero este servidor no nos da aún la respuesta definitiva, nos dice el siguiente servidor al que tenemos que preguntar.

Y aquí hay que trazar una línea que nos separe. Lo que ha sucedido hasta ahora son servicios «públicos» financiados por los operadores y la compra de dominios.


A partir de ahora, la respuesta la dará nuestro servidor DNS privado

3️⃣ Tu servidor para ese dominio (DNS privado).

En este caso el dominio google.es tiene configurados como servidores DNS a los que preguntar varios de sus servidores: ns1.google.com ns2.google.com ns3.google.com ns4.google.com

¿Por qué siempre aparecen varios? El sistema es redundante para que funcione a pesar de un fallo en un servidor o una conexión

Así que preguntamos, y nos dice que en este caso para ir a google.es tienes que ir a la IP 142.250.185.3

¡Conseguido!

Así que, para obtener la IP de un dominio hemos preguntado:
1️⃣ Servidores raíz: Nos dan los servidores de ese tipo de dominio.
2️⃣ Servidores de ese tipo de dominio: Nos dan los servidores de ese dominio en concreto.
3️⃣ Servidores de ese dominio: Nos dan la respuesta definitiva. 

Este proceso normalmente tendría menos pasos porque tanto nuestro ordenador como nuestro proveedor de internet guardan en caché al menos parte de este proceso. Pudiendo así reducir las peticiones a 0, 1 o 2. 

Más allá de direcciones IP

El DNS no solo da IPs, tiene distintos tipos de registro para distintas funcionalidades. Los registros A y AAAA dan IPs, los CNAME alias, los MX servidores de correo y los TXT incluyen texto (se suelen usar para declarar información o para verificaciones). 

Características de un servidor DNS

Si tienes un dominio, es importante que tu servidor DNS sea confiable y redundante. A día de hoy no es difícil con la mayoría de proveedores (muchos servidores DNS vienen incluidos con el hosting) si bien aún hay muchos proveedores que no lo hacen redundante. 

Pero si además tienes un sitio web, es ideal que sea rápido, y si además el sitio está orientado a todo el mundo, no está de más que sea un DNS Anycast (con servidores distribuidos en el mundo, así responde más rápido a distintas zonas). 

Piensa que cuando entran en tu sitio web, la primera petición que se hace y lo primero que consume tiempo es la petición DNS.

Por ejemplo si esa petición tarda 200ms, ya empiezas con ese retraso de base al menos en la primera carga. En este sitio web el tiempo de carga DNS (azul) prácticamente supone 1/4 del tiempo de carga inicial del sitio.

Esta herramienta nos permite ver el tiempo de respuesta DNS de tu dominio en distintas partes del mundo.

Esta imagen es de un DNS de un proveedor de hosting español que da muy buena respuesta cerca de sus servidores (4ms en Francia, 20-30ms en el resto de europa) pero mala en el resto del mundo (100-300ms), obviamente no tiene anycast.
Imagen de famoso proveedor con servicio específico de DNS con tecnología Anycast.
Con alguna excepción, pero en general da buenas respuestas en todo el mundo.

Con este hilo he pretendido que conocieras un poco más sobre el DNS, que vieras su tecnología y el punto en el que está ahora mismo. Es uno de los elementos más ignorados, pero de vez en cuando hay que echarle un vistazo. 

Bonus: Glue Records.

Habrás notado que los servidores de tipo de dominio 2️⃣ te dan un dominio para llegar a los servidores DNS del dominio 3️⃣ . Hay que repetir de nuevo el proceso para obtener la IP de ese dominio, pero ¿No podría ser este un proceso interminable? 

Piensa qué pasa si los servidores DNS de un dominio están en el mismo dominio 🤯 Encontramos una situación límite porque para obtener la IP tienes que preguntar al servidor DNS pero es ese mismo DNS el que te da la IP del servidor DNS. 💥 

Por ejemplo el servidor DNS para google.com es ns1.google.com ¿Cómo llegamos a saber primero la IP del ns1.google.com sin preguntar a ns1.google.com para luego obtener la IP de google.com?

Esto se hace con unos registros especiales, los «Glue Records» que almacenan directamente en servidor del tipo de dominio 2️⃣ las IP de los DNS del dominio 1️⃣ .

Por ejemplo, aquí el servidor DNS a.gtld-servers.net nos da directamente las direcciones IP de los DNS de google.

¿Sabías estos detalles sobre los DNS? ¿Conoces otros detalles o curiosidades?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *