Cómo usar el comando dig en Linux

Analicemos esa pieza por pieza.

; > DiG 9.11.3-1ubuntu1.11-Ubuntu> howtogeek.com ;; opciones globales: + cmd ;; Tengo respuesta: ;; – >> ENCABEZADO

Ahora, esto es lo que significa todo eso:

Primera línea: la versión de dig y el dominio que se consultó.
Opciones globales: como veremos, puede usar excavar para consultar varios dominios simultáneamente. Esta línea muestra las opciones que se han aplicado a todas las consultas de dominio. En nuestro ejemplo simple, era solo la opción predeterminada + cmd (comando).
Opcode: Query: Este es el tipo de operación que se solicitó que, en este caso, fue una consulta. Este valor también puede ser un problema para una consulta inversa o estado si solo está probando el estado del sistema DNS.
Estado: Noerror: No hubo errores y la solicitud se resolvió correctamente.
ID: 12017: este ID aleatorio une la solicitud y la respuesta.
Indicadores: qr rd ra: significan consulta, recursividad deseada y recursividad disponible. La recursividad es una forma de búsqueda de DNS (la otra es iterativa). También puede ver AA, que significa Respuesta autorizada, lo que significa que un Servidor de nombres autorizado proporcionó la respuesta.
Consulta: 1: el número de consultas en esta sesión, que fue una.
Respuesta: 4: el número de respuestas en esta respuesta, que es cuatro.
Autoridad: 0: el número de respuestas que provienen de un servidor de nombres autorizado, que fue cero en este caso. La respuesta fue devuelta desde la caché de un servidor precursor de DNS. No habrá una sección autorizada en la respuesta.
Adicional: 1: Hay una pieza de información adicional. (Curiosamente, no se incluye nada a menos que este valor sea dos o más).

Optar pseudosección

A continuación, vemos lo siguiente en la pseudosección Opt:

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

Analicemos eso:

EDNS: versión 0: la versión de Sistema de extensión para DNS que se está utilizando. EDNS transmite datos extendidos y banderas ampliando el tamaño del Protocolo de datagramas de usuario (UDP) paquetes. Esto se indica mediante una bandera de tamaño variable.
banderas: No hay banderas en uso.
udp: 4096: el tamaño del paquete UDP.

Sección de preguntas

En la sección Pregunta, vemos lo siguiente:

;; QUESTION SECTION:
;howtogeek.com. IN A

Esto es lo que esto significa:

howtogeek.com: el nombre de dominio que estamos consultando.
IN: Estamos haciendo una consulta de clase de Internet.
R: A menos que especifiquemos lo contrario, dig solicitará un registro A (dirección) del servidor DNS.

Sección de respuesta

La sección Respuesta contiene las siguientes cuatro respuestas que recibimos del servidor DNS:

howtogeek.com. 3551 IN A 151.101.194.217
howtogeek.com. 3551 IN A 151.101.130.217
howtogeek.com. 3551 IN A 151.101.66.217
howtogeek.com. 3551 IN A 151.101.2.217

Esto es lo que significan estas respuestas:

  Cómo enlazar los botones del controlador en Retroarch en Linux

3551: este es el tiempo de vida (TTL), un entero de 32 bits con signo que contiene el intervalo de tiempo durante el cual se puede almacenar en caché un registro. Cuando caduca, los datos deben utilizarse en una respuesta a una solicitud hasta que el servidor DNS los actualice.
IN: Hicimos una consulta de clase de Internet.
R: Solicitamos un registro A del servidor DNS.

Sección de estadísticas

Estadísticas es la sección final y contiene la siguiente información:

;; Query time: 0 msec 
;; SERVER: 127.0.0.53#53(127.0.0.53) 
;; WHEN: Sun Mar 22 07:44:37 EDT 2020 
;; MSG SIZE rcvd: 106

Esto es lo que tenemos:

Tiempo de consulta: 0 mseg: el tiempo que se tardó en obtener la respuesta.
SERVIDOR: 127.0.0.53 # 53 (127.0.0.53): La dirección IP y el número de puerto del servidor DNS que respondió. En este caso, apunta al solucionador de stub de almacenamiento en caché local. Esto reenvía las solicitudes de DNS a los servidores DNS ascendentes que estén configurados. En la computadora de prueba de Manajro, la dirección que aparece aquí era 8.8.8.8 # 53, que es Servicio de DNS público de Google.
CUÁNDO: Dom 22 de marzo 07:44:37 EDT 2020: Cuándo se realizó la solicitud.
MSG SIZE rcvd: 106: El tamaño del mensaje recibido del servidor DNS.

Ser selectivo

No tienes que conformarte con los dos extremos de los labios apretados y los locuaces. El comando excavar le permite incluir o excluir selectivamente secciones de los resultados.

Las siguientes opciones de consulta eliminarán esa sección de los resultados:

+ nocomments: no mostrar líneas de comentarios.
+ noauthority: No muestre la sección de autoridad.
+ noadditional: no muestra la sección adicional.
+ nostats: No mostrar la sección de estadísticas.
+ noanswer: No muestra la sección de respuestas.
+ noall: ¡No muestres nada!

La opción de consulta + noall se suele combinar con una de las anteriores para incluir una sección en los resultados. Entonces, en lugar de escribir una larga cadena de opciones de consulta para desactivar múltiples secciones, puede usar + noall para desactivarlas todas.

Luego, puede usar las siguientes opciones de consulta inclusiva para volver a activar aquellas que desea ver:

+ comentarios: muestra líneas de comentarios.
+ autoridad: Muestra la sección de autoridad.
+ adicional: muestra la sección adicional.
+ estadísticas: muestra la sección de estadísticas.
+ respuesta: muestra la sección de respuestas.
+ todo: muestra todo.

Escribimos lo siguiente para realizar una solicitud y excluir las líneas de comentarios:

dig howtogeek.com +nocomments

los

Si usamos la opción de consulta + noall por sí sola, como se muestra a continuación, no obtendremos ningún resultado útil:

dig howtogeek.com +noall

los

Podemos agregar selectivamente las secciones que queremos ver. Para agregar la sección de respuesta, escribimos lo siguiente:

dig howtogeek.com +noall +answer

los

Si escribimos lo siguiente para activar + estadísticas, también veremos la sección de estadísticas:

dig howtogeek.com +noall +answer +stats

los

La combinación + notodos + respuesta se utiliza con frecuencia. Puede agregar otras secciones a la línea de comando según sea necesario. Si desea evitar escribir + noall + answer en la línea de comando cada vez que usa dig, puede ponerlos en un archivo de configuración llamado «.digrc». Está ubicado en su directorio personal.

  Cómo ejecutar Linux desde una unidad flash USB

Escribimos lo siguiente para crear uno con eco:

echo "+noall +answer" > $HOME/.digrc

Luego podemos escribir lo siguiente para verificar su contenido:

cat .digrc

los $ HOME / .digrc «y» cat .digrc «comandos en una ventana de terminal.» width = «646» height = «122» onload = «pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);» onerror = «this.onerror = null; pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon (esto);»>

Esas dos opciones ahora se aplicarán a todos los usos futuros de excavación, como se muestra a continuación:

dig ubuntu.org
dig linux.org
dig github.com

Este archivo de configuración de excavación se utilizará para los ejemplos restantes de este artículo.

Registros DNS

La información devuelta a sus solicitudes de excavación se extrae de diferentes tipos de registros almacenados en el servidor DNS. A menos que solicitemos algo diferente, excave consultas en el registro A (dirección). Los siguientes son los tipos de registros que se usan comúnmente con excavación:

Un registro: vincula el dominio a una dirección IP versión 4.
Registro MX: el intercambio de correo registra los correos electrónicos directos enviados a los dominios al servidor de correo correcto.
Registro NS: los registros del servidor de nombres delegan un dominio (o subdominio) a un conjunto de servidores DNS.
Registro TXT: los registros de texto almacenan información basada en texto sobre el dominio. Por lo general, se pueden utilizar para suprimir el correo electrónico falsificado.
Registro SOA: los registros de inicio de autoridad pueden contener mucha información sobre el dominio. Aquí puede encontrar el servidor de nombres principal, la parte responsable, una marca de tiempo para los cambios, la frecuencia de las actualizaciones de la zona y una serie de límites de tiempo para reintentos y abandonos.
TTL: El tiempo de vida es una configuración para cada registro DNS que especifica cuánto tiempo un servidor precursor de DNS puede almacenar en caché cada consulta de DNS. Cuando expira ese tiempo, los datos deben actualizarse para solicitudes posteriores.
CUALQUIERA: Esto le dice a dig que devuelva todos los tipos de registros DNS que pueda.

La especificación del tipo de registro A no cambia la acción predeterminada, que es consultar el registro de dirección y obtener la dirección IP, como se muestra a continuación:

dig redhat.com A

los

Para consultar los registros de intercambio de correo, usamos la siguiente bandera MX:

dig yahoo.com MX

los

La bandera del servidor de nombres devuelve el siguiente nombre de los servidores de nombres raíz asociados con el dominio de nivel superior:

dig fedora.com NS

los

Para consultar el inicio del registro de autoridad, escribimos la siguiente bandera SOA:

dig manjaro.com SOA

los

La bandera TTL nos mostrará el tiempo de vida de los datos en la caché del servidor DNS. Si hacemos una serie de solicitudes, vemos que el tiempo de vida se reduce a cero y luego volvemos a su valor inicial.

  Cómo instalar ZFS en Linux

Escribimos lo siguiente:

dig usa.gov TTL

los

Para ver los registros de texto, escribimos la bandera TX:

dig usa.gov TXT

los

Especificar el servidor DNS

Si desea usar un servidor DNS en particular para su solicitud, puede usar el signo arroba (@) para pasarlo a excavar como un parámetro de línea de comandos.

Con el servidor DNS predeterminado (ver más abajo), dig hace referencia al solucionador de stub de almacenamiento en caché local en 127.0.0.53.

dig usa.gov +stats

Ahora, escribimos lo siguiente para usar el servidor DNS público de Google en 8.8.8.8:

dig @8.8.8.8 usa.gov +stats

los

Usando excavar con múltiples dominios

Podemos pasar varios dominios para excavar en la línea de comando, como se muestra a continuación:

dig ubuntu.org fedora.org manjaro.com

los

Si verifica regularmente un conjunto de dominios, puede almacenarlos en un archivo de texto y pasarlo a excavar. Todos los dominios del archivo se comprobarán sucesivamente.

Nuestro archivo se llama «domains.txt». Usaremos cat para mostrar su contenido y luego lo pasaremos a excavar con la opción -f (archivo). Escribimos lo siguiente:

cat domains.txt
dig -f domains.txt

los

Búsquedas inversas de DNS

Si tiene una dirección IP y desea saber a dónde va, puede intentar una búsqueda DNS inversa. Si se resuelve en un servidor registrado con un servidor DNS, es posible que pueda averiguar su dominio.

Si puede, depende de la presencia de un PTR (registro de puntero). Los PTR resuelven una dirección IP a un nombre de dominio completo. Sin embargo, dado que no son obligatorios, no siempre están presentes en un dominio.

Veamos si podemos averiguar a dónde nos lleva la dirección IP 209.51.188.148. Escribimos lo siguiente, usando la opción -x (búsqueda inversa):

dig -x 209.51.188.148

los

¡Presto! La dirección IP se resuelve en gnu.org.

Debido a que un PTR es un registro DNS y sabemos que dig puede solicitar registros DNS específicos, ¿no podríamos simplemente pedirle a dig que recupere el PTR por nosotros? Sí, podemos, pero requiere un poco más de trabajo.

Tenemos que proporcionar la dirección IP en orden inverso y tachar .in-addr.arpa al final, como se muestra a continuación:

dig ptr 148.188.51.209.in-addr.arpa

los

Obtenemos el mismo resultado; solo tomó un poco más de esfuerzo.

¿Puedes cavarlo?

Todos usamos Internet a diario, y las mentes inquisitivas a menudo se preguntan cómo ocurre la magia cuando escribimos el nombre de un sitio web en un navegador. Con excavar, puede explorar los procesos de conjuración de redes.