Al administrar servidores en ambientes Linux debemos tener presentes las mejores herramientas para obtener información de diversos dominios, así como conocer su estado en tiempo real, aunque existen diversas opciones para realizar esto (tanto de forma gráfica como en línea de comandos), existe un comando especial para ello y es el comando dig.
El comando dig puede ser usado con argumentos de línea de comandos o bien usar el modo por lotes con el cual se pueden realizar lecturas de las solicitudes de búsqueda de un archivo específico y una de sus ventajas es que al formar parte de BIND, será posible ejecutar múltiples búsquedas desde la línea de comandos con resultados integrales.
El comando dig se encarga de leer el archivo /etc/resolv.conf con el fin de consultar los servidores DNS allí registrados y con esto desplegar los respectivos resultados.
- -b dirección: permite definir la dirección IP de origen de la dirección de consulta y esta tiene que ser una dirección válida en las interfaces de red del host o "0.0.0.0" o "::".
- -c clase: Invalida la clase de consulta predeterminada (IN para internet).
- -f (nombre de archivo): permite al comando dig actuar en modo por lotes con la capacidad de leer una lista de solicitudes de búsqueda usando un archivo especifico.
- -h: Imprime un resumen de los argumentos y opciones de la línea de comandos de dig.
- -k (archivo): hace uso de un archivo de clave TSIG para firmar las consultas DNS enviadas por el comando dig.
- -p #puerto: permite especificar el puerto de consulta.
- -q nombre: Distingue el nombre de otros argumentos.
- -t (tipo): Establece el tipo de consulta a ejecutar, debe ser un tipo de consulta válido que sea compatible con BIND9 siendo A la opción por defecto.
- -x (dirección): Simplifica las búsquedas inversas de dig y si usamos una dirección IPv4 será en notación decimal con puntos o si es una dirección IPv6 será delimitada por dos puntos.
- -4 o -6: indica el tipo de consulta IPv4 o IPv6.
Solvetic explicará en detalle cómo usar dig en Linux para tener un control especial sobre los dominios DNS.
1. Cómo hacer una consulta básica del DNS en Linux
Para ejecutar una consulta básica usando dig ingresamos lo siguiente:
dig www.solvetic.com
Como resultado obtendremos lo siguiente:
Allí observamos que el dominio Solvetic.com posee un registro A el cual apunta a la dirección IP 46.105.203.22 y además encontramos detalles como:
- En la primera línea veremos la versión del comando dig (9.11.5).
- Se verá el encabezado de la respuesta obtenida del servidor DNS.
- En la sección de preguntas (ANSWER) vemos los detalles de la consulta, este es el registro "A" de solvetic.com, adicional el IN nos dice que se ha realizado una búsqueda en Internet.
- En la parte final vemos las estadísticas sobre la consulta.
2. Cómo hacer una búsqueda de DNS en modo corto en Linux
Esta es una opción que nos ayuda a omitir todos los detalles desplegados por dig, para ello ejecutamos lo siguiente:
dig solvetic.com +short
3. Cómo obtener el registro MX de un DNS en Linux
Los registros MX (Mail eXchange record), es básicamente un recurso DNS en el cual se explica la forma como debe ser redireccionado un correo electrónico en internet Para obtener esta información vamos a ejecutar lo siguiente:
dig solvetic.com MX
4. Cómo obtener el registro SOA del DNS en Linux
SOA (Start of Authority), es un registro que nos provee información acerca de las características básicas del dominio, así como de la zona en la cual ha sido registrado, para ver este detalle ejecutamos:
dig solvetic.com SOA
5. Cómo obtener el registro TTL del DNS en Linux
TTL (Time To Life), es un registro en el cual se determina el número de segundos que transcurren antes de que los cambios sean aplicados a algún cambio en dicho registro, para sus detalles vamos a ejecutar lo siguiente:
dig solvetic.com TTL
6. Cómo ver únicamente la sección ANSWER del DNS en Linux
Podemos resumir los detalles únicamente a esta sección usando la siguiente línea:
dig solvetic.com +nocomments +noquestion +noauthority +noadditional +nostats
7. Cómo consultar la búsqueda inversa de DNS en Linux
Para consultar este tipo de búsqueda ingresamos lo siguiente:
dig -x 8.8.8.8 +short
8. Cómo ejecutar una búsqueda simultánea de DNS en Linux
Con dig es posible realizar en una sola ejecución diferentes búsquedas de registros DNS, por ejemplo:
dig solvetic.com mx +noall +answer microsoft.com ns +noall +answer
9. Cómo crear un archivo .digrc en Linux
Será posible crear un archivo .digrc en la ruta $HOME/.digrc con el fin de alojar allí las opciones disponibles de dig, ejecutamos:
cat .digrc +short dig solvetic.com
10. Cómo validar la trazabilidad DNS en Linux
Por temas de gestión o auditoría podemos realizar un seguimiento de la ruta de búsqueda de DNS, para ello ejecutamos:
dig solvetic.com +trace
En este resultado veremos en primer lugar los servidores de nombres raíz de '.' , luego irán los servidores de nombres para el dominio .com y, por último, vemos los servidores de nombres para solvetic.com junto con los registros DNS asociados:
11. Cómo especificar un puerto en la búsqueda DNS en Linux
Por defecto el comando dig consultará el puerto 53 del equipo remoto, pero es posible usar el parámetro -p para indicar un puerto diferente, por ejemplo:
dig solvetic.com -p 443
12. Cómo especificar IPv4 o IPv6 en Linux
Es posible definir el tipo de direccionamiento a analizar, IPv4 o IPv6 de la siguiente forma:
dig -4 solvetic.com A (IPv4) dig -6 solvetic.com A (IPv6)
13. Cómo imprimir solo las estadísticas del DNS en Linux
Por temas de administración podemos resumir los detalles a variables específicas como las estadísticas, para ello debemos ingresar lo siguiente:
dig solvetic.com +noall +stats
Con este comando tenemos la oportunidad de realizar una gestión de las consultas DNS en ambientes Linux de una forma mucho más completa y eficaz ya que los resultados están siendo generados directamente por el archivo del sistema y con las respuestas remotas sabremos que los datos son integrales y funcionales para la tarea asignada.