Cómo usar el comando dig en Linux

El comando dig, abreviatura de “Domain Information Groper”, es una herramienta potente de red para consultar servidores del sistema de nombres de dominio (DNS).

dig ayuda a diagnosticar y resolver problemas relacionados con el DNS, esenciales para mantener la estabilidad y el rendimiento de la red.

Este artículo proporciona una guía completa sobre el uso del comando dig en Linux, desde su instalación y sintaxis básica hasta sus aplicaciones prácticas. 

Al final sabrás cómo utilizar dig eficazmente para realizar búsquedas DNS, solucionar problemas de red y supervisar propagaciones.

Instalar y configurar dig

Antes de utilizar el comando dig, asegúrate de que está instalado en tu sistema Linux. Los clientes de hosting VPS de Hostinger pueden acceder a su servidor mediante SSH para instalar esta herramienta. Puedes encontrar tus credenciales de acceso navegando al Vista general VPS → Acceso SSH.

Ventana Acceso SSH en hPanel

Aquí tienes los comandos para instalar dig en diferentes distribuciones Linux, todas ellas disponibles en los planes VPS de Hostinger.

Debian y Ubuntu

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo apt-get update
sudo apt-get install dnsutils
sudo apt-get update sudo apt-get install dnsutils
sudo apt-get update
sudo apt-get install dnsutils

CentOS

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo yum install bind-utils
sudo yum install bind-utils
sudo yum install bind-utils

Fedora

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo dnf install bind-utils
sudo dnf install bind-utils
sudo dnf install bind-utils

Arch Linux

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
sudo pacman -S bind
sudo pacman -S bind
sudo pacman -S bind

Después, verifica que dig está instalado correctamente comprobando su versión:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig -v
dig -v
dig -v

El resultado debería ser algo parecido a esto:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
DiG 9.16.1-Ubuntu
DiG 9.16.1-Ubuntu
DiG 9.16.1-Ubuntu

Sintaxis del comando dig

La sintaxis básica del comando dig es la siguiente:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig [server] [name] [type]
dig [server] [name] [type]
dig [server] [name] [type]

Aquí tienes una explicación de cada argumento:

  • [server] (opcional): la dirección IP o el nombre de host del servidor DNS a consultar. dig utilizará los servidores DNS listados en /etc/resolv.conf si se omite.
  • [name]: el nombre de dominio a consultar. Es el registro de recursos DNS sobre el que quieres información.
  • [type] (opcional): el tipo de registro DNS a consultar, incluyendo A, MX y NS. dig consultará un registro A si no se especifica ningún tipo por defecto.

Por ejemplo, para consultar un registro A de ejemplo.com, puedes ejecutar:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com
dig ejemplo.com
dig ejemplo.com

Este es el resultado esperado:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
; <<>> DiG 9.16.1-Ubuntu <<>> ejemplo.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; QUESTION SECTION:
;ejemplo.com. IN A
;; ANSWER SECTION:
ejemplo.com. 3600 IN A 93.184.216.34
;; AUTHORITY SECTION:
ejemplo.com. 3600 IN NS ns1.ejemplo.com.
ejemplo.com. 3600 IN NS ns2.ejemplo.com.
;; ADDITIONAL SECTION:
ns1.ejemplo.com. 3600 IN A 192.0.2.1
;; Query time: 10 msec
;; SERVER: 192.0.2.53#53(192.0.2.53)
;; WHEN: Thu Jul 25 14:00:00 UTC 2024
;; MSG SIZE rcvd: 123
; <<>> DiG 9.16.1-Ubuntu <<>> ejemplo.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1 ;; QUESTION SECTION: ;ejemplo.com. IN A ;; ANSWER SECTION: ejemplo.com. 3600 IN A 93.184.216.34 ;; AUTHORITY SECTION: ejemplo.com. 3600 IN NS ns1.ejemplo.com. ejemplo.com. 3600 IN NS ns2.ejemplo.com. ;; ADDITIONAL SECTION: ns1.ejemplo.com. 3600 IN A 192.0.2.1 ;; Query time: 10 msec ;; SERVER: 192.0.2.53#53(192.0.2.53) ;; WHEN: Thu Jul 25 14:00:00 UTC 2024 ;; MSG SIZE rcvd: 123
; <<>> DiG 9.16.1-Ubuntu <<>> ejemplo.com

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345

;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1

;; QUESTION SECTION:

;ejemplo.com.   IN  A

;; ANSWER SECTION:

ejemplo.com.  3600  IN  A 93.184.216.34

;; AUTHORITY SECTION:

ejemplo.com.  3600  IN  NS ns1.ejemplo.com.

ejemplo.com.  3600  IN  NS ns2.ejemplo.com.

;; ADDITIONAL SECTION:

ns1.ejemplo.com.  3600  IN  A 192.0.2.1

;; Query time: 10 msec

;; SERVER: 192.0.2.53#53(192.0.2.53)

;; WHEN: Thu Jul 25 14:00:00 UTC 2024

;; MSG SIZE  rcvd: 123

Opciones del comando dig

El comando dig ofrece varias opciones para personalizar las consultas y salidas DNS. Éstas son algunas de las más utilizadas:

  • +short: muestra sólo la información más relevante, como la dirección IP de un registro A.
  • +noall: suprime todas las secciones de la salida excepto las solicitadas explícitamente.
  • +answer: muestra sólo la sección de respuesta de la salida. Suele utilizarse con +noall.
  • +trace: realiza un rastreo completo del proceso de resolución DNS desde los servidores raíz hasta los servidores autoritativos.
  • @server: especifica un servidor DNS diferente al que consultar en lugar del predeterminado.
  • -x: realiza una búsqueda DNS inversa, traduciendo una dirección IP a un nombre de dominio.
  • +multi: formatea la salida para que sea más legible, lo que resulta útil cuando se trabaja con múltiples registros DNS.
  • +nocmd: omite la línea de órdenes inicial de la salida, mostrando sólo los resultados.
  • +stats: muestra la sección de estadísticas, que incluye el tiempo de consulta y los detalles del servidor.

También puedes utilizar varias opciones en un comando para personalizar aún más la salida. A continuación se muestra un ejemplo de combinación de las opciones @server, +short y +trace:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig @8.8.8.8 ejemplo.com +short +trace
dig @8.8.8.8 ejemplo.com +short +trace
dig @8.8.8.8 ejemplo.com +short +trace

Cuando se ejecuta, muestra lo siguiente:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
; <<>> DiG 9.16.1-Ubuntu <<>> @8.8.8.8 ejemplo.com +short +trace
;; global options: +cmd
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
...
ejemplo.com. 3600 IN UN 93.184.216.34
; <<>> DiG 9.16.1-Ubuntu <<>> @8.8.8.8 ejemplo.com +short +trace ;; global options: +cmd . 518400 IN NS a.root-servers.net. . 518400 IN NS b.root-servers.net. ... ejemplo.com. 3600 IN UN 93.184.216.34
; <<>> DiG 9.16.1-Ubuntu <<>> @8.8.8.8 ejemplo.com +short +trace

;; global options: +cmd

.           518400 IN NS a.root-servers.net.

.           518400 IN NS b.root-servers.net.

...

ejemplo.com.  3600 IN UN 93.184.216.34

Cómo utilizar el comando dig

Esta sección muestra cómo utilizar el comando dig en varios escenarios de administración de red.

Consultar un tipo de registro DNS específico

Consultar un tipo de registro DNS exacto te permite obtener información concreta sobre un dominio, como su dirección IP, servidores de correo o servidores de nombres. Aquí tienes diferentes comandos dig para consultar tipos de registros DNS concretos:

Registro SOA

El registro de inicio de autoridad (SOA) contiene información administrativa sobre el dominio, incluido el servidor de nombres principal y el correo electrónico registrado del administrador del dominio.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com SOA
dig ejemplo.com SOA
dig ejemplo.com SOA

Este es el resultado que deberías ver:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;ejemplo.com. IN SOA
;; ANSWER SECTION:
ejemplo.com. 3600 IN SOA ns1.ejemplo.com. hostmaster.ejemplo.com. 2021071601 3600 1800 1209600 300
...
... ;; QUESTION SECTION: ;ejemplo.com. IN SOA ;; ANSWER SECTION: ejemplo.com. 3600 IN SOA ns1.ejemplo.com. hostmaster.ejemplo.com. 2021071601 3600 1800 1209600 300 ...
...

;; QUESTION SECTION:

;ejemplo.com.  IN  SOA

;; ANSWER SECTION:

ejemplo.com.  3600  IN  SOA ns1.ejemplo.com. hostmaster.ejemplo.com. 2021071601 3600 1800 1209600 300

...

Registro MX

El registro de intercambio de correo (MX) especifica los servidores de correo responsables de recibir correos electrónicos para el dominio, lo que es vital para configurar y solucionar problemas de los servicios de correo electrónico.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com MX
dig ejemplo.com MX
dig ejemplo.com MX

Al ejecutar el comando anterior se mostrará lo siguiente:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;ejemplo.com. IN MX
;; ANSWER SECTION:
ejemplo.com. 3600 IN MX 10 mail.ejemplo.com.
;; ADDITIONAL SECTION:
mail.ejemplo.com. 3600 IN A 192.0.2.2
...
... ;; QUESTION SECTION: ;ejemplo.com. IN MX ;; ANSWER SECTION: ejemplo.com. 3600 IN MX 10 mail.ejemplo.com. ;; ADDITIONAL SECTION: mail.ejemplo.com. 3600 IN A 192.0.2.2 ...
...

;; QUESTION SECTION:

;ejemplo.com.  IN  MX

;; ANSWER SECTION:

ejemplo.com.  3600  IN  MX 10 mail.ejemplo.com.

;; ADDITIONAL SECTION:

mail.ejemplo.com.  3600  IN  A 192.0.2.2

...

Registro NS

El registro del servidor de nombres (NS) enumera los servidores de nombres responsables del dominio. Te ayuda a comprender la infraestructura DNS del dominio.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com NS
dig ejemplo.com NS
dig ejemplo.com NS

Este comando mostrará una salida similar a:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;ejemplo.com. IN NS
;; ANSWER SECTION:
ejemplo.com. 3600 IN NS ns1.ejemplo.com.
ejemplo.com. 3600 3600 IN NS ns2.ejemplo.com.
;; ADDITIONAL SECTION:
ns1.ejemplo.com. 3600 IN A 192.0.2.1
...
... ;; QUESTION SECTION: ;ejemplo.com. IN NS ;; ANSWER SECTION: ejemplo.com. 3600 IN NS ns1.ejemplo.com. ejemplo.com. 3600 3600 IN NS ns2.ejemplo.com. ;; ADDITIONAL SECTION: ns1.ejemplo.com. 3600 IN A 192.0.2.1 ...
...

;; QUESTION SECTION:

;ejemplo.com.  IN  NS

;; ANSWER SECTION:

ejemplo.com.  3600  IN  NS ns1.ejemplo.com.

ejemplo.com.  3600  3600  IN  NS ns2.ejemplo.com.

;; ADDITIONAL SECTION:

ns1.ejemplo.com.  3600  IN  A 192.0.2.1

...

Consultar un servidor DNS concreto

Puedes utilizar dig para pedir información a un servidor DNS concreto en lugar de confiar en los configurados por defecto en tu sistema. Es útil para probar y comparar las respuestas de distintos servidores DNS.

Consulta al servidor DNS público de Google.com

El servidor DNS público de Google (8.8.8.8) se utiliza a menudo para pruebas y resolución de problemas.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig @8.8.8.8 ejemplo.com
dig @8.8.8.8 ejemplo.com
dig @8.8.8.8 ejemplo.com

Este es el resultado:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;ejemplo.com. IN A
;; ANSWER SECTION:
ejemplo.com. 3600 IN A 93.184.216.34
;; AUTHORITY SECTION:
ejemplo.com. 3600 IN NS ns1.ejemplo.com.
ejemplo.com. 3600 IN NS ns2.ejemplo.com.
;; ADDITIONAL SECTION:
ns1.ejemplo.com. 3600 IN A 192.0.2.1
...
... ;; QUESTION SECTION: ;ejemplo.com. IN A ;; ANSWER SECTION: ejemplo.com. 3600 IN A 93.184.216.34 ;; AUTHORITY SECTION: ejemplo.com. 3600 IN NS ns1.ejemplo.com. ejemplo.com. 3600 IN NS ns2.ejemplo.com. ;; ADDITIONAL SECTION: ns1.ejemplo.com. 3600 IN A 192.0.2.1 ...
...

;; QUESTION SECTION:

;ejemplo.com.  IN  A

;; ANSWER SECTION:

ejemplo.com.  3600  IN  A 93.184.216.34

;; AUTHORITY SECTION:

ejemplo.com.  3600  IN  NS ns1.ejemplo.com.

ejemplo.com.  3600  IN  NS ns2.ejemplo.com.

;; ADDITIONAL SECTION:

ns1.ejemplo.com.  3600  IN  A 192.0.2.1

...

Consulta a un servidor de nombres autoritativo

Los servidores de nombres autoritativos proporcionan la respuesta definitiva a las consultas DNS sobre dominios, garantizando que obtienes la respuesta más precisa.

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig @ns1.ejemplo.com ejemplo.com
dig @ns1.ejemplo.com ejemplo.com
dig @ns1.ejemplo.com ejemplo.com

Si tus configuraciones son correctas, verás una salida similar a la anterior.

Rastrear la ruta DNS

Rastrear la ruta DNS implica seguir una consulta DNS desde tu ordenador hasta el servidor de nombres autoritativo. Este proceso te permite ver la ruta que siguen las consultas hasta el servidor DNS final.

Para rastrear la ruta DNS, añade la opción +trace a tu comando de la siguiente manera:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +trace
dig ejemplo.com +trace
dig ejemplo.com +trace

La salida dig muestra los servidores DNS implicados en cada paso:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
;; Received 512 bytes from 192.0.2.1#53(192.0.2.1) in 5 ms
ejemplo.com. 3600 IN NS ns1.ejemplo.com.
ejemplo.com. 3600 IN NS ns2.ejemplo.com.
;; Received 200 bytes from 192.0.2.1#53(192.0.2.1) in 10 ms
ejemplo.com. 3600 IN A 93.184.216.34
;; Received 100 bytes from 192.0.2.2#53(192.0.2.2) in 15 ms
. 518400 IN NS a.root-servers.net. . 518400 IN NS b.root-servers.net. ;; Received 512 bytes from 192.0.2.1#53(192.0.2.1) in 5 ms ejemplo.com. 3600 IN NS ns1.ejemplo.com. ejemplo.com. 3600 IN NS ns2.ejemplo.com. ;; Received 200 bytes from 192.0.2.1#53(192.0.2.1) in 10 ms ejemplo.com. 3600 IN A 93.184.216.34 ;; Received 100 bytes from 192.0.2.2#53(192.0.2.2) in 15 ms
.                       518400  IN      NS      a.root-servers.net.

.                       518400  IN      NS      b.root-servers.net.

;; Received 512 bytes from 192.0.2.1#53(192.0.2.1) in 5 ms

ejemplo.com.            3600    IN      NS      ns1.ejemplo.com.

ejemplo.com.            3600    IN      NS      ns2.ejemplo.com.

;; Received 200 bytes from 192.0.2.1#53(192.0.2.1) in 10 ms

ejemplo.com.            3600    IN      A       93.184.216.34

;; Received 100 bytes from 192.0.2.2#53(192.0.2.2) in 15 ms

Mostrar sólo la sección de respuestas

Utilizando el comando dig, puedes filtrar la salida para mostrar una información más limpia y legible, al tiempo que eliminas detalles innecesarios, lo que agiliza el análisis de los resultados.

Utiliza las opciones +noall y +answer juntas en tu comando dig, por ejemplo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +noall +answer
dig ejemplo.com +noall +answer
dig ejemplo.com +noall +answer

Esto proporciona un resultado limpio y conciso que sólo muestra la dirección IP del dominio consultado:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ejemplo.com. 3600 IN A 93.184.216.34
ejemplo.com. 3600 IN A 93.184.216.34
ejemplo.com.  3600  IN  A 93.184.216.34

Formatear la salida

De forma similar a mostrar sólo la sección de respuestas, formatear la salida te permite personalizar la forma en que se muestran los resultados para hacerlos más legibles y fáciles de analizar. Aquí tienes algunos ejemplos de comandos para su uso:

Usar +short

Esta opción resume los resultados de la consulta. Por ejemplo:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +short
dig ejemplo.com +short
dig ejemplo.com +short

Deberías ver la siguiente salida:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
93.184.216.34
93.184.216.34
93.184.216.34

Usar +multi

Como su nombre indica, +multi muestra varios registros en un formato más legible:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +multi
dig ejemplo.com +multi
dig ejemplo.com +multi

Este es el resultado:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ejemplo.com. 3600 IN UN 93.184.216.34
ejemplo.com. 3600 IN NS ns1.ejemplo.com.
3600 IN NS ns2.ejemplo.com.
ejemplo.com. 3600 IN UN 93.184.216.34 ejemplo.com. 3600 IN NS ns1.ejemplo.com. 3600 IN NS ns2.ejemplo.com.
ejemplo.com.  3600 IN UN 93.184.216.34

ejemplo.com.  3600 IN NS ns1.ejemplo.com.

3600 IN NS ns2.ejemplo.com.

Usar +nocmd

Utiliza +nocmd en tu comando para mostrar sólo los resultados principales:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +nocmd
dig ejemplo.com +nocmd
dig ejemplo.com +nocmd

Cuando se ejecuta, aparece:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
;; QUESTION SECTION:
;ejemplo.com. IN A
;; ANSWER SECTION:
ejemplo.com. 3600 IN A 93.184.216.34
;; QUESTION SECTION: ;ejemplo.com. IN A ;; ANSWER SECTION: ejemplo.com. 3600 IN A 93.184.216.34
;; QUESTION SECTION:

;ejemplo.com.  IN  A

;; ANSWER SECTION:

ejemplo.com.  3600  IN  A 93.184.216.34

Utilizar +comments

Con +comments, puedes mostrar u ocultar líneas de comentarios en la salida. Por ejemplo, para ocultar los comentarios, ejecuta:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +nocmd +noall +answer +nocomments
dig ejemplo.com +nocmd +noall +answer +nocomments
dig ejemplo.com +nocmd +noall +answer +nocomments

El comando anterior mostrará:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ejemplo.com. 3600 IN UN 93.184.216.34
ejemplo.com. 3600 IN UN 93.184.216.34
ejemplo.com.  3600 IN UN 93.184.216.34

Realizar una búsqueda DNS inversa

Una búsqueda inversa convierte una dirección IP en un nombre de dominio, lo contrario de la búsqueda DNS directa, más habitual. Esto ayuda a verificar que la dirección IP está correctamente asignada a un nombre de dominio concreto.

Aquí tienes un ejemplo de búsqueda DNS inversa:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig -x 93.184.216.34
dig -x 93.184.216.34
dig -x 93.184.216.34

Verás una salida similar a:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;34.216.184.93.in-addr.arpa. IN PTR
;; ANSWER SECTION:
34.216.184.93.in-addr.arpa. 3600 IN PTR ejemplo.com.
...
... ;; QUESTION SECTION: ;34.216.184.93.in-addr.arpa. IN PTR ;; ANSWER SECTION: 34.216.184.93.in-addr.arpa. 3600 IN PTR ejemplo.com. ...
...

;; QUESTION SECTION:

;34.216.184.93.in-addr.arpa. IN  PTR

;; ANSWER SECTION:

34.216.184.93.in-addr.arpa. 3600  IN  PTR ejemplo.com.

...

Ten en cuenta que si no se define un registro PTR para una dirección IP, no es posible realizar una búsqueda DNS inversa, ya que el registro PTR apunta al dominio o nombre de host.

Ejecutar consultas por lotes

También puedes utilizar dig para ejecutar varias búsquedas DNS en un solo comando. Ayuda a consultar información sobre varios nombres de dominio o direcciones IP, ahorrando tiempo y simplificando el proceso.

Para ejecutar consultas por lotes, sigue estos pasos:

  1. Crea un archivo llamado dominios.txt o con el nombre que prefieras utilizando el editor de texto nano:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
nano dominios.txt
nano dominios.txt
nano dominios.txt
  1. Añade las direcciones IP o los dominios que quieras consultar, uno por línea:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ejemplo1.com
ejemplo2.com
ejemplo3.com
ejemplo1.com ejemplo2.com ejemplo3.com
ejemplo1.com

ejemplo2.com

ejemplo3.com
  1. Guarda tus modificaciones y sal de nano pulsando Ctrl + X → Y → Intro.
  2. Ejecuta dig con la opción -f seguida del nombre de tu archivo:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig -f dominios.txt
dig -f dominios.txt
dig -f dominios.txt

Cuando se ejecuta, el comando muestra:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;ejemplo1.com. IN A
;; ANSWER SECTION:
ejemplo1.com. 3600 IN A 93.184.216.34
;; AUTHORITY SECTION:
ejemplo1.com. 3600 IN NS ns1.ejemplo1.com.
ejemplo1.com. 3600 IN NS ns2.ejemplo1.com.
;; ADDITIONAL SECTION:
ns1.ejemplo1.com. 3600 IN A 192.0.2.1
...
;; QUESTION SECTION:
;ejemplo2.com. IN A
;; ANSWER SECTION:
ejemplo2.com. 3600 IN A 93.184.216.35
;; AUTHORITY SECTION:
ejemplo2.com. 3600 IN NS ns1.ejemplo2.com.
ejemplo2.com. 3600 IN NS ns2.ejemplo2.com.
;; ADDITIONAL SECTION:
ns1.ejemplo2.com. 3600 IN A 192.0.2.2
...
;; QUESTION SECTION:
;ejemplo3.com. IN A
;; ANSWER SECTION:
ejemplo3.com. 3600 IN A 93.184.216.36
;; AUTHORITY SECTION:
ejemplo3.com. 3600 IN NS ns1.ejemplo3.com.
ejemplo3.com. 3600 IN NS ns2.ejemplo3.com.
;; ADDITIONAL SECTION:
ns1.ejemplo3.com. 3600 IN A 192.0.2.3
... ;; QUESTION SECTION: ;ejemplo1.com. IN A ;; ANSWER SECTION: ejemplo1.com. 3600 IN A 93.184.216.34 ;; AUTHORITY SECTION: ejemplo1.com. 3600 IN NS ns1.ejemplo1.com. ejemplo1.com. 3600 IN NS ns2.ejemplo1.com. ;; ADDITIONAL SECTION: ns1.ejemplo1.com. 3600 IN A 192.0.2.1 ... ;; QUESTION SECTION: ;ejemplo2.com. IN A ;; ANSWER SECTION: ejemplo2.com. 3600 IN A 93.184.216.35 ;; AUTHORITY SECTION: ejemplo2.com. 3600 IN NS ns1.ejemplo2.com. ejemplo2.com. 3600 IN NS ns2.ejemplo2.com. ;; ADDITIONAL SECTION: ns1.ejemplo2.com. 3600 IN A 192.0.2.2 ... ;; QUESTION SECTION: ;ejemplo3.com. IN A ;; ANSWER SECTION: ejemplo3.com. 3600 IN A 93.184.216.36 ;; AUTHORITY SECTION: ejemplo3.com. 3600 IN NS ns1.ejemplo3.com. ejemplo3.com. 3600 IN NS ns2.ejemplo3.com. ;; ADDITIONAL SECTION: ns1.ejemplo3.com. 3600 IN A 192.0.2.3
...

;; QUESTION SECTION:

;ejemplo1.com.  IN  A

;; ANSWER SECTION:

ejemplo1.com.  3600  IN  A 93.184.216.34

;; AUTHORITY SECTION:

ejemplo1.com.  3600  IN  NS ns1.ejemplo1.com.

ejemplo1.com.  3600  IN  NS ns2.ejemplo1.com.

;; ADDITIONAL SECTION:

ns1.ejemplo1.com.  3600  IN  A 192.0.2.1

...

;; QUESTION SECTION:

;ejemplo2.com.  IN  A

;; ANSWER SECTION:

ejemplo2.com.  3600  IN  A 93.184.216.35

;; AUTHORITY SECTION:

ejemplo2.com.  3600  IN  NS ns1.ejemplo2.com.

ejemplo2.com.  3600  IN  NS ns2.ejemplo2.com.

;; ADDITIONAL SECTION:

ns1.ejemplo2.com.  3600  IN  A 192.0.2.2

...

;; QUESTION SECTION:

;ejemplo3.com.  IN  A

;; ANSWER SECTION:

ejemplo3.com.  3600  IN  A 93.184.216.36

;; AUTHORITY SECTION:

ejemplo3.com.  3600  IN  NS ns1.ejemplo3.com.

ejemplo3.com.  3600  IN  NS ns2.ejemplo3.com.

;; ADDITIONAL SECTION:

ns1.ejemplo3.com.  3600  IN  A 192.0.2.3

Verificar DNSSEC

Las extensiones de seguridad DNS, o DNSSEC, son un conjunto de protocolos que aseguran el proceso de búsqueda DNS. Garantiza que las respuestas son auténticas y no han sido manipuladas. Verificar DNSSEC ayuda a protegerse contra los ataques de suplantación de DNS.

Para verificar DNSSEC con el comando dig, añade la opción +dnssec:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +dnssec
dig ejemplo.com +dnssec
dig ejemplo.com +dnssec

La salida incluye registros RRSIG en las secciones ANSWER y AUTHORITY:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
...
;; QUESTION SECTION:
;ejemplo.com. IN A
;; ANSWER SECTION:
ejemplo.com. 3600 IN A 93.184.216.34
ejemplo.com. 3600 IN RRSIG A 13 2 3600 (
20240301000000 20240215000000 12345 ejemplo.com.
hT+pV8JZfCh3UOjP4xB1C2YJmtD5efcd )
;; AUTHORITY SECTION:
ejemplo.com. 3600 IN NS ns1.ejemplo.com.
ejemplo.com. 3600 IN NS ns2.ejemplo.com.
ejemplo.com. 3600 IN RRSIG NS 13 2 3600 (
20240301000000 20240215000000 12345 ejemplo.com.
kd9K8vNlF8cD/B8ejq8G8C9Zp7L )
;; ADDITIONAL SECTION:
ns1.ejemplo.com. 3600 IN A 192.0.2.1
ns1.ejemplo.com. 3600 IN RRSIG A 13 2 3600 (
20240301000000 20240215000000 12345 ejemplo.com.
y6R/B9elK5dQ/L5gRk9F4O0aP8g )
...
... ;; QUESTION SECTION: ;ejemplo.com. IN A ;; ANSWER SECTION: ejemplo.com. 3600 IN A 93.184.216.34 ejemplo.com. 3600 IN RRSIG A 13 2 3600 ( 20240301000000 20240215000000 12345 ejemplo.com. hT+pV8JZfCh3UOjP4xB1C2YJmtD5efcd ) ;; AUTHORITY SECTION: ejemplo.com. 3600 IN NS ns1.ejemplo.com. ejemplo.com. 3600 IN NS ns2.ejemplo.com. ejemplo.com. 3600 IN RRSIG NS 13 2 3600 ( 20240301000000 20240215000000 12345 ejemplo.com. kd9K8vNlF8cD/B8ejq8G8C9Zp7L ) ;; ADDITIONAL SECTION: ns1.ejemplo.com. 3600 IN A 192.0.2.1 ns1.ejemplo.com. 3600 IN RRSIG A 13 2 3600 ( 20240301000000 20240215000000 12345 ejemplo.com. y6R/B9elK5dQ/L5gRk9F4O0aP8g ) ...
...

;; QUESTION SECTION:

;ejemplo.com.  IN  A

;; ANSWER SECTION:

ejemplo.com.  3600  IN  A 93.184.216.34

ejemplo.com.  3600  IN  RRSIG  A 13 2 3600 (

20240301000000 20240215000000 12345 ejemplo.com.

hT+pV8JZfCh3UOjP4xB1C2YJmtD5efcd )

;; AUTHORITY SECTION:

ejemplo.com.  3600  IN  NS  ns1.ejemplo.com.

ejemplo.com.  3600  IN  NS  ns2.ejemplo.com.

ejemplo.com.  3600  IN  RRSIG  NS 13 2 3600 (

20240301000000 20240215000000 12345 ejemplo.com.

kd9K8vNlF8cD/B8ejq8G8C9Zp7L )

;; ADDITIONAL SECTION:

ns1.ejemplo.com.  3600  IN  A 192.0.2.1

ns1.ejemplo.com.  3600  IN  RRSIG  A 13 2 3600 (

20240301000000 20240215000000 12345 ejemplo.com.

y6R/B9elK5dQ/L5gRk9F4O0aP8g )

...

Usos prácticos de dig

Una vez que hayas aprendido lo básico, es hora de explorar algunas aplicaciones prácticas del comando dig.

Solución de problemas de DNS

Utilizar el comando dig para diagnosticar problemas de DNS te ayuda a identificar y resolver eficazmente los problemas de la red. A continuación se indican los pasos generales para solucionar problemas de DNS con este comando:

  1. Comprueba la resolución DNS verificando si un nombre de dominio se resuelve correctamente:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com
dig ejemplo.com
dig ejemplo.com
  1. Asegúrate de que los servidores de nombres del dominio están correctamente configurados:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com NS
dig ejemplo.com NS
dig ejemplo.com NS
  1. Identifica dónde puede estar fallando la resolución DNS rastreando toda la ruta de búsqueda DNS:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +trace
dig ejemplo.com +trace
dig ejemplo.com +trace
  1. Comprueba la configuración DNSSEC para ver si están presentes los registros RRSIG:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +dnssec
dig ejemplo.com +dnssec
dig ejemplo.com +dnssec
  1. Asegúrate de que una dirección IP se resuelve con el nombre de dominio correcto:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig -x 93.184.216.34
dig -x 93.184.216.34
dig -x 93.184.216.34
  1. Para arreglar servicios específicos como el correo electrónico, comprueba los registros DNS correspondientes. Por ejemplo:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com MX
dig ejemplo.com MX
dig ejemplo.com MX

Presta atención a cada salida y asegúrate de que las secciones de ANSWER son correctas.

Monitorización de la propagación DNS

Supervisar la propagación DNS implica comprobar el estado de los cambios DNS en diferentes servidores. Garantiza que las actualizaciones de los registros DNS se han propagado correctamente por toda la web.

Sigue estas instrucciones para verificar la propagación del DNS:

  1. Utiliza la opción @server para consultar un servidor DNS concreto, como el servidor DNS público de Google:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig @8.8.8.8 ejemplo.com
dig @8.8.8.8 ejemplo.com
dig @8.8.8.8 ejemplo.com
  1. Consulta diferentes servidores DNS para comparar sus respuestas. Para el servidor de Cloudflare, ejecuta:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig @1.1.1.1 ejemplo.com
dig @1.1.1.1 ejemplo.com
dig @1.1.1.1 ejemplo.com

Si las secciones ANSWER de los distintos servidores coinciden, los cambios DNS se han propagado correctamente. 

En caso contrario, es posible que algunos servidores aún tengan que actualizar sus registros. Puedes comprobar periódicamente el estado de propagación.

Pruebas de rendimiento

Medir los tiempos de respuesta DNS es esencial para evaluar el rendimiento de tus servidores DNS. Esto te permite identificar ralentizaciones o problemas que afectan a la velocidad y fiabilidad de tu red.

He aquí cómo medir los tiempos de respuesta DNS:

  1. Ejecuta el comando básico dig. Fíjate en el campo Query time, que indica el tiempo que se tarda en obtener una respuesta del servidor DNS:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com
dig ejemplo.com
dig ejemplo.com
  1. Consulta diferentes servidores DNS para comparar sus tiempos de respuesta. Esto ayuda a identificar qué servidores funcionan mejor:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig @8.8.8.8 ejemplo.com
dig @1.1.1.1 ejemplo.com
dig @8.8.8.8 ejemplo.com dig @1.1.1.1 ejemplo.com
dig @8.8.8.8 ejemplo.com

dig @1.1.1.1 ejemplo.com
  1. Utiliza la opción +stats para obtener estadísticas adicionales sobre los tiempos de consulta y los detalles del servidor:
Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
dig ejemplo.com +stats
dig ejemplo.com +stats
dig ejemplo.com +stats

Conclusión

En este artículo hemos tratado los usos esenciales del comando dig de Linux, desde las búsquedas DNS fundamentales hasta las consultas más avanzadas y los métodos de resolución de problemas. Además, dominar dig puede mejorar tus habilidades de gestión de red.

Practica los ejemplos de comandos de esta guía para sacar el máximo partido a dig. Experimentar con distintas opciones te permite comprender mejor el funcionamiento interno del DNS y optimizar el rendimiento de la red.

Si tienes alguna pregunta o quieres compartir tu experiencia con los comandos de dig, deja un comentario a continuación.

Comando dig – Preguntas frecuentes

Esperamos que esta guía te haya sido de utilidad. Si tienes algún comentario o pregunta, escríbela en la sección de abajo. ¡Buena suerte!

¿Para qué sirve el comando dig?

El comando dig se utiliza para consultar servidores de nombres DNS. Recupera información DNS sobre numerosos registros, como A, MX y NS, lo que ayuda a diagnosticar y resolver problemas relacionados con la red.

¿Cómo funciona el comando dig?

El comando dig funciona enviando una consulta DNS al servidor especificado. A continuación, muestra la respuesta, que incluye información sobre los registros DNS del dominio consultado, lo que permite a los administradores de red solucionar los problemas.

¿Qué hace el comando dig?

El comando de Linux dig se utiliza habitualmente para realizar búsquedas DNS, consultar tipos de registro específicos, rastrear rutas de resolución DNS, verificar DNSSEC y solucionar problemas de propagación y resolución.

Author
El autor

Deyimar A.

Deyi es una entusiasta del marketing digital, con experiencia en diseño de páginas web, creación de contenido, copywrite y SEO. Forma parte del equipo de SEO & Localization de Hostinger. En su tiempo libre, le gusta desarrollar proyectos, leer un libro o ver una buena película.