Cómo utilizar el comando Dig en Linux (10 ejemplos)

Dig realiza búsquedas de DNS y muestra las respuestas que se devuelven desde los servidores de nombres que se consultaron. Dig es la forma abreviada de «Domain Information Groper».
Esta herramienta es una herramienta de búsqueda de DNS alternativa, nslookup. A menos que se le indique que consulte un servidor de nombres específico, dig probará cada uno de los servidores enumerados en ‘/etc/resolv.conf’.
En el tutorial, explicaré cómo usar el comando dig en Linux con ejemplos.
comando de excavación
Ejecutar excavar sin opciones (por defecto)
Sin ninguna opción, dig hará una consulta NS para «.» (la raíz).
Aquí hay una salida de muestra.
$ dig
; <> DiG 9.9.2-P1 <> linux.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;linux.com. IN A ;; ANSWER SECTION: linux.com. 1786 IN A 140.211.167.51 linux.com. 1786 IN A 140.211.167.50 ;; AUTHORITY SECTION: linux.com. 86386 IN NS ns1.linux-foundation.org. linux.com. 86386 IN NS ns2.linux-foundation.org. ;; ADDITIONAL SECTION: ns1.linux-foundation.org. 261 IN A 140.211.169.10 ns2.linux-foundation.org. 262 IN A 140.211.169.11 ;; Query time: 258 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Sat Feb 8 21:35:35 2014 ;; MSG SIZE rcvd: 158
Ahora leeremos el resultado:
; <> DiG 9.9.2-P1 <> linux.com ;; global options: +cmd
Esta sección nos habla sobre la excavación en sí. Sabemos que la versión de excavación que usamos es 9.9.2 y la opción global que usamos es + cmd.
;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21655 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 3
Esta sección nos informará sobre la respuesta técnica del DNS.
;; QUESTION SECTION: ;linux.com. IN A
Esta sección nos informa sobre qué consulta pedimos excavar
.;; ANSWER SECTION: linux.com. 1786 IN A 140.211.167.51 linux.com. 1786 IN A 140.211.167.50
Esta sección nos informa sobre la respuesta a la consulta que hicimos. ‘Linux.com’ tiene dos direcciones. Las IP 140.211.167.51 y 140.211.167.50.
;; AUTHORITY SECTION: linux.com. 86386 IN NS ns1.linux-foundation.org. linux.com. 86386 IN NS ns2.linux-foundation.org.
Esta sección nos dice qué DNS (o quién) tiene la autoridad para responder la pregunta de «¿cuál es la dirección IP de Linux.com?»
;; ADDITIONAL SECTION: ns1.linux-foundation.org. 261 IN A 140.211.169.10 ns2.linux-foundation.org. 262 IN A 140.211.169.11
Esta sección nos informa sobre la dirección IP de la autoridad DNS anterior. Podemos deshabilitar esta información por +[no]opcion adicional.
;; Query time: 258 msec ;; SERVER: 127.0.1.1#53(127.0.1.1) ;; WHEN: Sat Feb 8 21:35:35 2014 ;; MSG SIZE rcvd: 158
Esta sección nos brinda información estadística. Podemos deshabilitar esta información usando +[‘no]opción de estadísticas.
Consulta de comando de excavación (más común)
Las páginas del manual de excavación le mostrarán muchas consultas válidas. Pero en términos prácticos, hay 5 consultas comunes.
1) Consultar el NS
NS es la abreviatura de Name Server. Esto le mostrará el nombre del servidor responsable del dominio linux.com
$ dig linux.com NS
2) Consultar el MX
MX es la abreviatura de Mail Exchanger. Consultando MX le mostrará el nombre de SMTP de linux.com
$ dig linux.com MX
3) Consultar la dirección
Para mostrar la dirección IP de linux.com, podemos usar A palabra clave. A es una abreviatura de Dirección
$ dig linux.com A
4) Consultar TXT
TXT es una anotación de texto.
$ dig linux.com TXT
5) Consultar todo
Si no está seguro de lo que está buscando, puede ALGUNA palabra clave.
Opciones de consulta del comando Dig
Al ejecutar una consulta, dig proporciona opciones para personalizar la salida. Aquí hay algunos casos populares a diario.
6) Mostrar solo la respuesta de la consulta
$ dig linux.com +noall +answer
7) Muestra la respuesta y la pregunta.
$ dig ubuntu.com MX +noall +answer +question
8) Visualización en modo corto
Esta opción se utilizará si desea una respuesta rápida.
$ dig linux.com +short
9) Muestra solo la respuesta y la autoridad
Para ello podemos combinar estas opciones:
$ dig ubuntu.com MX +noall +answer +authority
10) Mostrar consultas de varias líneas
Esta + multilínea La opción le mostrará registros como los registros SOA en un formato detallado de varias líneas con comentarios legibles por humanos. Aquí tienes una muestra.
$ dig ibm.com +multiline +noall +answer
Hacer una búsqueda inversa
Dig no es solo para consultar un nombre en una dirección IP. Dig puede hacer una búsqueda inversa que consulta la dirección IP en un nombre. Para hacer esto, use -X opción.
$ dig -x 140.211.167.51 +noall +answer
El resultado nos muestra que la IP ‘140.211.167.51’ pertenece a ‘load2d.linux-foundation.org’
Utilice un DNS específico para realizar la consulta
De forma predeterminada, dig utilizará los servidores DNS definidos en su /etc/resolv.conf
Si desea utilizar otro servidor DNS para realizar su consulta, puede utilizar la palabra clave @name_of_DNS_server. Aquí tienes una muestra.
$ dig @ns2.google.com gmail.com +nostat
Hacer búsquedas masivas
Para hacer esto, podemos hacerlo de 2 formas. Primero, está usando la línea de comando.
$ dig linux.com +noall +answer ubuntu.com +noall +answer
Segundo, podemos poner los nombres de host o dominios en un archivo de texto. Entonces usa -F opción para incluir el archivo.
$ dig -f hostnames.txt +noall +answer
El archivo hostnames.txt contiene estas líneas:
linux.com ubuntu.com
Si existiera una línea en blanco después de ubuntu.com, dig consultará el NS para el «.» (raíz) también.
Conclusión
Dig es una de las herramientas disponibles en el sistema operativo Linux para interrogar a los servidores DNS. Con flexibilidad de excavación, los administradores pueden usarlo para personalizar la salida de excavación. Como de costumbre, siempre podemos escribir man dig o dig -h para explorar más detalles sobre el comando dig.