Antonio CintoraSISTEMAS
Saltar al contenido
REDESPARTE 1 DE 27 MIN DE LECTURAPENDIENTE DE PUBLICAR

Cómo funciona el DNS: el mapa del sistema

Por qué tu navegador no puede conectarse a un nombre, cómo se reparte el DNS en una jerarquía distribuida donde cada nivel delega en el siguiente, y quiénes son los cuatro actores que resuelven cada consulta.

Antonio Cintora
Antonio CintoraAdministrador de sistemas · Zaragoza
ÍNDICE
AQUÍ VA EL VÍDEO · PARTE 1 DE 2

El nombre no basta

Escribes antoniocintora.com y pulsas Enter. Para tu navegador, ese nombre todavía no significa nada: no puede abrir una conexión contra un nombre. Los routers de internet no encaminan nombres, encaminan direcciones IP.

Así que, antes de pedir la página, alguien tiene que traducir ese nombre a una dirección. Y hasta que llegue esa respuesta, la petición se queda esperando. Ese paso previo —el que casi nunca vemos— es el DNS.

Nombres y direcciones: dos formas de nombrar lo mismo

DNS son las siglas de Domain Name System, el sistema de nombres de dominio. Existe por una razón muy simple: las personas y las máquinas no nombramos igual. Nosotros recordamos nombres. La red localiza equipos con números.

El DNS es la capa que mantiene unidas esas dos formas de nombrar exactamente lo mismo. No es un añadido cómodo: sin él, la red seguiría funcionando, pero tendrías que conocer de memoria la dirección numérica de cada servicio que usas.

Qué guarda el DNS

La comparación más útil es una agenda de contactos gigantesca repartida por todo el mundo: preguntas por un nombre y te dice dónde está el servicio.

Y no solo direcciones IP. En la ficha de un dominio también están el servidor que recibe su correo, los alias que apuntan a otros nombres y los registros de verificación que usan los servicios externos para comprobar que el dominio es tuyo. Cada uno es un tipo de registro distinto, y de eso va la segunda parte.

No existe «el servidor DNS»

Aquí aparece el primer malentendido, y es el más común: imaginar un único servidor DNS enorme con todos los dominios de internet. No existe. Ninguna máquina guarda esa lista completa.

Lo que hay es un sistema repartido en miles de servidores, y cada uno es responsable solo de su parte. Dos palabras describen esa forma:

  • Distribuido significa que la responsabilidad está troceada.
  • Jerárquico, que esos trozos se organizan en niveles.

Ningún servidor lo sabe todo, pero todos saben a quién preguntar.

Y un detalle que conviene aclarar porque se repite mucho: se habla de trece servidores raíz, y eso suena a trece máquinas en trece sitios. En realidad son trece identidades, servidas desde cientos de instancias repartidas por el mundo mediante anycast. La misma dirección IP se anuncia desde muchos puntos a la vez y tu consulta acaba en el más cercano. De ahí que perder una instancia no sea perder «uno de los trece».

La jerarquía, de arriba abajo

Un nombre de dominio no es una cadena plana: cada trozo pertenece a un nivel distinto de un árbol.

www.antoniocintora.com...

wwwnombre de host
antoniocintoradominio registrado
comTLD
.raíz (invisible)

En lo más alto está la zona raíz, que se escribe simplemente con un punto. Sí, hay un punto final después de com: aunque los navegadores lo escondan, técnicamente está ahí.

Justo debajo están los dominios de primer nivel, los TLD: .com, .org, .es. Debajo de cada TLD, los dominios que registramos, como antoniocintora.com. Y dentro de cada dominio, los nombres de host: www, mail y los que hagan falta.

Un truco para leerlo: se interpreta de derecha a izquierda, de lo más general a lo más concreto.

Delegación: nadie tiene que saberlo todo

Y ahora la idea que hace funcionar todo esto: ningún nivel guarda lo que hay debajo, lo delega.

La raíz no sabe dónde está antoniocintora.com. Ni lo pretende. Lo que sabe es quién gestiona los .com. Y los servidores de .com no saben la IP de esa web: saben qué servidores son responsables de ese dominio concreto, los que se declararon al registrarlo.

Esa delegación es lo que permite que el sistema crezca sin límite y sin que nadie tenga que saberlo todo. Cuando registras un dominio, no estás añadiendo una fila a una lista mundial: estás recibiendo la responsabilidad de un trozo del árbol.

Los cuatro actores

En una resolución típica intervienen cuatro papeles distintos. Merece la pena tenerlos claros, porque casi todo el vocabulario del DNS se refiere a uno de ellos.

Resolver recursivo

El que busca la respuesta por ti. Suele ser el de tu operador, el de tu empresa o un servicio público. Es el único al que preguntas directamente.

Servidores raíz

El punto de partida cuando no se sabe nada. No dan direcciones: dicen quién manda en cada TLD.

Servidores del TLD

Mandan sobre .com, .es u .org y saben quién gestiona cada dominio registrado bajo ellos.

Servidor autoritativo

El que tiene la información oficial del dominio. Aquí acaba la búsqueda.

Una pregunta, varias consultas

Tú preguntas una sola vez. Por debajo, se encadenan varias consultas.

navegador+ SO
RESOLVER
recursivoel que insiste
RAÍZ
«preguntaa .com»
TLD .COM
«preguntaal autoritativo»
AUTORITATIVO
la respuestaoficial

Tu equipo pregunta una vez y espera. El resolver hace todo el recorrido.

El resolver pregunta a la raíz; la raíz le manda al .com; el .com le manda al servidor autoritativo, y ese responde con la dirección.

Fíjate en lo que tienen en común los pasos intermedios: ninguna respuesta intermedia resuelve la pregunta. Lo que hacen es acercar al resolver a quien sí tiene autoridad. Por eso se llama recursivo: tú preguntas una vez y él insiste hasta traer la respuesta.

Cuántos milisegundos tarda esto, y por qué en la práctica casi nunca se recorre entero, es el tema de la segunda parte.

Verlo tú mismo

Nada de esto es teoría abstracta: la jerarquía se puede recorrer desde tu terminal. En Linux y macOS, la herramienta es dig.

Bash · la cadena completa
dig antoniocintora.com A +trace

+trace es el comando que corresponde a este artículo: va preguntando nivel por nivel en lugar de aceptar una respuesta ya guardada. Verás primero la raíz, después los servidores de .com y por último el autoritativo. Es el árbol de arriba, impreso en tu terminal.

Bash · preguntar directamente al autoritativo
dig @ns1.antoniocintora.com antoniocintora.com A

Con @ te saltas a los intermediarios y preguntas al autoritativo en persona. Es la forma de comprobar qué dice la fuente oficial, sin nada por medio.

PowerShell · Windows
Resolve-DnsName antoniocintora.com -Type A -Server 1.1.1.1

En Windows, Resolve-DnsName es bastante mejor que el viejo nslookup: devuelve objetos, acepta tipos de registro y te deja elegir a qué servidor preguntas.

Tres errores que verás en producción

NXDOMAIN

El nombre no existe. Antes de culpar al DNS, revisa la ortografía y si el dominio sigue registrado: la mitad de los NXDOMAIN en empresa son un dominio caducado o un registro que alguien borró.

SERVFAIL

El resolver no pudo completar el recorrido. Suele ser un autoritativo caído, un firewall bloqueando el puerto 53 o una firma DNSSEC que no valida.

RESUELVE DISTINTO SEGÚN DÓNDE PREGUNTES

Clásico de Active Directory: desde la oficina el dominio devuelve una IP interna y desde fuera otra. No está roto, es split-horizon DNS. Pregúntate siempre desde dónde estás consultando y a qué resolver.

Glosario

Zona

El trozo del árbol del que un servidor es responsable, con todos los registros del dominio dentro.

Delegación

Acto por el cual un nivel de la jerarquía cede la responsabilidad de una parte del árbol al siguiente.

TLD

Dominio de primer nivel: el trozo final del nombre, como .com o .es.

Anycast

Anunciar la misma dirección IP desde muchos sitios a la vez para que cada consulta acabe en la instancia más cercana. Es lo que hay detrás de las trece identidades raíz.

Registro A

Asocia un nombre a una dirección IPv4. Su equivalente en IPv6 es el registro AAAA.

Preguntas frecuentes

¿Hay de verdad solo trece servidores raíz?

Hay trece identidades raíz, de la A a la M, pero cada una se sirve desde decenas o cientos de instancias físicas repartidas por el mundo mediante anycast. En total son más de mil servidores. La cifra trece es un límite histórico del tamaño de una respuesta DNS, no un recuento de máquinas.

¿Por qué un nombre de dominio se lee de derecha a izquierda?

Porque refleja el árbol. Lo más a la derecha es lo más general —la raíz y el TLD— y lo más a la izquierda, lo más concreto. Es el orden inverso al de una ruta de fichero, y es la causa de bastante confusión al empezar.

¿Merece la pena cambiar el DNS de mi router a 1.1.1.1 u 8.8.8.8?

En casa, suele mejorar algo la latencia y evita bloqueos por DNS de algunos operadores. En una empresa con Active Directory, ni se te ocurra: los clientes tienen que apuntar al DNS del dominio o el inicio de sesión y la localización de servicios dejarán de funcionar.

¿El DNS va por TCP o por UDP?

Por los dos, en el puerto 53. UDP para la mayoría de consultas, porque es más rápido y no necesita establecer conexión; TCP cuando la respuesta es grande o hay transferencias de zona. Si en tu firewall solo abriste UDP, algún día tendrás un fallo raro y difícil de encontrar.

Resumamos

Las personas usamos nombres. La red usa direcciones IP. Y el DNS relaciona unos con otras recorriendo una jerarquía distribuida en la que cada nivel delega en el siguiente.

Con el mapa ya dibujado, en la segunda parte recorremos ese camino paso a paso: qué pasa exactamente en cada salto, por qué la caché hace que casi nunca haya que recorrerlo entero, qué es el TTL y qué tipos de registro hay en la ficha de un dominio.

Recursos oficiales

SIGUIENTE · PARTE 2

La resolución paso a paso, la caché y el TTL

El recorrido completo de una consulta, por qué casi nunca se recorre entero, los tipos de registro y cómo planificar un cambio de IP sin cortar el correo.

EN PREPARACIÓNAvísame en YouTube