Trazando una Consulta DNS con dig +trace
Para ilustrar el proceso de resolución de nombres descrito en la sección de DNS, mostramos un ejemplo esquematizado de la herramienta dig
con la opción +trace
, que traza el camino de resolución del dominio example.com
. Esta herramienta realiza consultas iterativas desde los servidores raíz hasta el servidor autoritativo, mostrando cada paso del proceso. También explicamos el papel del resolvedor local, que inicia estas consultas en un sistema.
El Resolvedor Local
El resolvedor local es el componente del sistema operativo que gestiona las consultas DNS, actuando como intermediario entre las aplicaciones (como navegadores o dig
) y los servidores DNS externos. En Linux, el resolvedor local se configura principalmente a través del archivo /etc/resolv.conf
, que lista las direcciones IP de los servidores DNS a los que se envían las consultas. Un ejemplo típico de /etc/resolv.conf
es:
nameserver 127.0.0.53
nameserver 8.8.8.8
Aquí, 127.0.0.53
es el resolvedor DNS local de sistemas modernos como Ubuntu (gestionado por systemd-resolved
), y 8.8.8.8
es un servidor DNS público de Google como respaldo. Este archivo determina a qué servidor se envía la consulta inicial. En una consulta DNS estándar, el resolvedor local usa su caché para responder rápidamente si ya conoce la respuesta. Sin embargo, dig +trace
ignora este caché y realiza consultas directas a los servidores raíz, de TLD, y autoritativos, para mostrar el proceso completo de resolución.
En Windows, el resolvedor local se configura a través de la configuración de red, accesible desde el Panel de Control (Redes e Internet > Conexiones de red > Propiedades del adaptador de red > Protocolo de Internet versión 4 o 6 > Servidores DNS). También se puede consultar con el comando:
ipconfig /all
Esto muestra los servidores DNS configurados (por ejemplo, los del ISP o 8.8.8.8
). Windows no usa un archivo equivalente a /etc/resolv.conf
, pero la configuración puede modificarse en la interfaz gráfica o en el registro del sistema.
Al igual que en Linux, dig +trace
en Windows (si usas dig
desde un entorno como WSL o Cygwin) evita el caché del resolvedor local para trazar la resolución desde cero.
Ejemplo de dig +trace example.com
(Esquematizado)
A continuación, presentamos una versión simplificada de la salida de dig +trace example.com
, con las líneas más relevantes de cada paso y su explicación.
Paso 1: Consulta a los servidores raíz
. 518400 IN NS a.root-servers.net.
. 518400 IN NS g.root-servers.net.
;; Received 228 bytes from 127.0.0.53#53(127.0.0.53) in 2 ms
- Explicación: La consulta comienza con el resolvedor local (
127.0.0.53
), que proporciona la lista de los 13 servidores raíz (solo mostramos dos por brevedad). Estos servidores, comoa.root-servers.net
, son el punto de partida para resolver cualquier dominio. El TTL de 518,400 segundos (~6 días) indica cuánto tiempo se puede almacenar esta información en caché.
Paso 2: Consulta al servidor de TLD (.com)
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 86400 IN DS 30909 8 2 [Hash DNSSEC]
;; Received 512 bytes from 192.112.36.4#53(g.root-servers.net) in 35 ms
- Explicación: El servidor raíz
g.root-servers.net
indica los servidores de nombres del TLD.com
, comoa.gtld-servers.net
. El registroDS
muestra que.com
usa DNSSEC para verificar la autenticidad de las respuestas, previniendo ataques como el envenenamiento de caché DNS. El TTL de 172,800 segundos (48 horas) aplica a los registrosNS
.
Paso 3: Consulta al servidor autoritativo
example.com. 172800 IN NS a.iana-servers.net.
example.com. 172800 IN NS b.iana-servers.net.
;; Received 404 bytes from 192.5.6.30#53(a.gtld-servers.net) in 40 ms
- Explicación: El servidor de
.com
(a.gtld-servers.net
) señala los servidores autoritativos deexample.com
, gestionados en este caso por IANA (a.iana-servers.net
yb.iana-servers.net
). Estos servidores tienen la información final sobre el dominio.
Paso 4: Respuesta final
example.com. 86400 IN A 93.184.216.34
;; Received 56 bytes from 199.7.83.42#53(b.iana-servers.net) in 50 ms
- Explicación: El servidor autoritativo
b.iana-servers.net
entrega el registroA
con la dirección IP93.184.216.34
deexample.com
. El TTL de 86,400 segundos (24 horas) indica cuánto tiempo puede almacenarse esta respuesta en caché.
Nota sobre el Caché y dig +trace
Como hemos explicado, el sistema DNS utiliza el almacenamiento en caché para mejorar la eficiencia. Los resolvedores locales (como 127.0.0.53
) y los servidores de nombres almacenan registros como A
o NS
durante su TTL (por ejemplo, 86,400 segundos para el registro A
de example.com
). En una consulta DNS estándar, el resolvedor local usaría el caché para responder rápidamente. Sin embargo, dig +trace
realiza consultas iterativas, ignorando el caché del resolvedor local y contactando directamente los servidores raíz, de TLD, y autoritativos. Si repites el comando, la salida podría variar ligeramente en:
- Servidores contactados: Por ejemplo,
h.root-servers.net
en lugar deg.root-servers.net
. - Tiempos de respuesta: Dependen de la latencia de la red.
- TTL decreciente: Los valores de TTL disminuirán con el tiempo.
A pesar de estas variaciones, la estructura de la resolución (raíz → TLD → autoritativo → IP) seguirá siendo la misma, salvo cambios en la configuración del dominio.