Qué es un resolutor DNS y cuál estás usando tú
Un resolutor DNS es el servicio al que pregunta primero tu dispositivo cuando necesita una dirección IP para un nombre, y una sola consulta suele pasar por tres roles distintos: un resolutor stub en tu propio equipo, un resolutor recursivo que hace la búsqueda de verdad, y los servidores autoritativos que guardan la respuesta real. La mayoría de la gente solo configura el primero y nunca ve los otros dos directamente.
¿Qué pasa cuando tu dispositivo busca un nombre?
Tu sistema operativo no sale a buscar un nombre por internet por sí mismo. Le pasa la petición a un pequeño programa llamado resolutor stub, que no es en absoluto un servidor de nombres. La RFC 8499 lo define como un resolutor "que no puede realizar toda la resolución por sí mismo" y depende de un resolutor recursivo para el trabajo real. El trabajo del resolutor stub es enviar tu consulta al servidor que esté configurado en tus ajustes de red y devolverte la respuesta, o una copia reciente ya en caché.
Resolutor stub, resolutor recursivo, servidor autoritativo: ¿cuál es la diferencia?
Tres roles aparecen en toda consulta, y el mismo servidor físico puede desempeñar más de uno:
- Resolutor stub. Se ejecuta en tu dispositivo, reenvía consultas, mantiene una pequeña caché, y no puede resolver un nombre por sí solo.
- Resolutor recursivo. Según la RFC 8499, "un resolutor que actúa en modo recursivo", es decir, hace todo el trabajo de perseguir una respuesta a través de todos los servidores que haga falta, y luego guarda en caché y devuelve el resultado. Este es el rol que ocupa tu proveedor de internet o un servicio público de DNS.
- Servidor autoritativo. La RFC 8499 lo define como un servidor que "conoce el contenido de una zona DNS por conocimiento local, y por tanto puede responder a consultas sobre esa zona sin necesidad de consultar a otros servidores". Este es el servidor que administra el propio proveedor de DNS del dominio, y su respuesta es la única que nadie más está copiando.
Un servidor que responde con una derivación en lugar de una respuesta completa está actuando de forma iterativa; uno que sigue trabajando hasta tener una respuesta final o un error definitivo está actuando de forma recursiva, que es lo que significa "resolutor recursivo" en su nombre.
El camino que recorre una consulta: los saltos de raíz, TLD y autoritativo
Una consulta en frío, sin nada guardado en caché en ningún sitio, recorre una jerarquía fija. El resolutor recursivo empieza por un servidor raíz, una de las trece identidades de servidor raíz que la IANA enumera de a.root-servers.net a m.root-servers.net, y le pregunta por example.com. El servidor raíz no sabe la respuesta; devuelve una derivación hacia los servidores responsables del dominio de nivel superior .com. El resolutor pregunta a uno de ellos y recibe una segunda derivación, esta vez hacia los servidores de nombres autoritativos del propio example.com, los que configuró el propietario del dominio. Solo ese último servidor da una respuesta real en lugar de un puntero a otro sitio. El resolutor recursivo la guarda en caché y se la devuelve a tu resolutor stub, que se la entrega a tu navegador.
Todo salto posterior al primero se salta siempre que una caché en el camino ya tenga la respuesta, lo cual explica por qué la inmensa mayoría de las consultas cotidianas nunca llegan a tocar un servidor raíz.
Resolutor del proveedor de internet frente a resolutor público: ¿qué cambia de verdad?
El resolutor que usa tu dispositivo por defecto suele venir del DHCP, entregado por tu router o tu proveedor de internet, y es casi siempre un resolutor recursivo que hace búsquedas completas en tu nombre. Lo que hace con tus consultas, cuán grande es su caché y desde cuántas ubicaciones opera lo decide quien lo administra, y no es algo que puedas ver desde tu lado.
Existen resolutores públicos como alternativa a la que puedes apuntar tu dispositivo: Google Public DNS funciona en 8.8.8.8, Cloudflare en 1.1.1.1, y Quad9 en 9.9.9.9. Cada uno publica su propia política sobre qué registra y durante cuánto tiempo la conserva, cada uno ejecuta su propia red anycast para que la misma dirección responda desde la ubicación más cercana a ti, y Quad9 además bloquea por defecto dominios maliciosos conocidos a nivel de resolutor, algo que un resolutor de proveedor de internet normalmente no hace. Nada de eso cambia lo que el DNS en sí puede hacer: un resolutor solo decide cómo se lleva a cabo una consulta, no lo que dicen los registros de un dominio.
¿Qué resolutor está usando tu equipo ahora mismo?
El resolutor que estás usando de verdad es un ajuste, no una suposición, y cada sistema operativo tiene un comando que lo muestra:
- Windows:
ipconfig /alllista "DNS Servers" bajo cada adaptador de red, en el orden en que se consultan. - macOS:
scutil --dnsinforma de la configuración de DNS actual, incluidos los servidores de nombres en vigor para cada servicio de red. - Linux con systemd-resolved:
resolvectl statusmuestra, según su propio manual, "los ajustes globales y por enlace de DNS actualmente en vigor", es decir, tanto el resolutor predeterminado como lo que haya sobrescrito una conexión concreta, como el Wi-Fi o una VPN.
Una VPN, una red corporativa o el propio ajuste de DNS seguro de un navegador pueden sustituir cada uno por un resolutor distinto sin cambiar lo que informa el comando del sistema operativo, así que si la respuesta del comando no coincide con lo que esperas, ese es el primer sitio donde mirar.
Qué resolutor responde a una consulta puede cambiar el resultado que ves, no solo la velocidad de obtenerlo: un resolutor con una caché desactualizada, una caída regional o una política de filtrado propia puede devolver algo distinto de lo que dirían directamente los servidores autoritativos. Ejecuta una consulta con la herramienta de consulta DNS para comparar, o, si el resolutor responde despacio en lugar de distinto, cómo arreglar una consulta DNS lenta explica cómo medirlo y cambiarlo. Si directamente no responde, empieza por servidor DNS que no responde. Para el comportamiento de caché que hay detrás de todo esto, consulta qué es una caché DNS. HostTracker monitoriza sitios web desde 2004, hoy vigila más de 500.000 sitios desde más de 300 puntos de verificación en 158 ciudades, y puede avisar por correo electrónico, SMS, llamada de voz, Slack, Telegram y más en el momento en que una verificación que espera una dirección IP concreta encuentra una distinta.
Preguntas frecuentes
¿Mi router es un resolutor DNS?
A menudo solo en un sentido limitado. Muchos routers domésticos ejecutan un pequeño reenviador de DNS: responde desde una caché diminuta, pero para cualquier cosa que no esté ya en caché pasa la consulta directamente al resolutor del proveedor de internet en lugar de hacer él mismo la recursión completa. La RFC 2308 describe este rol como reenviador (forwarder), "un servidor de nombres usado para resolver consultas en lugar de usar directamente la cadena de servidores de nombres autoritativos".
¿Usar un resolutor público hace más rápida mi navegación?
A veces sí, a veces no. Un resolutor cercano a ti con la caché caliente responde en milisegundos de una sola cifra, sin importar quién lo opere. Las variables principales son la cercanía de la ubicación más próxima de ese resolutor y lo caliente que ya esté su caché, no la marca.
¿Cuál es la diferencia entre recursión y reenvío?
Un resolutor que hace recursión consulta él mismo la raíz, el TLD y los servidores autoritativos, un salto cada vez, y guarda en caché el resultado final. Un resolutor que reenvía, en cambio, manda la pregunta entera a otro resolutor y espera una respuesta completa, cambiando el trabajo, y la visibilidad sobre lo que buscaste, por lo que ese resolutor ascendente ya tenga en caché.
¿Los 13 servidores raíz se ejecutan de verdad en 13 máquinas?
No. Hay trece identidades nombradas de servidor raíz, pero cada una la sirven muchas máquinas físicas repartidas por el mundo, de modo que una consulta se enruta a una copia cercana en lugar de cruzar un océano cada vez.
¿Pueden dos dispositivos de la misma red usar resolutores distintos?
Sí. El router reparte uno predeterminado por DHCP, pero cualquier dispositivo puede sobrescribirlo en sus propios ajustes de red, y una VPN o el ajuste de DNS seguro de un navegador puede sobrescribirlo de nuevo por encima de eso. Los comandos de arriba siempre muestran lo que ese dispositivo concreto está usando en ese momento, no lo que pretende la red.