systemadmin.es > DNS > dig: Comprobar la delegación de una zona

dig: Comprobar la delegación de una zona

Al realizar una delegación de zona llamada “push.systemadmin.es” a “ns1.cosa.com”, si lo queremos comprobar con dig, deberemos tener en cuenta si el servidor tiene o no recursividad habilitada.

La zona sería:

push.systemadmin.es. 600 NS ns1.cosa.com.
push.systemadmin.es. 600 NS ns2.cosa.com.

Una vez recargada, si el servidor tiene recursividad y el servidor destino (ns1.cosa.com) aún no esta configurado, nos dará un error el dig:

$ dig push.systemadmin.es ns @dns1.sysadmins.es

; <<>> DiG 9.8.1-RedHat-9.8.1-1.fc15 <<>> push.systemadmin.es ns @dns1.sysadmins.es
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 18650
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;push.systemadmin.es.		IN	NS

;; Query time: 43 msec
;; SERVER: 1.2.3.4#53(1.2.3.4)
;; WHEN: Mon Oct 21 16:18:09 2013
;; MSG SIZE  rcvd: 37

Vemos en los flags que deseamos la recursividad (flag rd, recursivity desired), en cambio veremos que funciona en un servidor sin recursividad:

$ dig push.systemadmin.es ns @dns2.sysadmins.es

; <<>> DiG 9.8.1-RedHat-9.8.1-1.fc15 <<>> push.systemadmin.es ns @dns2.sysadmins.es
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39746
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;push.systemadmin.es.		IN	NS

;; AUTHORITY SECTION:
push.systemadmin.es.	600	IN	NS	ns2.cosa.com.
push.systemadmin.es.	600	IN	NS	ns1.cosa.com.

;; Query time: 33 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Mon Oct 21 16:21:10 2013
;; MSG SIZE  rcvd: 89

Esto ocurre porque si la zona no esta configurada en los NS a los que hemos delegado, el servidor con recursividad intenta pedir la zona pero no responde porque no esta configurada: Por lo tanto, estamos preguntando ¿Quien tiene la zona? Como que el servidor al que delegamos no responde, dig no puede asegurar que al que pregunta es el que realmente tiene la zona o es que este también la delega a otro.

En cambio sin recursividad, devuelve la respuesta que ya conoce y se desentiende: Estamos preguntando: ¿Quien crees tu que tiene la zona? Por lo que obtenemos por respuesta lo que tiene configurado, pero no sabremos si a los NS que hemos delegado si a su vez lo delegan en otros.

Para poder verificar una delegación de zona, sin pedir recursividad, con dig, deberemos usar la opción +norecurse:

$ dig push.systemadmin.es ns @dns1.sysadmins.es +norecurse

; <<>> DiG 9.8.1-RedHat-9.8.1-1.fc15 <<>> push.systemadmin.es ns @dns1.sysadmins.es +norecurse
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29439
;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;push.systemadmin.es.		IN	NS

;; AUTHORITY SECTION:
push.systemadmin.es.	600	IN	NS	ns2.cosa.com.
push.systemadmin.es.	600	IN	NS	ns1.cosa.com.

;; ADDITIONAL SECTION:
ns1.cosa.com. 84053	IN	A	1.2.3.4
ns2.cosa.com. 84053	IN	A	1.2.3.4

;; Query time: 5 msec
;; SERVER: 1.1.1.1#53(1.1.1.1)
;; WHEN: Mon Oct 21 16:20:24 2013
;; MSG SIZE  rcvd: 121

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>