El comando dig en Ubuntu

Publicado por P. Ruiz en

Según su propia información de ayuda, dig (domain information groper) es una herramienta flexible que  nos permite realizar consultas a servidores de nombre de dominio (DNS). Podemos utilizarlo para realizar consultas a servidores DNS y analizar sus resultados.

Hoy veremos algunas de las alternativas que nos ofrece…

Usando básico de dig

Un uso básico del comando dig puede consistir en usarlo seguido de una URL. Por ejemplo:

dig somebooks.es

Salida del comando dig.

El-comando-dig-en-Ubuntu-001

Analicemos la salida que nos ofrece:

  1. Al principio obtenemos algo de información sobre el propio comando: su versión (en nuestro caso la 9.10.3-P4 sobre Ubuntu). Además, nos informa de que se ha aplicado +cmd como opción global para lograr, precisamente, que se muestre este comentario inicial.

    El-comando-dig-en-Ubuntu-007

  2. A continuación, nos ofrece algunos datos sobre la respuesta obtenida del servidor DNS.

    El-comando-dig-en-Ubuntu-008

    Vemos que la operación ha sido una consulta, su identificador y que no ha ofrecido errores. Además, nos informa de los flags que se han aplicado: qr (query response), rd (recursion desired) y ra (recursion available). También de que se incluye una respuesta (la línea que veremos después en la sección ANSWER), que no contiene información de autoridad y que contiene una pieza de información adicional

  3. Después, la seudo-sección OPT contiene la versión del estándar EDNS aplicado y el tamaño de los paquetes UDP.

    El-comando-dig-en-Ubuntu-009

  4. La sección QUESTION identifica el destino de la consulta. Además, podemos comprobar la clase IN (Internet) y el tipo de registro (A identifica un nombre de dominio para una dirección IPv4).

    El-comando-dig-en-Ubuntu-010

  5. La sección ANSWER nos informa principalmente de que somebooks.es tiene la dirección IP 217.160.230.123. El valor 3537 sólo indica el tiempo, en segundos, que puede almacenarse el registro en la caché.

    El-comando-dig-en-Ubuntu-011

  6. Por último, obtenemos alguna información estadística, como el tiempo de respuesta, la fecha, la hora, etc.

    El-comando-dig-en-Ubuntu-012

Sin embargo, si lo que pretendíamos era conocer la dirección IP pública de somebooks.es, quizás nos habría bastado con escribir esto:

dig somebooks.es +short

Escribimos el comando y pulsamos la tecla Intro.

El-comando-dig-en-Ubuntu-013

Como habrás deducido, el argumento +short le dice al comando dig que queremos la versión breve de la salida… Y nos hace caso.

Otras cosas que podemos averiguar

Con dig podemos realizar diferentes tipos de consulta. Por ejemplo, en el caso anterior, para averiguar la dirección IP, deberíamos haber indicado el tipo A:

dig somebooks.es A +short

Sin embargo, A es la opción predeterminada y pudimos omitirla.

No obstante, si lo que hubiésemos buscado fuera la lista de los servidores de correo de somebooks.es, deberíamos haber realizado una consulta del tipo MX (mail exchanges):

dig somebooks.es MX +noall +answer

Vemos que el dominio tiene asignados dos registros MX diferentes

El-comando-dig-en-Ubuntu-003

En este caso, hemos utilizado los argumentos +noall y +answer. El primero deshabilita todos los indicadores (flags) de visualización y el segundo hace que se muestre la sección de respuestas (ANSWER SECTION) de la consulta.

Así, hemos simplificado la salida, pero nos hemos quedado con lo importante.

Si lo que necesitamos es obtener una lista de los servidores DNS autorizados en el dominio, usaríamos NS como tipo de consulta:

dig somebooks.es NS +noall +answer

Vemos que el dominio tiene asignados cuatro registros NS.

El-comando-dig-en-Ubuntu-004

Incluso podemos utilizar la opción ANY para solicitar todos los tipos de registro comentados antes:

dig somebooks.es ANY +noall +answer

Como puedes ver, la salida incluso nos ofrece el registro para la dirección TCP/IPv6 (AAAA)

El-comando-dig-en-Ubuntu-005

También disponemos de la opción +trace, que nos permite comprobar el camino que sigue la resolución del dominio desde el servidor de nombres raíz. Sin embargo, si la resolución de DNS configurada en el equipo es un servidor independiente, ésta puede fallar. Es lo que nos ocurre al escribir lo siguiente:

dig +trace somebooks.es

La comprobación no ha funcionado.

El-comando-dig-en-Ubuntu-006

La solución pasa por especificar un servidor DNS raíz para la consulta inicial:

dig +trace somebooks.es @8.8.8.8

Ahora, el comando funciona correctamente

El-comando-dig-en-Ubuntu-014

Para consultar todos los parámetros y opciones del comando dig, puedes recurrir a su ayuda escribiendo el siguiente comando:

man dig

Y si no te encuentras en un sistema GNU/Linux, o no tienes instalada la ayuda, también puedes recurrir a alguna de las páginas de Internet que la ofrecen. Por ejemplo, https://linux.die.net/man/1/dig.

Y hasta aquí el artículo de hoy. Espero que te resulte útil.