El Sistema de Nombres de Dominio (DNS) funciona como una agenda distribuida de Internet. Convierte nombres fáciles de recordar, como www.facebook.com , en direcciones IP que los routers utilizan para dirigir correctamente el tráfico de datos.
Sin DNS la navegación sería impracticable, porque nadie recordaría las combinaciones numéricas cambiantes que identifican a cada servicio. Además de la simple traducción, DNS aporta equilibrio de carga, verificación de servicios y controles de seguridad como DNSSEC.
Cuando un navegador necesita cargar un sitio, pregunta primero a un resolvedor DNS cuál es la dirección IP que corresponde al nombre solicitado. El resolvedor recorre la jerarquía de DNS hasta hallar una respuesta autoritativa y la devuelve, almacenándola en caché para acelerar futuras consultas.
Esta resolución ocurre en milisegundos y se ejecuta millones de veces por segundo en todo el mundo, demostrando la eficiencia y resiliencia del sistema.
DNS es jerárquico y delega responsabilidades de arriba hacia abajo:
Cada nivel conoce únicamente la información necesaria para dirigir a la siguiente autoridad, lo que evita dependencias centralizadas y facilita el crecimiento del sistema.
Los registros son las piezas de información que responden a una consulta. Cada tipo indica qué clase de dato se está publicando.
| Tipo | Propósito | Ejemplo |
|---|---|---|
| A | Asocia un nombre a una dirección IPv4. | www → 142.250.184.164 |
| AAAA | Asocia un nombre a una dirección IPv6. | www → 2607:f8b0:4004:80a::2004 |
| CNAME | Alias; redirige un nombre a otro dentro del árbol DNS. | blog → ghs.googlehosted.com |
| MX | Define los servidores de correo para un dominio. | 10 aspmx.l.google.com |
| NS | Indica cuáles son los servidores autoritativos del dominio. | ns1.ejemplo.com |
| PTR | Permite resolver una IP hacia un nombre (búsqueda inversa). | 164.184.250.142.in-addr.arpa → lhr25s56-in-f4.1e100.net |
Existen muchos otros tipos (TXT, SRV, CAA), pero los anteriores cubren las tareas básicas de publicación web, correo y diagnósticos.
El proceso completo involucra roles distintos:
Esta división permite escalar: los recursivos absorben el tráfico cotidiano, mientras que los autoritativos solo atienden las solicitudes necesarias para mantener la información actualizada.
Veamos cómo se resuelve www.google.com:
El resultado puede contener múltiples direcciones para repartir la carga entre centros de datos y aplicar balanceo geográfico.
Windows incluye nslookup para realizar consultas puntuales y verificar si un cambio ya se propagó:
nslookup www.wikipedia.org 8.8.8.8
En sistemas tipo Unix es común utilizar dig o host, que ofrecen salidas más detalladas.
Un script sencillo en Python permite automatizar verificaciones:
import socket
for record in ("www.google.com", "mail.google.com"):
ip = socket.gethostbyname(record)
print(f"{record} -> {ip}")
Este tipo de utilidades se integra en procesos de despliegue continuo para garantizar que los cambios de DNS se publiquen antes de mover tráfico hacia un nuevo servicio.
DNS combina simplicidad conceptual con una infraestructura global altamente optimizada. Conocer sus componentes ayuda a interpretar síntomas como latencia intermitente, errores de resolución o bloqueos selectivos. En el siguiente tema analizaremos HTTP, que se apoya directamente en DNS para encontrar servidores web antes de intercambiar documentos.