systemadmin.es > Utilidades > Uso de dig: Herramientas UNIX (IX)

Uso de dig: Herramientas UNIX (IX)

Con el comando dig podemos realizar consultas DNS para obtener cualquier registro que nos interese. Resulta muy útil para comprobar su correcto funcionamiento.

En su uso más simple solicitamos un registro DNS de tipo A a nuestros resolvers (configurados en el fichero /etc/resolv.conf):

$ dig systemadmin.es

; <<>> DiG 9.7.3-RedHat-9.7.3-1.fc13 <<>> systemadmin.es
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25165
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;systemadmin.es.			IN	A

;; ANSWER SECTION:
systemadmin.es.		716	IN	A	87.98.227.154

;; Query time: 6 msec
;; SERVER: 10.20.0.26#53(10.20.0.26)
;; WHEN: Tue Jun 28 20:07:53 2011
;; MSG SIZE  rcvd: 48

En el caso que en lugar de un registro tipo A, necesitemos obtener otro podemos especificarlo a continuación:

$ dig systemadmin.es loc

O mediante la opción -t:

$ dig -t loc systemadmin.es

Existen varios tipos de registros, algunos de ellos son:

  • A: Dirección de tipo IPv4
  • AAAA: Dirección de tipo IPv6
  • NS: Define los servidores de nombres del dominio
  • MX: Define los servidores de correo del dominio
  • CNAME: Permite definir alias de otros nombres

En el caso que tengamos una IP y deseemos obtener su registro inverso deberemos usar la opción -x:

$ dig -x 87.98.227.154

; <<>> DiG 9.7.3-RedHat-9.7.3-1.fc13 <<>> -x 87.98.227.154
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14552
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

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

;; ANSWER SECTION:
154.227.98.87.in-addr.arpa. 86400 IN	PTR	ns1701.systemadmin.es.

;; Query time: 99 msec
;; SERVER: 10.5.0.26#53(10.4.0.26)
;; WHEN: Tue Jun 28 20:20:55 2011
;; MSG SIZE  rcvd: 79

Para obtener simplemente el valor y no toda la salida del dig podemos usar la opción +short. Esta opción es especialmente útil en scripts para automatizar tareas:

$ dig -x 87.98.227.154 +short
ns1701.systemadmin.es.

En el caso que tengamos que preguntar a un directamente a un determinado servidor DNS en lugar de pasar por nuestros resolvers deberemos usar la @ para indicar el servidor. Por ejemplo, podemos preguntar a los root-servers los servidores DNS del .es:

$ dig es @a.root-servers.net.

; <<>> DiG 9.7.3-RedHat-9.7.3-1.fc13 <<>> es @a.root-servers.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13497
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 12
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;es.				IN	A

;; AUTHORITY SECTION:
es.			172800	IN	NS	ns3.nic.fr.
es.			172800	IN	NS	sns-pb.isc.org.
es.			172800	IN	NS	ns-ext.nic.cl.
es.			172800	IN	NS	a.nic.es.
es.			172800	IN	NS	f.nic.es.
es.			172800	IN	NS	ns1.cesca.es.
es.			172800	IN	NS	ns15.communitydns.net.

;; ADDITIONAL SECTION:
ns3.nic.fr.		172800	IN	AAAA	2001:660:3006:1::1:1
ns3.nic.fr.		172800	IN	A	192.134.0.49
sns-pb.isc.org.		172800	IN	AAAA	2001:500:2e::1
sns-pb.isc.org.		172800	IN	A	192.5.4.1
ns-ext.nic.cl.		172800	IN	A	200.1.123.14
a.nic.es.		172800	IN	AAAA	2001:67c:21cc:2000::64:41
a.nic.es.		172800	IN	A	194.69.254.1
f.nic.es.		172800	IN	AAAA	2001:720:418:caf1::2
f.nic.es.		172800	IN	A	130.206.1.2
ns1.cesca.es.		172800	IN	A	84.88.0.3
ns15.communitydns.net.	172800	IN	AAAA	2001:678:4::f
ns15.communitydns.net.	172800	IN	A	194.0.1.15

;; Query time: 33 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Tue Jun 28 20:26:05 2011
;; MSG SIZE  rcvd: 446

Para obtener la lista de root-servers simplemente pedimos los registros NS del raiz:

$ dig . ns

; <<>> DiG 9.7.3-RedHat-9.7.3-1.fc13 <<>> . ns
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12132
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13

;; QUESTION SECTION:
;.				IN	NS

;; ANSWER SECTION:
.			77579	IN	NS	b.root-servers.net.
.			77579	IN	NS	h.root-servers.net.
.			77579	IN	NS	l.root-servers.net.
.			77579	IN	NS	e.root-servers.net.
.			77579	IN	NS	i.root-servers.net.
.			77579	IN	NS	g.root-servers.net.
.			77579	IN	NS	k.root-servers.net.
.			77579	IN	NS	f.root-servers.net.
.			77579	IN	NS	a.root-servers.net.
.			77579	IN	NS	c.root-servers.net.
.			77579	IN	NS	j.root-servers.net.
.			77579	IN	NS	m.root-servers.net.
.			77579	IN	NS	d.root-servers.net.

;; ADDITIONAL SECTION:
b.root-servers.net.	77579	IN	A	192.228.79.201
h.root-servers.net.	77579	IN	A	128.63.2.53
l.root-servers.net.	77579	IN	A	199.7.83.42
e.root-servers.net.	77579	IN	A	192.203.230.10
i.root-servers.net.	77579	IN	A	192.36.148.17
g.root-servers.net.	77579	IN	A	192.112.36.4
k.root-servers.net.	77579	IN	A	193.0.14.129
f.root-servers.net.	77579	IN	A	192.5.5.241
a.root-servers.net.	77579	IN	A	198.41.0.4
c.root-servers.net.	77579	IN	A	192.33.4.12
j.root-servers.net.	77579	IN	A	192.58.128.30
m.root-servers.net.	77579	IN	A	202.12.27.33
d.root-servers.net.	77579	IN	A	128.8.10.90

;; Query time: 2 msec
;; SERVER: 10.80.0.36#53(10.80.0.36)
;; WHEN: Tue Jun 28 20:27:01 2011
;; MSG SIZE  rcvd: 449

Es una herramienta muy completa con la que podemos hacer incluso pedir transferencias de zona o incluso ver la versión que usa un determinado BIND.

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>