Cómo obtener información sobre registros DNS (búsqueda de DNS) con Dig en Linux

27 feb 2021 8 min di lettura
Cómo obtener información sobre registros DNS (búsqueda de DNS) con Dig en Linux
Indice dei contenuti

Introducción

Dig (Domain Information Groper) es una poderosa herramienta de línea de comandos para consultar servidores de nombres DNS.

Con el dig, puede solicitar información sobre varios registros DNS, incluidas direcciones de host, intercambios de correo y servidores de nombres. Es la herramienta más utilizada por los administradores de sistemas para la resolución de problemas de DNS debido a su flexibilidad y facilidad de uso.

En este tutorial, le mostraremos cómo utilizar la dig través de ejemplos prácticos y explicaciones detalladas de las dig

Instalar Dig

Para comprobar si el dig 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 imprime "dig: comando no encontrado". Puede instalar fácilmente la dig utilizando el administrador de paquetes de su distribución.

Instale dig en Ubuntu y Debian

sudo apt update && sudo apt install dnsutils

Instale dig en CentOS y Fedora

sudo yum install bind-utils

Instalar dig en Arch Linux

sudo pacman -S bind-tools

Comprender el resultado de la excavación

En su forma más simple, cuando se usa para consultar un solo host (dominio) sin más argumentos, el comando dig es bastante detallado.

En el siguiente ejemplo, ejecutaremos una consulta para recuperar información sobre el dominio linux.org

dig linux.org

La salida debería verse así:


; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> linux.org
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30498
 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

 ;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 65494
 ;; QUESTION SECTION:
 ;linux.org. IN A

 ;; ANSWER SECTION:
 linux.org. 300 IN A 104.27.167.219
 linux.org. 300 IN A 104.27.166.219

 ;; Query time: 34 msec
 ;; SERVER: 127.0.0.53#53(127.0.0.53)
 ;; WHEN: Fri Jan 10 14:24:19 CET 2020
 ;; MSG SIZE rcvd: 70

Vamos sección por sección y explicamos la salida del comando dig

La primera línea de la salida imprime la versión instalada de dig y la consulta invocada. La segunda línea muestra las opciones globales (por defecto, solo cmd).

; <<>> DiG 9.13.3 <<>> linux.org
 ;; global options: +cmd

Si no desea incluir esas líneas en la salida, use la opción +nocmd Esta opción debe ser la primera después del comando de dig

La primera sección incluye detalles técnicos sobre la respuesta recibida de la autoridad requerida (servidor DNS). El encabezado muestra el código de operación (la acción realizada por la excavación) y el estado de la acción. En este ejemplo, el estado es NOERROR, lo que significa que la autoridad solicitada atendió la consulta sin problemas.

;; 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 la +nocomments, que también deshabilita los títulos de algunas otras secciones.

La pseudo sección "OPT " se muestra de forma predeterminada solo en las versiones más recientes de la utilidad dig. Puede leer más sobre los mecanismos de extensión de DNS (EDNS) aquí.

;; OPT PSEUDOSECTION:
 ; EDNS: version: 0, flags:; udp: 4096

Si no desea incluir esta sección en la salida, use la opción +noedns

En la sección "PREGUNTA " dig muestra nuestra pregunta de consulta (pregunta). De forma predeterminada, dig requiere el registro A.

;; QUESTION SECTION:
 ;linux.org. IN A

Puede deshabilitar esta sección usando la opción +noquestion

La sección "RESPUESTA" nos proporciona una respuesta a nuestra pregunta. Como ya se mencionó, por defecto dig pedirá el registro A. Aquí, el linux.org apunta a la dirección IP 104.18.59.123.

;; 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 utilizando la opción +noanswer

La sección "AUTORIDAD" nos dice qué servidores son los principales, para responder preguntas de DNS sobre el dominio solicitado.

;; 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 utilizando la opción +noauthority

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

La +noadditional desactiva la sección adicional de una respuesta.

La última sección de la salida de excavación incluye estadísticas de consultas.

;; Query time: 22 msec
 ;; SERVER: 127.0.0.53#53(127.0.0.53)
 ;; WHEN: Fri Jan 10 14:30:24 CET 2020
 ;; MSG SIZE rcvd: 70

Puede desactivar esta parte con la opción +nostats

Imprime solo la respuesta

En la mayoría de los casos, solo desea obtener una respuesta rápida a la consulta de excavación.

Obtén una respuesta corta

Para obtener una respuesta breve a su pregunta, utilice la opción +short

dig linux.org +short
104.18.59.123
 104.18.58.123

La salida incluirá solo las direcciones IP del registro A.

Obtenga una respuesta detallada

Para obtener una respuesta más detallada, desactive todos los resultados con las +noall y luego active solo la sección de respuestas con la opción +answer

dig linux.org +noall +answer
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> linux.org +noall +answer
 ;; global options: +cmd
 linux.org. 300 IN A 104.27.167.219
 linux.org. 300 IN A 104.27.166.219

Servidor de nombres específico de la consulta

De forma predeterminada, si no se especifican servidores de nombres, dig usa los servidores enumerados en el archivo /etc/resolv.conf

Para especificar un servidor de nombres en el que se realizará la consulta, utilice el @ (arroba) seguido de la dirección IP o el nombre de host del servidor de nombres.

Por ejemplo, para consultar el nombre del servidor de Google (8.8.8.8) para obtener información sobre el linux.org, utilice:

dig linux.org @8.8.8.8
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> linux.org @8.8.8.8
 ;; global options: +cmd
 ;; Got answer:
 ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54855
 ;; 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.27.167.219
 linux.org. 299 IN A 104.27.166.219

 ;; Query time: 34 msec
 ;; SERVER: 8.8.8.8#53(8.8.8.8)
 ;; WHEN: Fri Jan 10 14:40:41 CET 2020
 ;; MSG SIZE rcvd: 70

Consultar un tipo de registro

Dig le permite realizar cualquier consulta 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 (dirección IP), CNAME (nombre canónico), TXT (registro de texto), MX (intercambiador de correo) y NS (servidor de nombres).

Solicitud de registros A

Para obtener una lista de todas las direcciones de un nombre de dominio, use la opción a:

dig +nocmd google.com a +noall +answer
google.com. 299 IN A 172.217.16.174

Como ya sabe, si se especifica algún tipo de registro DNS, excavar requerirá el registro A. También puede consultar en el registro sin especificar la opción a.

Solicitud de registros CNAME

Para encontrar el nombre de dominio de alias use la opción cname

dig +nocmd mail.google.com cname +noall +answer
mail.google.com. 601626 IN CNAME googlemail.l.google.com.

Solicitud de registros TXT

Utilice la txt para recuperar todos los registros TXT de un dominio específico:

dig +nocmd google.com txt +noall +answer
google.com. 3600 IN TXT "v=spf1 include:_spf.google.com ~all"
 google.com. 300 IN TXT "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
 google.com. 3600 IN TXT "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
 google.com. 300 IN TXT "docusign=05958488-4752-4ef2-95eb-aa7ba8a3bd0e"
 google.com. 3600 IN TXT "globalsign-smime-dv=CDYX+XFHUw2wml6/Gb8+59BsH31KzUr6c1l2BPvqKX8="

Solicitud de registros MX

Para obtener una lista de todos los servidores de correo para un dominio específico, use la opción mx

dig +nocmd google.com mx +noall +answer
google.com. 491 IN MX 50 alt4.aspmx.l.google.com.
 google.com. 491 IN MX 30 alt2.aspmx.l.google.com.
 google.com. 491 IN MX 40 alt3.aspmx.l.google.com.
 google.com. 491 IN MX 20 alt1.aspmx.l.google.com.
 google.com. 491 IN MX 10 aspmx.l.google.com.

Solicitud de registros NS

Para encontrar nombres de servidor autorizados para nuestro dominio específico, use la opción ns

dig +nocmd google.com ns +noall +answer
google.com. 343727 IN NS ns2.google.com.
 google.com. 343727 IN NS ns3.google.com.
 google.com. 343727 IN NS ns4.google.com.
 google.com. 343727 IN NS ns1.google.com.

Solicitar todos los registros

Utilice la any para obtener una lista de todos los registros DNS de un dominio específico:

dig +nocmd google.com any +noall +answer
google.com. 172 IN A 172.217.16.174
 google.com. 115 IN AAAA 2a00:1450:4001:814::200e
 google.com. 431 IN MX 40 alt3.aspmx.l.google.com.
 google.com. 431 IN MX 20 alt1.aspmx.l.google.com.
 google.com. 431 IN MX 10 aspmx.l.google.com.
 google.com. 431 IN MX 50 alt4.aspmx.l.google.com.
 google.com. 431 IN MX 30 alt2.aspmx.l.google.com.
 google.com. 57 IN SOA ns1.google.com. dns-admin.google.com. 288864427 900 900 1800 60
 google.com. 343707 IN NS ns3.google.com.
 google.com. 343707 IN NS ns4.google.com.
 google.com. 343707 IN NS ns1.google.com.
 google.com. 343707 IN NS ns2.google.com.

Búsqueda de DNS inversa

Para consultar el nombre de host asociado con una dirección IP específica, use la opción -x

Por ejemplo, para realizar una búsqueda inversa en 149.20.4.15, deberá utilizar:

dig -x 149.20.4.15 +noall +answer

Como puede ver en el resultado a continuación, la dirección IP 149.20.4.15 está asociada con el nombre de host mirror-isc3.debian.org.

; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> -x 149.20.4.15 +noall +answer
 ;; global options: +cmd
 15.4.20.149.in-addr.arpa. 3600 IN PTR mirror-isc3.debian.org.

Búsquedas masivas

Si desea consultar una gran cantidad de dominios, puede agregarlos a un archivo (un dominio por línea) y usar la -f seguida del nombre del archivo.

En el siguiente ejemplo, estamos consultando los dominios enumerados en el archivo domains.txt

Cree el archivo domains.txt:

nano domains.txt

Ingrese una lista de dominios, por ejemplo:

ubuntu.org
 debian.org
 google.com

Escriba el siguiente comando de terminal:

dig -f domains.txt +short

Debería recibir un resultado similar al siguiente:

69.16.230.42
 130.89.148.77
 128.31.0.62
 149.20.4.15
 172.217.16.174
 b.root-servers.net.
 c.root-servers.net.
 d.root-servers.net.
 e.root-servers.net.
 f.root-servers.net.
 g.root-servers.net.
 h.root-servers.net.
 i.root-servers.net.
 a.root-servers.net.
 j.root-servers.net.
 k.root-servers.net.
 l.root-servers.net.
 m.root-servers.net.

El archivo.digrc

El comportamiento del comando dig se puede controlar configurando las opciones por usuario en el ${HOME}/.digrc.

Si el .digrc existe en el directorio de inicio del usuario, las opciones especificadas se aplican antes de los argumentos de la línea de comandos.

Por ejemplo, si solo desea ver la sección de respuestas, abra el editor de texto y cree el siguiente archivo ~/.digrc

nano ~/.digrc

Pega los siguientes parámetros

+nocmd +noall +answer

Cuando vuelva a ejecutar el comando dig, leerá los parámetros establecidos en el archivo de configuración recién creado antes de ejecutar el comando.

Conclusión

dig es una herramienta de línea de comandos para consultar información de DNS y solucionar problemas de DNS.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.