Dig (Domain Information Groper) es una poderosa herramienta de línea de comandos para consultar servidores de nombres DNS.
El dig
comando, le permite consultar información sobre varios registros DNS, incluidas direcciones de host, intercambios de correo y servidores de nombres. Es la herramienta más utilizada entre los administradores de sistemas para solucionar problemas de DNS debido a su flexibilidad y facilidad de uso.
Este tutorial explica cómo usar el dig
utilidad a través de ejemplos prácticos y explicaciones detalladas de los dig
más comunes opciones.
Instalando dig
#
Para comprobar si dig
el comando está disponible en su tipo de sistema:
dig -v
La salida debería verse así:
DiG 9.11.3-1ubuntu1.1-Ubuntu
Si dig
no está presente en su sistema, el comando anterior imprimirá "dig:comando no encontrado". El dig
La herramienta se puede instalar usando el administrador de paquetes de la distribución.
Instalar dig
en Ubuntu y Debian #
sudo apt update && sudo apt install dnsutils
Instalar dig
en CentOS y Fedora #
sudo yum install bind-utils
Instalar dig
en Arch Linux #
sudo pacman -S bind-tools
Comprender la dig
Salida #
En su forma más simple, cuando se utiliza para consultar un solo host (dominio) sin ninguna opción adicional, el dig
el comando es bastante detallado.
En el siguiente ejemplo, estamos actuando en linux.org
dominio:
dig linux.org
La salida debería verse así:
Vayamos sección por sección y expliquemos el resultado del dig
comando:
-
La primera línea de la salida imprime el
dig
instalado versión y el nombre de dominio consultado. La segunda línea muestra las opciones globales (por defecto, solo cmd).; <<>> DiG 9.13.3 <<>> linux.org ;; global options: +cmd
Si no desea que esas líneas se incluyan en la salida, use
+nocmd
opción. Esta opción debe ser la primera después dedig
comando. -
La siguiente sección incluye detalles técnicos sobre la respuesta recibida de la autoridad solicitada (servidor DNS). El encabezado muestra el código de operación (la acción realizada por
dig
) y el estado de la acción. En este ejemplo, el estado esNOERROR
, lo que significa que la autoridad solicitada entregó la consulta sin ningún problema.;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37159 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 5
Esta sección se puede eliminar usando
+nocomments
opción, que también deshabilita los encabezados de algunas otras secciones. -
La pseudosección "OPT" solo se muestra en las versiones más recientes de
dig
utilidad. Puede leer más sobre los mecanismos de extensión para DNS (EDNS) aquí.;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096
Para excluir esta sección de la salida, use
+noedns
opción. -
En la sección "PREGUNTA"
dig
muestra la consulta (pregunta). De forma predeterminada,dig
solicita el registro A.;; QUESTION SECTION: ;linux.org. IN A
Puede deshabilitar esta sección usando
+noquestion
opción. -
La sección “RESPUESTA” nos proporciona una respuesta a nuestra pregunta. Como ya mencionamos, por defecto
dig
solicitará el registro A. Aquí podemos ver que el dominiolinux.org
apunta al104.18.59.123
dirección IP.;; ANSWER SECTION: linux.org. 300 IN A 104.18.59.123 linux.org. 300 IN A 104.18.58.123
Por lo general, no desea desactivar la respuesta, pero puede eliminar esta sección de la salida usando
+noanswer
opción. -
La sección "AUTORIDAD" nos dice qué servidor(es) tienen la autoridad para responder consultas de DNS sobre el dominio consultado.
;; AUTHORITY SECTION: linux.org. 86379 IN NS lia.ns.cloudflare.com. linux.org. 86379 IN NS mark.ns.cloudflare.com.
Puede deshabilitar esta sección de la salida usando
+noauthority
opción. -
La sección "ADICIONAL" nos brinda información sobre las direcciones IP de los servidores DNS autorizados que se muestran en la sección de autoridad.
;; ADDITIONAL SECTION: lia.ns.cloudflare.com. 84354 IN A 173.245.58.185 lia.ns.cloudflare.com. 170762 IN AAAA 2400:cb00:2049:1::adf5:3ab9 mark.ns.cloudflare.com. 170734 IN A 173.245.59.130 mark.ns.cloudflare.com. 170734 IN AAAA 2400:cb00:2049:1::adf5:3b82
El
+noadditional
opción desactiva la sección adicional de una respuesta. -
La última sección de la
dig
la salida incluye estadísticas sobre la consulta.;; Query time: 58 msec ;; SERVER: 192.168.1.1#53(192.168.1.1) ;; WHEN: Fri Oct 12 11:46:46 CEST 2018 ;; MSG SIZE rcvd: 212
Puede deshabilitar esta parte con
+nostats
opción.
Imprimir solo el número de respuesta
En general, le gustaría obtener solo una respuesta breve a su dig
consulta.
1. Obtenga una respuesta corta #
Para obtener una respuesta breve a su consulta, use +short
opción:
dig linux.org +short
104.18.59.123
104.18.58.123
La salida incluirá solo las direcciones IP del registro A.
2. Obtenga una respuesta detallada #
Para obtener una respuesta más detallada, apague todos los resultados usando +noall
opciones y luego active solo la sección de respuesta con +answer
opción.
dig linux.org +noall +answer
; <<>> DiG 9.13.3 <<>> linux.org +noall +answer
;; global options: +cmd
linux.org. 67 IN A 104.18.58.123
linux.org. 67 IN A 104.18.59.123
Servidor de nombre específico de consulta #
De forma predeterminada, si no se especifica ningún servidor de nombres, dig
utiliza los servidores enumerados en /etc/resolv.conf
archivo.
Para especificar un servidor de nombres en el que se ejecutará la consulta, utilice @
(arroba) seguido de la dirección IP o el nombre de host del servidor de nombres.
Por ejemplo, para consultar el servidor de nombres de Google (8.8.8.8) para obtener información sobre linux.org
dominio que usaría:
dig linux.org @8.8.8.8
; <<>> DiG 9.13.3 <<>> linux.org @8.8.8.8
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39110
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;linux.org. IN A
;; ANSWER SECTION:
linux.org. 299 IN A 104.18.58.123
linux.org. 299 IN A 104.18.59.123
;; Query time: 54 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 12 14:28:01 CEST 2018
;; MSG SIZE rcvd: 70
Consultar un Tipo de Registro #
Dig le permite realizar cualquier consulta de DNS válida agregando el tipo de registro al final de la consulta. En la siguiente sección, le mostraremos ejemplos de cómo buscar los registros más comunes, como A (la dirección IP), CNAME (nombre canónico), TXT (registro de texto), MX (intercambiador de correo) y NS ( servidores de nombres).
1. Consultando registros A #
Para obtener una lista de todas las direcciones de un nombre de dominio, use el a
opción:
dig +nocmd google.com a +noall +answer
google.com. 128 IN A 216.58.206.206
Como ya sabe, si no se especifica ningún tipo de registro DNS, dig
solicitará el registro A. También puede consultar el registro A sin especificar el a
opción.
2. Consultando registros CNAME #
Para encontrar el nombre de dominio de alias, use cname
opción:
dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 553482 IN CNAME googlemail.l.google.com.
3. Consultando registros TXT #
Usa el txt
opción para recuperar todos los registros TXT de un dominio específico:
dig +nocmd google.com txt +noall +answer
google.com. 300 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 300 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
4. Consultando registros MX #
Para obtener una lista de todos los servidores de correo para un dominio específico, use el mx
opción:
dig +nocmd google.com mx +noall +answer
google.com. 494 IN MX 30 alt2.aspmx.l.google.com.
google.com. 494 IN MX 10 aspmx.l.google.com.
google.com. 494 IN MX 40 alt3.aspmx.l.google.com.
google.com. 494 IN MX 50 alt4.aspmx.l.google.com.
google.com. 494 IN MX 20 alt1.aspmx.l.google.com.
5. Consultando registros NS #
Para encontrar los servidores de nombres autorizados para nuestro dominio específico, use ns
opción:
dig +nocmd google.com ns +noall +answer
google.com. 84527 IN NS ns1.google.com.
google.com. 84527 IN NS ns2.google.com.
google.com. 84527 IN NS ns4.google.com.
google.com. 84527 IN NS ns3.google.com.
6. Consultando todos los registros #
Usa el any
opción para obtener una lista de todos los registros DNS para un dominio específico:
dig +nocmd google.com any +noall +answer
google.com. 299 IN A 216.58.212.14
google.com. 299 IN AAAA 2a00:1450:4017:804::200e
google.com. 21599 IN NS ns2.google.com.
google.com. 21599 IN NS ns1.google.com.
google.com. 599 IN MX 30 alt2.aspmx.l.google.com.
google.com. 21599 IN NS ns4.google.com.
google.com. 599 IN MX 50 alt4.aspmx.l.google.com.
google.com. 599 IN MX 20 alt1.aspmx.l.google.com.
google.com. 299 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
google.com. 21599 IN CAA 0 issue "pki.goog"
google.com. 599 IN MX 40 alt3.aspmx.l.google.com.
google.com. 3599 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com. 21599 IN NS ns3.google.com.
google.com. 599 IN MX 10 aspmx.l.google.com.
google.com. 3599 IN TXT "v=spf1 include:_spf.google.com ~all"
google.com. 59 IN SOA ns1.google.com. dns-admin.google.com. 216967258 900 900 1800 60
Búsqueda inversa de DNS #
Para consultar el nombre de host asociado con una dirección IP específica, use -x
opción.
Por ejemplo, para realizar una búsqueda inversa en 208.118.235.148
escribirías:
dig -x 208.118.235.148 +noall +answer
Como puede ver en la salida debajo de la dirección IP 208.118.235.148
está asociado con el nombre de host wildebeest.gnu.org
.
; <<>> DiG 9.13.3 <<>> -x 208.118.235.148 +noall +answer
;; global options: +cmd
148.235.118.208.in-addr.arpa. 245 IN PTR wildebeest.gnu.org.
Consultas masivas #
Si desea consultar una gran cantidad de dominios, puede agregarlos en un archivo (un dominio por línea) y usar -f
opción seguida del nombre del archivo.
En el siguiente ejemplo, consultamos los dominios enumerados en domains.txt
archivo.
lxer.com
linuxtoday.com
tuxmachines.org
dig -f domains.txt +short
108.166.170.171
70.42.23.121
204.68.122.43
El archivo .digrc #
El dig
El comportamiento del comando se puede controlar configurando opciones por usuario en el ${HOME}/.digrc
archivo.
Si el .digrc
está presente en el directorio de inicio del usuario, las opciones especificadas en él se aplican antes de los argumentos de la línea de comando.
Por ejemplo, si desea mostrar solo la sección de respuestas, abra su editor de texto y cree el siguiente ~/.digrc
archivo:
+nocmd +noall +answer
Conclusión #
dig
es una herramienta de línea de comandos para consultar información de DNS y solucionar problemas relacionados con DNS.
Si tiene alguna pregunta o comentario, no dude en dejar un comentario.