Has cambiado un registro en el registrador y el sitio sigue abriéndose desde el servidor antiguo. El correo del dominio no llega, o un servicio te pide verificar el dominio con un registro TXT y asegura que no lo ve. En todos estos casos hay que preguntar directamente al DNS qué responde en este momento. Para eso existen dos comandos, nslookup y dig. En este artículo vemos en qué se diferencian, aprendemos a consultar registros de distintos tipos, a preguntar a un servidor DNS concreto y a recorrer toda la cadena desde los servidores raíz hasta la respuesta. Todos los ejemplos se han ejecutado en un servidor de pruebas con Debian 12.
Por qué las respuestas del DNS pueden ser distintas
Cuando le preguntas al DNS la dirección de un dominio, la respuesta casi nunca llega directamente del servidor que se encarga de ese dominio. El ordenador se dirige a su resolutor, por ejemplo al servidor del proveedor o al público 1.1.1.1, y el resolutor o bien devuelve la respuesta que tiene en memoria, o bien recorre la cadena. Primero pregunta a un servidor raíz, este lo envía a los servidores de la zona, por ejemplo .com, y estos a los servidores NS del propio dominio, que son los que guardan los registros. Esta cadena se explica en detalle en el artículo sobre cómo apuntar un dominio a un VPS.
De este funcionamiento se deduce que distintos resolutores pueden responder de forma diferente en el mismo momento. Uno ya ha recibido el registro nuevo y otro todavía devuelve el antiguo desde su memoria hasta que caduque su TTL, el plazo durante el que puede guardarlo. Por eso, al hacer una comprobación, conviene comparar las respuestas de varios resolutores y, si necesitas total seguridad, preguntar directamente al servidor NS del dominio. Los dos comandos saben hacerlo, y dig además puede recorrer toda la cadena por su cuenta y mostrar qué respondió cada servidor.
La diferencia entre los comandos está sobre todo en la comodidad. nslookup está disponible casi en todas partes, también en Windows, y muestra la respuesta de forma sencilla. dig viene incluido en Linux y macOS, muestra la respuesta con más detalle, con el TTL y los campos técnicos, y resulta más cómodo para scripts. En Debian y Ubuntu los dos comandos se instalan con un mismo paquete.
apt install -y dnsutils1. Averigua la dirección IP del dominio
# Respuesta detallada de dig, solo la sección con la respuesta
dig example.com +noall +answer
# Solo las direcciones, sin nada más
dig example.com +short
# Lo mismo con nslookup, funciona también en Windows
nslookup example.comEl número de la segunda columna de la respuesta de dig es el TTL restante en segundos, es decir, cuánto tiempo más recordará el resolutor esta respuesta. Las direcciones IPv6 se consultan igual con el tipo AAAA, por ejemplo dig example.com AAAA +short.
2. Consulta registros de otros tipos
El tipo de registro se indica después del nombre del dominio en dig o con el parámetro -type= en nslookup.
# Servidores de correo del dominio, el número antes del nombre es la prioridad
dig gmail.com MX +short
# Registros TXT, aquí suelen estar el SPF y los códigos de verificación de servicios
dig example.com TXT +short
# Servidores NS que atienden el dominio
dig example.com NS +short
# Registro inverso PTR, qué dominio tiene una dirección IP
dig -x 1.1.1.1 +short
Registros de distintos tipos en una sola ventana
En nslookup las mismas consultas tienen este aspecto.
nslookup -type=mx gmail.com
nslookup -type=txt example.com
nslookup -type=ns example.com
nslookup muestra los mismos registros MX de otra forma
3. Pregunta a un servidor DNS concreto
Para saber qué responde un resolutor determinado o el propio servidor NS del dominio, indícalo después de @ en dig o como último parámetro en nslookup.
# Resolutores públicos de Google y Cloudflare
dig @8.8.8.8 example.com +short
dig @1.1.1.1 example.com +short
# El propio servidor NS del dominio, respuesta sin caché
dig @elliott.ns.cloudflare.com example.com +short
# Lo mismo con nslookup
nslookup example.com 8.8.8.8Si el servidor NS del dominio ya devuelve el registro nuevo y los resolutores públicos todavía no, lo has hecho todo bien y solo queda esperar a que caduque el TTL de la respuesta antigua.
4. Recorre toda la cadena con el comando dig +trace
El parámetro +trace hace que dig no recurra al resolutor, sino que recorra el camino por su cuenta empezando por los servidores raíz. Así se ve quién se encarga del dominio en cada paso.
dig +trace example.comLa salida completa es larga, así que para la captura de pantalla hemos dejado solo las líneas con los pasos y los registros encontrados.

El servidor raíz, el servidor de la zona .com y el servidor NS del dominio, uno tras otro
Las líneas Received … from muestran qué servidor respondió en cada paso. Aquí el servidor raíz e.root-servers.net envió la consulta a los servidores de la zona .com, el servidor c.gtld-servers.net indicó que el dominio lo atiende Cloudflare y el servidor NS elliott.ns.cloudflare.com devolvió las direcciones. Si la cadena se corta, se ve en qué paso. Por ejemplo, si en el registrador están indicados servidores NS que no saben nada del dominio.
Preguntas frecuentes
dig: command not found
El comando forma parte del paquete dnsutils. Instálalo con el comando apt install -y dnsutils. En nuestra imagen de Debian 12 este paquete ya viene instalado.
Respuesta status: NXDOMAIN
Ese nombre no existe en el DNS. Comprueba cómo está escrito el dominio y que el registro se ha creado para el nombre correcto, por ejemplo para www por separado. Si el dominio se acaba de registrar, comprueba los servidores NS con el comando dig example.com NS +short.
La respuesta está vacía, pero no hay ningún error
El dominio existe, pero no tiene registros del tipo necesario. Por ejemplo, el dominio tiene un registro A, pero no tiene registro MX. Comprueba que el registro se ha creado con el tipo correcto.
Un registro nuevo se ve en un resolutor y en otro no
El segundo resolutor todavía guarda la respuesta antigua. Mira el TTL en la salida de dig +noall +answer, es el tiempo en segundos que falta para que se actualice. En tu ordenador puedes vaciar la caché DNS. En Windows se hace con el comando ipconfig /flushdns.
Nuestros recursos
Canal de Telegram: https://t.me/f3cloud_news
Web del hosting: https://f3cloud.com