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.
Tabla de Contenidos
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.
Aquí tienes los comandos para instalar dig en diferentes distribuciones Linux, todas ellas disponibles en los planes VPS de Hostinger.
Debian y Ubuntu
sudo apt-get update sudo apt-get install dnsutils
CentOS
sudo yum install bind-utils
Fedora
sudo dnf install bind-utils
Arch Linux
sudo pacman -S bind
Después, verifica que dig está instalado correctamente comprobando su versión:
dig -v
El resultado debería ser algo parecido a esto:
DiG 9.16.1-Ubuntu
Sintaxis del comando dig
La sintaxis básica del comando dig es la siguiente:
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:
dig ejemplo.com
Este es el resultado esperado:
; <<>> 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:
dig @8.8.8.8 ejemplo.com +short +trace
Cuando se ejecuta, muestra lo siguiente:
; <<>> 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.
dig ejemplo.com SOA
Este es el resultado que deberías ver:
... ;; 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.
dig ejemplo.com MX
Al ejecutar el comando anterior se mostrará lo siguiente:
... ;; 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.
dig ejemplo.com NS
Este comando mostrará una salida similar a:
... ;; 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.
dig @8.8.8.8 ejemplo.com
Este es el resultado:
... ;; 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.
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:
dig ejemplo.com +trace
La salida dig muestra los servidores DNS implicados en cada paso:
. 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:
dig ejemplo.com +noall +answer
Esto proporciona un resultado limpio y conciso que sólo muestra la dirección IP del dominio consultado:
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:
dig ejemplo.com +short
Deberías ver la siguiente salida:
93.184.216.34
Usar +multi
Como su nombre indica, +multi muestra varios registros en un formato más legible:
dig ejemplo.com +multi
Este es el resultado:
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:
dig ejemplo.com +nocmd
Cuando se ejecuta, aparece:
;; 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:
dig ejemplo.com +nocmd +noall +answer +nocomments
El comando anterior mostrará:
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:
dig -x 93.184.216.34
Verás una salida similar a:
... ;; 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:
- Crea un archivo llamado dominios.txt o con el nombre que prefieras utilizando el editor de texto nano:
nano dominios.txt
- Añade las direcciones IP o los dominios que quieras consultar, uno por línea:
ejemplo1.com ejemplo2.com ejemplo3.com
- Guarda tus modificaciones y sal de nano pulsando Ctrl + X → Y → Intro.
- Ejecuta dig con la opción -f seguida del nombre de tu archivo:
dig -f dominios.txt
Cuando se ejecuta, el comando muestra:
... ;; 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:
dig ejemplo.com +dnssec
La salida incluye registros RRSIG en las secciones ANSWER y AUTHORITY:
... ;; 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:
- Comprueba la resolución DNS verificando si un nombre de dominio se resuelve correctamente:
dig ejemplo.com
- Asegúrate de que los servidores de nombres del dominio están correctamente configurados:
dig ejemplo.com NS
- Identifica dónde puede estar fallando la resolución DNS rastreando toda la ruta de búsqueda DNS:
dig ejemplo.com +trace
- Comprueba la configuración DNSSEC para ver si están presentes los registros RRSIG:
dig ejemplo.com +dnssec
- Asegúrate de que una dirección IP se resuelve con el nombre de dominio correcto:
dig -x 93.184.216.34
- Para arreglar servicios específicos como el correo electrónico, comprueba los registros DNS correspondientes. Por ejemplo:
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:
- Utiliza la opción @server para consultar un servidor DNS concreto, como el servidor DNS público de Google:
dig @8.8.8.8 ejemplo.com
- Consulta diferentes servidores DNS para comparar sus respuestas. Para el servidor de Cloudflare, ejecuta:
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:
- 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:
dig ejemplo.com
- Consulta diferentes servidores DNS para comparar sus tiempos de respuesta. Esto ayuda a identificar qué servidores funcionan mejor:
dig @8.8.8.8 ejemplo.com dig @1.1.1.1 ejemplo.com
- Utiliza la opción +stats para obtener estadísticas adicionales sobre los tiempos de consulta y los detalles del servidor:
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.
Aprende más sobre comandos y procesos Linux
Comando Sudo y archivo Sudoers
Comando Kill
Comando Ping
Cómo administrar procesos en Linux
Cómo listar servicios en Linux
Cómo cambiar las contraseñas de usuario en Linux
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.