lunes, 9 de marzo de 2009

Elementales para consultas DNS con el comando "dig"


Cuando damos soporte a clientes, o inclusive necesitamos despejar dudas acerca de la existencia de un dominio, el servidor de nombres del mismo, el servidor de correo asociado a dicho dominio o simplemente un host, nos resulta muy útil conocer las herramientas que nos permitan despejar dichas dudas, a continuación indico unos usos _elementales_ del comando dig, el cual posee muchas opciones, más sin embargo aquí solamente indicaré las más esenciales, de igual forma si desea obtener más información acerca de dicho comando, puede consultar la página del manual en línea.


* Para preguntar cual es el servidor DNS de un dominio:
dig dominio.com NS

* Para preguntar cual es el servidor de correo de un dominio:
dig dominio.com MX

* Para preguntar cual es el equipo www de un dominio:
dig www.dominio.com

Nota: Observe en todos los casos, la sección: ANSWER SECTION: la cual tiene la respuesta a nuestra pregunta, si dicha sección no aparece, será porque hemos escrito mal la pregunta, o que simplemente no existe el dominio o el host que estamos consultando.

Todas las consultas anteriores responderán por el servidor DNS que tengamos configurado por omisión, ahora bien, vamos averiguar cual es el servidor DNS de un proveedor de servicios, por ejemplo el de inter:

user@pc:~$ dig inter.com.ve NS

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> inter.com.ve NS
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52519
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2

;; QUESTION SECTION:
;inter.com.ve.                  IN      NS

;; ANSWER SECTION:
inter.com.ve.           604800  IN      NS      ns2.interlink.net.ve.
inter.com.ve.           604800  IN      NS      ns1.interlink.net.ve.

;; ADDITIONAL SECTION:
ns1.interlink.net.ve.   67086   IN      A       200.82.134.7
ns2.interlink.net.ve.   67823   IN      A       200.82.134.8

;; Query time: 282 msec
;; SERVER: 200.57.70.10#53(200.57.70.10)
;; WHEN: Tue Feb 23 18:06:23 2010
;; MSG SIZE  rcvd: 112
Y ahora a dicho servidor DNS (agregando @dir_ip_NS) le preguntaremos cual es su servidor de correos (MX)
user@pc:~$ dig inter.com.ve MX @ns1.interlink.net.ve.
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> inter.com.ve MX @ns1.interlink.net.ve.
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31697
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3

;; QUESTION SECTION:
;inter.com.ve.                  IN      MX

;; ANSWER SECTION:
inter.com.ve.           604800  IN      MX      10 mail.inter.com.ve.

;; AUTHORITY SECTION:
inter.com.ve.           604800  IN      NS      ns2.interlink.net.ve.
inter.com.ve.           604800  IN      NS      ns1.interlink.net.ve.

;; ADDITIONAL SECTION:
mail.inter.com.ve.      604800  IN      A       200.82.134.162
ns1.interlink.net.ve.   604800  IN      A       200.82.134.7
ns2.interlink.net.ve.   604800  IN      A       200.82.134.8

;; Query time: 116 msec
;; SERVER: 200.82.134.7#53(200.82.134.7)
;; WHEN: Tue Feb 23 18:07:59 2010
;; MSG SIZE  rcvd: 149
Observe adicionalmente, que dentro de los FLAGS, aparece el parámetro: aa, lo cual indica que al servidor de nombres que le hemos preguntado, es autoritativo en la zona de dicho dominio. Por otra parte, puede resultarnos util obtener el reverso de un host smtp, lo cual lo obtenemos con:
user@pc:~$ dig -x 200.82.134.162
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> -x 200.82.134.162
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19652
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;162.134.82.200.in-addr.arpa.   IN      PTR

;; ANSWER SECTION:
162.134.82.200.in-addr.arpa. 3600 IN    PTR     mail.intercable.com.ve.

;; AUTHORITY SECTION:
134.82.200.in-addr.arpa. 54717  IN      NS      NS2.ICNET.com.ve.
134.82.200.in-addr.arpa. 54717  IN      NS      NS1.ICNET.com.ve.

;; Query time: 219 msec
;; SERVER: 200.57.70.10#53(200.57.70.10)
;; WHEN: Tue Feb 23 18:09:23 2010
;; MSG SIZE  rcvd: 123
Finalmente, si queremos ver la traza desde los servidores DNS raiz hasta un host, agregamos a la consulta el parámetro +trace:
user@pc:~$ dig +trace www.inter.com.ve
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> +trace www.inter.com.ve
;; global options:  printcmd
.                       506502  IN      NS      J.ROOT-SERVERS.NET.
.                       506502  IN      NS      L.ROOT-SERVERS.NET.
.                       506502  IN      NS      K.ROOT-SERVERS.NET.
.                       506502  IN      NS      H.ROOT-SERVERS.NET.
.                       506502  IN      NS      F.ROOT-SERVERS.NET.
.                       506502  IN      NS      E.ROOT-SERVERS.NET.
.                       506502  IN      NS      B.ROOT-SERVERS.NET.
.                       506502  IN      NS      C.ROOT-SERVERS.NET.
.                       506502  IN      NS      I.ROOT-SERVERS.NET.
.                       506502  IN      NS      D.ROOT-SERVERS.NET.
.                       506502  IN      NS      G.ROOT-SERVERS.NET.
.                       506502  IN      NS      M.ROOT-SERVERS.NET.
.                       506502  IN      NS      A.ROOT-SERVERS.NET.
;; Received 484 bytes from 200.57.70.10#53(200.57.70.10) in 4 ms

ve.                     172800  IN      NS      NS2.NIC.ve.
ve.                     172800  IN      NS      NS1.NIC.ve.
ve.                     172800  IN      NS      NS-EXT.NIC.CL.
ve.                     172800  IN      NS      AZMODAN.ULA.ve.
ve.                     172800  IN      NS      NS-EXT.ISC.ORG.
;; Received 319 bytes from 192.58.128.30#53(J.ROOT-SERVERS.NET) in 31 ms

inter.com.ve.           600     IN      NS      ns2.interlink.net.ve.
inter.com.ve.           600     IN      NS      ns1.interlink.net.ve.
;; Received 116 bytes from 150.188.228.5#53(NS2.NIC.ve) in 141 ms

www.inter.com.ve.       604800  IN      A       200.8.57.5
inter.com.ve.           604800  IN      NS      ns1.interlink.net.ve.
inter.com.ve.           604800  IN      NS      ns2.interlink.net.ve.
;; Received 132 bytes from 200.82.134.8#53(ns2.interlink.net.ve) in 148 ms
Por otra parte, si queremos consultar tipo de registro TXT usados por SPF, sería:
dig test.iconix.com -t TXT

; <<>> DiG 9.6.1-P3 <<>> test.iconix.com -t TXT
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38582
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;test.iconix.com.               IN      TXT

;; ANSWER SECTION:
test.iconix.com.        14400   IN      TXT     "v=spf1 ip4:216.34.130.0/25 -all"
test.iconix.com.        14400   IN      TXT     "spf2.0/pra ip4:216.34.130.0/25 -all"

;; Query time: 155 msec
;; SERVER: 99.90.4.210#53(99.90.4.210)
;; WHEN: Mon May 17 18:01:07 2010
;; MSG SIZE  rcvd: 125

No hay comentarios:

Usar y administrar Debian GNU/Linux de forma fácil

Siempre que navego, y busco información acerca de la instalación de un paquete en Debian me gustaría conseguir un cómo (howto) que me lleve de la mano, algunos son de ese estilo, pero realmente son muy pocos, el objetivo de éste blog, es contribuir en tal necesidad. Bienvenidas las sugerencias y agregados que cumplan con éste principio.