lunes, 15 de noviembre de 2010

Comandos para la gestión de la red en Linux: dig

Normalmente los programas que necesitan traducir un nombre de dominio a dirección ip, usan un un programa llamado resolvedor que se encarga de obtener la dirección ip consultando tres lugares. Pero existen comandos como dig que permiten que el usuario pueda realizar consultas y ver las respuestas devueltas.


El comando dig permite hacer consultas a los servidores dns y ver que respuestas devuelve. Lo normal es que los programas

El siguiente ejemplo consulta al dns local sobre www.google.es.

dig www.google.es

y el resultado que muestra:

; <<>> DiG 9.7.0-P1 <<>> www.google.es
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14627
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.es.            IN    A

;; ANSWER SECTION:
www.google.es.        259371    IN    CNAME    www.google.com.
www.google.com.        518571    IN    CNAME    www.l.google.com.
www.l.google.com.    174    IN    A    66.249.92.104

;; AUTHORITY SECTION:
google.com.        267372    IN    NS    ns2.google.com.
google.com.        267372    IN    NS    ns4.google.com.
google.com.        267372    IN    NS    ns3.google.com.
google.com.        267372    IN    NS    ns1.google.com.

;; ADDITIONAL SECTION:
ns4.google.com.        262838    IN    A    216.239.38.10
ns2.google.com.        259370    IN    A    216.239.34.10
ns3.google.com.        289834    IN    A    216.239.36.10
ns1.google.com.        259370    IN    A    216.239.32.10

;; Query time: 49 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Nov 13 08:17:50 2010
;; MSG SIZE  rcvd: 231

En el resultado se puede apreciar los registros de recurso devueltos por el servidor al preguntar por la dirección ip de www.google.es.

;; QUESTION SECTION:
;www.google.es.            IN    A            IN    A

Se esta preguntando por www.google.es. La letra A (Address) al final indica el tipo de registro (dato) que se ha pedido en este caso la dirección ip.

;; ANSWER SECTION:
www.google.es.        259371    IN    CNAME    www.google.com.
www.google.com.        518571    IN    CNAME    www.l.google.com.
www.l.google.com.    174    IN    A    66.249.92.104

La primera línea de la respuesta dice que www.google.es es un alias de www.google.com. El alias lo indica CNAME (Canonical Name). La segunda, que www.google.com es un alias de www.l.google.com. Y por último que la dirección de www.l.google.com es 66.249.92.104. Un detalle a apreciar es que el la seccion QUESTION aparece el registro A sin dirección ip, por que se esta preguntando por el, y el la seccion ANSWER sale el mismo registro pero con la dirección ip completada.

;; AUTHORITY SECTION:
google.com.        267372    IN    NS    ns2.google.com.
google.com.        267372    IN    NS    ns4.google.com.
google.com.        267372    IN    NS    ns3.google.com.
google.com.        267372    IN    NS    ns1.google.com.

La sección AUTORITY indica los servidores dns que llevan la resolución de Google, los que tiene la copia original de los registros con los datos. Es informacion de dns por que los registros llevan NS (Name Server). En este caso hay cuatro y seguramente ns1.google.com sera el principal (servidor master) y los otros tres serán copias (servidor slave).

;; ADDITIONAL SECTION:
ns4.google.com.        262838    IN    A    216.239.38.10
ns2.google.com.        259370    IN    A    216.239.34.10
ns3.google.com.        289834    IN    A    216.239.36.10
ns1.google.com.        259370    IN    A    216.239.32.10

Por último, se ha incluido una sección con información extra llamada ADDITIONAL que muestra las direcciones ip de los servidores dns que aparecen en la sección anterior.

También se pueden utilizar los servidores dns para hacer resolución inversa, es decir, a partir de la dirección ip obtener el nombre de las máquinas.

dig -x 66.249.92.104

Con resultado:

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

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

;; ANSWER SECTION:
104.92.249.66.in-addr.arpa. 54016 IN    PTR     par03s01-in-f104.1e100.net.

;; Query time: 80 msec
;; SERVER: 192.168.90.2#53(192.168.90.2)
;; WHEN: Wed Nov 10 18:28:31 2010
;; MSG SIZE  rcvd: 84

En el resultado se puede apreciar lo siguiente:

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

Se ha preguntado por el registro PTR (pointer), es decir por el nombre de la maquina con dirección ip 66.249.92.104.

;; ANSWER SECTION:

104.92.249.66.in-addr.arpa. 54016 IN    PTR     par03s01-in-f104.1e100.net.

Y la respuesta dice que el nombre es par03s01-in-f104.1e1100.net. Básicamente el nombre que le han puesto no se corresponde con el que tiene en  resolución directa. Es habitual que ocurra esto dado que la gente usa el nombre de dominio para conectarse (resolución directa) y no necesita para nada obtener los nombres a partir de la dirección ip (resolución inversa).

También se puede pedir otra información que no sea direcciones ip o nombres. Por ejemplo el servidor de intercambio de correo del dominio  elcorteingles.es

dig elcorteingles.es mx

En este caso se pone el nombre del dominio, no de una máquina, y se pregunta por el tipo de registro MX (intercambiador de correo electrónico). El resultado es:

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> elcorteingles.es mx
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11438
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;elcorteingles.es.              IN      MX

;; ANSWER SECTION:
elcorteingles.es.       300     IN      MX      10 smtpeci.elcorteingles.es.

elcorteingles.es.       300     IN      MX      10 smtpeci2.elcorteingles.es.

;; Query time: 70 msec
;; SERVER: 192.168.90.2#53(192.168.90.2)
;; WHEN: Wed Nov 10 18:52:49 2010
;; MSG SIZE  rcvd: 83

En la sección ANSWER se esta indicando que hay dos servidores de correo electrónico, uno llamado smtpeci.elcorteingles.es y otro smtpeci2.elcorteingles.es. Ademas el 10 que aparece en cada uno de los registros indica la prioridad a la hora de usar uno u otro. Primero se usa el que tenga el valor mas bajo, si este falla se pasa al siguiente con valor mas bajo y así hasta que se puede conectar con alguno de los servidores de correo. Como los dos tienen el mismo valor se usa el aparece primero y si falla se usa el que aparece segundo. Lo lógico es que las prioridades fuesen distintas, por ejemplo 1 y 2.

Existen más tipos de registro pero de momento estos son los que se necesitan para entender las consultas básicas al dns.

No hay comentarios:

Publicar un comentario