Saltar al contenido principal
Volver al blog
· 8 min de lectura

dig: consultas DNS desde la terminal

Guía de referencia del comando dig en Linux: sintaxis, opciones principales, tipos de registro DNS, ejemplos prácticos para diagnóstico de dominios, consultas inversas y buenas prácticas.

linux networking sre

dig (Domain Information Groper) es una herramienta de línea de comandos para realizar consultas DNS. Permite interrogar servidores de nombres para obtener información sobre registros de dominio, diagnosticar problemas de resolución y verificar configuraciones DNS. Es una de las herramientas más utilizadas por administradores de sistemas y equipos de SRE para depurar problemas de red.

Instalación

Debian/Ubuntu/Raspberry Pi

dig forma parte del paquete dnsutils (o bind9-dnsutils en versiones recientes):

sudo apt update && sudo apt install dnsutils

macOS

dig viene preinstalado en macOS como parte de las herramientas de red del sistema.

Verificar la instalación

dig -v

Uso básico

dig <dominio>

Consulta los registros DNS tipo A (dirección IPv4) del dominio especificado usando los servidores DNS configurados en /etc/resolv.conf:

dig example.com

Anatomía de la respuesta

La salida de dig se divide en varias secciones:

; <<>> DiG 9.18.28 <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; QUESTION SECTION:
;example.com.                   IN      A

;; ANSWER SECTION:
example.com.            86400   IN      A       93.184.216.34

;; Query time: 23 msec
;; SERVER: 192.168.1.1#53(192.168.1.1) (UDP)
;; WHEN: Wed Apr 09 20:00:00 UTC 2026
;; MSG SIZE  rcvd: 56
SecciónDescripción
HEADERCódigo de estado, flags y contadores de registros
QUESTIONLa consulta realizada
ANSWERLos registros que responden a la consulta
AUTHORITYServidores de nombres autoritativos para el dominio
ADDITIONALRegistros adicionales (como las IPs de los servidores NS)
EstadísticasTiempo de consulta, servidor usado, fecha y tamaño del mensaje

Códigos de estado comunes

EstadoSignificado
NOERRORLa consulta se completó exitosamente
NXDOMAINEl dominio no existe
SERVFAILEl servidor DNS falló al procesar la consulta
REFUSEDEl servidor DNS rechazó la consulta
FORMERRLa consulta tiene un formato incorrecto

Tipos de registro DNS

dig puede consultar diferentes tipos de registros usando la sintaxis:

dig <dominio> <tipo>
TipoDescripciónEjemplo
ADirección IPv4dig example.com A
AAAADirección IPv6dig example.com AAAA
MXServidores de correodig example.com MX
NSServidores de nombresdig example.com NS
CNAMEAlias de dominiodig www.example.com CNAME
TXTRegistros de texto (SPF, DKIM, etc.)dig example.com TXT
SOAInicio de autoridaddig example.com SOA
SRVServicios (ubicación de servicios)dig _sip._tcp.example.com SRV
PTRRegistro inverso (IP a dominio)dig -x 93.184.216.34
CAAAutorización de autoridad de certificacióndig example.com CAA
ANYTodos los registros disponiblesdig example.com ANY

Opciones principales

OpciónDescripción
@servidorUsa un servidor DNS específico
-t <tipo>Especifica el tipo de registro
-x <ip>Consulta inversa (PTR)
-p <puerto>Usa un puerto diferente al 53
-4Fuerza el uso de IPv4
-6Fuerza el uso de IPv6
+shortMuestra solo la respuesta, sin secciones adicionales
+noall +answerMuestra solo la sección ANSWER
+traceTraza la ruta completa de resolución desde los servidores raíz
+nocmdOmite la línea de versión y opciones globales
+nocommentsOmite las líneas de comentarios
+nostatsOmite las estadísticas finales
+noquestionOmite la sección QUESTION
+noauthorityOmite la sección AUTHORITY
+noadditionalOmite la sección ADDITIONAL
+tcpFuerza el uso de TCP en lugar de UDP
+dnssecSolicita registros DNSSEC
+multilineFormato multilínea para registros SOA y similares

Especificar un servidor DNS

Por defecto, dig usa los servidores configurados en /etc/resolv.conf. Para consultar un servidor específico, usa @:

# Consultar usando Google DNS
dig @8.8.8.8 example.com

# Consultar usando Cloudflare DNS
dig @1.1.1.1 example.com

# Consultar usando un servidor DNS local
dig @192.168.1.1 example.com

Ejemplos prácticos

Obtener solo la dirección IP

dig +short example.com

Salida:

93.184.216.34

Consultar registros MX

dig +short example.com MX

Salida:

10 mail.example.com.
20 mail2.example.com.

El número indica la prioridad: menor valor = mayor prioridad.

Consultar registros NS

dig +short example.com NS

Salida:

ns1.example.com.
ns2.example.com.

Consultar registros TXT (SPF, DKIM)

dig example.com TXT +short

Los registros TXT son comunes para verificar la propiedad de un dominio y configurar políticas de correo electrónico como SPF, DKIM y DMARC.

Consulta inversa (IP a dominio)

dig -x 8.8.8.8 +short

Salida:

dns.google.

Trazar la resolución completa

dig +trace example.com

Muestra el camino completo de resolución DNS, comenzando desde los servidores raíz (.), pasando por los servidores TLD (.com.) hasta llegar al servidor autoritativo del dominio. Es útil para identificar en qué punto falla la resolución.

Consultar el registro SOA

dig example.com SOA +multiline

Salida formateada:

example.com.        86400 IN SOA ns1.example.com. admin.example.com. (
                                2024010101 ; serial
                                3600       ; refresh (1 hour)
                                900        ; retry (15 minutes)
                                604800     ; expire (1 week)
                                86400      ; minimum TTL (1 day)
                                )

Obtener solo la sección ANSWER

dig example.com +noall +answer

Salida limpia sin comentarios, headers ni estadísticas:

example.com.        86400   IN      A       93.184.216.34

Verificar DNSSEC

dig example.com +dnssec +short

Si el dominio tiene DNSSEC habilitado, la respuesta incluirá registros RRSIG junto con los registros solicitados.

Consultar múltiples dominios

dig permite consultar varios dominios en una sola ejecución:

dig example.com google.com github.com +short

También se puede usar un archivo con la lista de dominios:

dig -f dominios.txt +short

Donde dominios.txt contiene un dominio por línea.

Medir el tiempo de resolución

dig example.com | grep "Query time"

Salida:

;; Query time: 23 msec

Para comparar tiempos entre distintos servidores DNS:

dig @8.8.8.8 example.com | grep "Query time"
dig @1.1.1.1 example.com | grep "Query time"
dig @9.9.9.9 example.com | grep "Query time"

Servidores DNS públicos de referencia

ProveedorIPv4 primarioIPv4 secundarioEnfoque
Google8.8.8.88.8.4.4Velocidad
Cloudflare1.1.1.11.0.0.1Privacidad
Quad99.9.9.9149.112.112.112Seguridad
OpenDNS208.67.222.222208.67.220.220Filtrado

Casos de uso para diagnóstico

Verificar la propagación DNS

Después de cambiar registros DNS, consulta varios servidores para verificar que los cambios se propagaron:

dig @8.8.8.8 midominio.com +short
dig @1.1.1.1 midominio.com +short
dig @9.9.9.9 midominio.com +short

Si los servidores devuelven valores diferentes, la propagación aún no se completó.

Comparar respuestas entre servidores autoritativos

# Obtener los servidores autoritativos
dig midominio.com NS +short

# Consultar cada uno directamente
dig @ns1.midominio.com midominio.com +short
dig @ns2.midominio.com midominio.com +short

Diagnosticar problemas de correo

# Verificar registros MX
dig midominio.com MX +short

# Verificar SPF
dig midominio.com TXT +short | grep spf

# Verificar DMARC
dig _dmarc.midominio.com TXT +short

# Verificar DKIM (reemplaza "selector" con el selector real)
dig selector._domainkey.midominio.com TXT +short

Verificar la configuración de un CNAME

dig www.midominio.com CNAME +short

Si devuelve un alias, la resolución continuará con el dominio destino. Si no devuelve nada, no hay CNAME configurado.

Verificar el TTL de un registro

dig midominio.com +noall +answer

La segunda columna muestra el TTL restante en segundos. Ejecutar la consulta varias veces mostrará cómo el TTL disminuye hasta que el registro se refresca del servidor autoritativo.

Buenas prácticas

  • Usa +short para scripts — la salida reducida facilita el procesamiento con otras herramientas como awk, grep o xargs.
  • Especifica el servidor con @ — evita depender de la configuración local de /etc/resolv.conf cuando necesitas resultados deterministas.
  • Usa +trace para diagnosticar — cuando un dominio no resuelve, el trace muestra exactamente dónde falla la cadena de resolución.
  • Consulta servidores autoritativos — para verificar registros recién actualizados, consulta directamente los servidores NS del dominio en lugar de servidores recursivos que pueden tener la respuesta en caché.
  • Verifica el TTL antes de hacer cambios — si el TTL es alto (por ejemplo, 86400 segundos = 24 horas), considera reducirlo antes de hacer un cambio de DNS para acelerar la propagación.
  • Combina +noall +answer — esta combinación es más flexible que +short cuando necesitas ver el tipo de registro y el TTL, pero sin el ruido de las demás secciones.

Alternativas

nslookup es otra herramienta para consultas DNS que viene preinstalada en la mayoría de sistemas. Sin embargo, dig es preferida por administradores de sistemas porque ofrece una salida más detallada y un control más granular sobre las opciones de consulta.

dog es una alternativa moderna escrita en Rust que presenta la salida en formato colorizado y más legible:

# Instalación en macOS
brew install dog

# Uso
dog example.com A

drill es parte del paquete ldnsutils y ofrece funcionalidades similares a dig con soporte nativo para DNSSEC:

# Instalación en Debian/Ubuntu
sudo apt install ldnsutils

# Uso
drill example.com