El comando dig es una herramienta para realizar consultas a los servidores DNS para solicitar información sobre direcciones de host, intercambiadores de correo, servidores de nombres e información relacionada. Dicha herramienta puede ser utilizada desde cualquier Linux ( Unix ) o desde los sistemas operativos Mac OS X.
Por ejemplo:
dig ejemplo.com
Resultado:
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> ejemplo.com
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62559
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2
;; QUESTION SECTION:
;ejemplo.com. IN A
;; ANSWER SECTION:
ejemplo.com. 666 IN A xxx.xxx.xxx.xxx
;; AUTHORITY SECTION:
ejemplo.com. 155962 IN NS ns1.ejemplo.com.
ejemplo.com. 155962 IN NS ns2.ejemplo.com.
;; ADDITIONAL SECTION:
ns1.fabulous.com. 6844 IN A xxx.xxx.xxx.xxx
ns2.fabulous.com. 6844 IN A xxx.xxx.xxx.xxx
;; Query time: 78 msec
;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx)
;; WHEN: Tue Mar 19 18:27:53 2013
;; MSG SIZE rcvd: 170
Comprendiendo los resultados
La parte inicial del resultado nos indica la versión y las opciones globales que están especificadas ( en este caso printcmd ):
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>>
ejemplo.com
;; global options: printcmd
En el siguiente apartado, dig nos indica diferentes detalles técnicos sobre la respuesta del servidor DNS. Esta sección del resultado puede ser desactivada empleando la opción +[no]comments, pero hay que tener en cuenta que desactivando dicha opción también se desactivaran diferentes cabeceras de la información:
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62559
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 2, ADDITIONAL: 2
En el apartado de "question", dig nos recuerda sobre nuestra consulta. La consulta por defecto es para una dirección de Internet (A):
;; QUESTION SECTION:
;ejemplo.com. IN A
El siguiente apartado es la respuesta a la consulta. En este caso responde a una IP que en el ejemplo es xxx.xxx.xxx.xxx:
;; ANSWER SECTION:
ejemplo.com. 666 IN A xxx.xxx.xxx.xxx
La sección final del resultado por defecto contiene estadísticas sobre la consulta. Adicionalmente pueden ser desactivadas con la opción +[no]stats:
;; Query time: 78 msec
;; SERVER: xxx.xxx.xxx.xxx#53(xxx.xxx.xxx.xxx)
;; WHEN: Tue Mar 19 18:27:53 2013
;; MSG SIZE rcvd: 170
Qué puedo encontrar mediante dig
El comando dig permite realizar cualquier consulta DNS, las más comunes son las de los registros tipo A ( direcciones IP ), TXT ( anotaciones de texto ), MX ( servidores de correo ) y los servidores de nombre.
Empleando lo anteriormente mencionado con el ejemplo.com se nos mostrarán los siguientes resultados.
Para la dirección IP del dominio:
dig ejemplo.com A +noall +answer
El siguiente comando para mostrar todos los servidores de correo:
dig ejemplo.com MX +noall +answer
El siguiente comando sirve para mostrar todos los servidores de nombre:
dig ejemplo.com NS +noall +answer
El siguiente comando servirá para mostrar todo lo citado anteriormente:
dig ejemplo.com ANY +noall +answer
La siguiente consulta servirá para realizar la consulta empleando un servidor de nombre especifico:
dig @ns1.siliconhosting.com ejemplo.com
Y finalmente, el comando para trazar la ruta de la respuesta a la consulta:
dig ejemplo.com +trace