A la hora de determinar el servidor DNS que estamos utilizando existen dos alternativas:
/etc/resolv.conf
|
Evidentemente, esta opción sólo funciona bajo Linux.
# Preguntamos a nuestro servidor DNS por defecto por el dominio "ual.es"
usuario$ dig ual.es ; <<>> DiG 9.2.4 <<>> ual.es ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65305 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 ;; QUESTION SECTION: ;ual.es. IN A ;; AUTHORITY SECTION: ual.es. 172800 IN SOA filabres.ual.es.\ postmaster.filabres.ual.es. 2006111502 16400 7200 2592000 172800 ;; Query time: 0 msec ;; SERVER: 150.214.156.2#53(150.214.156.2) ;; WHEN: Thu Nov 30 10:26:33 2006 ;; MSG SIZE rcvd: 80 |
En esta consulta, entre mucha otra información dig indica que el servior DNS autorizado para el dominio ual.es es filabres.ual.es.
En la siguiente consulta preguntamos a uno de nuestros servidores DNS locales por la dirección IP del host www.google.es:
# Preguntamos a un servidor DNS local por la IP de "www.google.es"
usuario$ dig www.google.es ; <<>> DiG 9.2.4 <<>> www.google.es ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46300 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 6, ADDITIONAL: 6 ;; QUESTION SECTION: ;www.google.es. IN A ;; ANSWER SECTION: www.google.es. 167616 IN CNAME www.google.com. www.google.com. 425476 IN CNAME www.l.google.com. www.l.google.com. 201 IN A 209.85.129.104 www.l.google.com. 201 IN A 209.85.129.99 www.l.google.com. 201 IN A 209.85.129.147 ;; AUTHORITY SECTION: l.google.com. 81028 IN NS a.l.google.com. l.google.com. 81028 IN NS b.l.google.com. l.google.com. 81028 IN NS c.l.google.com. l.google.com. 81028 IN NS d.l.google.com. l.google.com. 81028 IN NS e.l.google.com. l.google.com. 81028 IN NS g.l.google.com. ;; ADDITIONAL SECTION: a.l.google.com. 23928 IN A 216.239.53.9 b.l.google.com. 23928 IN A 64.233.179.9 c.l.google.com. 14956 IN A 64.233.161.9 d.l.google.com. 81028 IN A 64.233.183.9 e.l.google.com. 14956 IN A 66.102.11.9 g.l.google.com. 21711 IN A 64.233.167.9 ;; Query time: 12 msec ;; SERVER: 150.214.156.2#53(150.214.156.2) ;; WHEN: Thu Dec 21 10:39:27 2006 ;; MSG SIZE rcvd: 319 |
Esta respuesta es un poco complicada por dos motivos: (1) www.google.es y www.google.com son la misma máquina cuando hacemos la consulta a nuestro servidor de nombres y (2), el servidor Web está replicado tres veces en las direcciones IP 209.85.129.104, 209.85.129.147 y 209.85.129.99. Esto puede comprobarse si preguntamos por www.google.com:
# Preguntamos a un servidor DNS local por la IP de "www.google.com"
usuario$ dig www.google.com ; <<>> DiG 9.2.4 <<>> www.google.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20533 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 6, ADDITIONAL: 6 ;; QUESTION SECTION: ;www.google.com. IN A ;; ANSWER SECTION: www.google.com. 420014 IN CNAME www.l.google.com. www.l.google.com. 207 IN A 209.85.129.104 www.l.google.com. 207 IN A 209.85.129.99 www.l.google.com. 207 IN A 209.85.129.147 ;; AUTHORITY SECTION: l.google.com. 75566 IN NS a.l.google.com. l.google.com. 75566 IN NS b.l.google.com. l.google.com. 75566 IN NS c.l.google.com. l.google.com. 75566 IN NS d.l.google.com. l.google.com. 75566 IN NS e.l.google.com. l.google.com. 75566 IN NS g.l.google.com. ;; ADDITIONAL SECTION: a.l.google.com. 18466 IN A 216.239.53.9 b.l.google.com. 18466 IN A 64.233.179.9 c.l.google.com. 9494 IN A 64.233.161.9 d.l.google.com. 75566 IN A 64.233.183.9 e.l.google.com. 9494 IN A 66.102.11.9 g.l.google.com. 16249 IN A 64.233.167.9 ;; Query time: 1 msec ;; SERVER: 150.214.156.2#53(150.214.156.2) ;; WHEN: Thu Dec 21 12:10:30 2006 ;; MSG SIZE rcvd: 292 |
Además, como puede verse www.google.com es un alias de www.l.google.com.
# Preguntamos a nuestro servidor DNS por el dominio "mit.edu"
usuario$ dig mit.edu ; <<>> DiG 9.2.4 <<>> mit.edu ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10644 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 3 ;; QUESTION SECTION: ;mit.edu. IN A ;; ANSWER SECTION: mit.edu. 60 IN A 18.7.22.69 ;; AUTHORITY SECTION: mit.edu. 14655 IN NS BITSY.mit.edu. mit.edu. 14655 IN NS STRAWB.mit.edu. mit.edu. 14655 IN NS W20NS.mit.edu. ;; ADDITIONAL SECTION: BITSY.mit.edu. 14655 IN A 18.72.0.3 STRAWB.mit.edu. 8735 IN A 18.71.0.151 W20NS.mit.edu. 8735 IN A 18.70.0.160 ;; Query time: 158 msec ;; SERVER: 150.214.156.2#53(150.214.156.2) ;; WHEN: Thu Dec 21 12:20:46 2006 ;; MSG SIZE rcvd: 157 |
Podemos ver que existen tres servidores de nombres autorizados para el dominio “bit.edu”.
# Preguntamos al servidor DNS "bitsy.mit.edu" por el host "www.google.es"
usuario$ dig @bitsy.mit.edu www.google.es ; <<>> DiG 9.2.4 <<>> @bitsy.mit.edu www.google.es ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7735 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 7, ADDITIONAL: 7 ;; QUESTION SECTION: ;www.google.es. IN A ;; ANSWER SECTION: www.google.es. 304614 IN CNAME www.google.com. www.google.com. 557306 IN CNAME www.l.google.com. www.l.google.com. 174 IN A 64.233.161.104 www.l.google.com. 174 IN A 64.233.161.99 www.l.google.com. 174 IN A 64.233.161.147 ;; AUTHORITY SECTION: l.google.com. 72376 IN NS c.l.google.com. l.google.com. 72376 IN NS f.l.google.com. l.google.com. 72376 IN NS d.l.google.com. l.google.com. 72376 IN NS b.l.google.com. l.google.com. 72376 IN NS e.l.google.com. l.google.com. 72376 IN NS g.l.google.com. l.google.com. 72376 IN NS a.l.google.com. ;; ADDITIONAL SECTION: c.l.google.com. 40415 IN A 64.233.161.9 f.l.google.com. 72376 IN A 72.14.235.9 d.l.google.com. 38903 IN A 64.233.183.9 b.l.google.com. 38903 IN A 64.233.179.9 e.l.google.com. 38903 IN A 66.102.11.9 g.l.google.com. 44316 IN A 64.233.167.9 a.l.google.com. 39459 IN A 216.239.53.9 ;; Query time: 231 msec ;; SERVER: 18.72.0.3#53(bitsy.mit.edu) ;; WHEN: Thu Dec 21 12:15:01 2006 ;; MSG SIZE rcvd: 351 |
Ahora preguntamos al servidor DNS “bitsy.mit.edu” por el host “www.google.com”:
# Preguntamos al servidor DNS "bitsy.mit.edu" por el host "www.google.com"
usuario$ dig @bitsy.mit.edu www.google.com ; <<>> DiG 9.2.4 <<>> @bitsy.mit.edu www.google.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29537 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 7, ADDITIONAL: 7 ;; QUESTION SECTION: ;www.google.com. IN A ;; ANSWER SECTION: www.google.com. 557281 IN CNAME www.l.google.com. www.l.google.com. 149 IN A 64.233.161.99 www.l.google.com. 149 IN A 64.233.161.147 www.l.google.com. 149 IN A 64.233.161.104 ;; AUTHORITY SECTION: l.google.com. 72351 IN NS c.l.google.com. l.google.com. 72351 IN NS f.l.google.com. l.google.com. 72351 IN NS d.l.google.com. l.google.com. 72351 IN NS b.l.google.com. l.google.com. 72351 IN NS e.l.google.com. l.google.com. 72351 IN NS g.l.google.com. l.google.com. 72351 IN NS a.l.google.com. ;; ADDITIONAL SECTION: c.l.google.com. 40390 IN A 64.233.161.9 f.l.google.com. 72351 IN A 72.14.235.9 d.l.google.com. 38878 IN A 64.233.183.9 b.l.google.com. 38878 IN A 64.233.179.9 e.l.google.com. 38878 IN A 66.102.11.9 g.l.google.com. 44291 IN A 64.233.167.9 a.l.google.com. 39434 IN A 216.239.53.9 ;; Query time: 156 msec ;; SERVER: 18.72.0.3#53(bitsy.mit.edu) ;; WHEN: Thu Dec 21 12:15:25 2006 ;; MSG SIZE rcvd: 324 |
Como podemos ver, ambas respuestas son idénticas (como en el caso de preguntar a filabres), pero diferentes comparadas con las que devuelve nuestro servidor de nombres local. Esto significa que, si nos conectamos a www.google.es desde el MIT, veremos la versión americana de google.
Finalmente, nótese que el servidor DNS no devuelve las direcciones IP de las réplicas del servidor Web siempre en el mismo orden. Esto se utiliza para distribuir la carga.
Como hemos comentado anteriormente, cuando consultamos a un servidor DNS sobre una dirección IP para la cual él no es el servidor DNS autorizado lo más frecuente es que éste tenga que consultar a otro servidor DNS (consulta recursiva) o nos indique a qué otro servidor DNS podemos preguntar nosotros (consulta iterativa).
Activando el flag +trace de dig podemos conocer qué servidores DNS se han consultado. En el siguiente ejemplo preguntamos a bitsy.mit.edu por la dirección IP del host gogh.ace.ual.es:
usuario$ dig +trace @bitsy.mit.edu gogh.ace.ual.es
; <<>> DiG 9.2.4 <<>> +trace @bitsy.mit.edu gogh.ace.ual.es ;; global options: printcmd . 488373 IN NS a.root-servers.net. . 488373 IN NS h.root-servers.net. . 488373 IN NS c.root-servers.net. . 488373 IN NS g.root-servers.net. . 488373 IN NS f.root-servers.net. . 488373 IN NS b.root-servers.net. . 488373 IN NS j.root-servers.net. . 488373 IN NS k.root-servers.net. . 488373 IN NS l.root-servers.net. . 488373 IN NS m.root-servers.net. . 488373 IN NS i.root-servers.net. . 488373 IN NS e.root-servers.net. . 488373 IN NS d.root-servers.net. ;; Received 436 bytes from 18.72.0.3#53(bitsy.mit.edu) in 158 ms es. 172800 IN NS NS3.NIC.FR. es. 172800 IN NS SUN.REDIRIS.es. es. 172800 IN NS SUNIC.SUNET.SE. es. 172800 IN NS NS.UU.NET. es. 172800 IN NS NS1.NIC.es. es. 172800 IN NS AUNIC.AUNIC.NET. es. 172800 IN NS NS1.CESCA.es. es. 172800 IN NS NS2.NIC.es. ;; Received 352 bytes from 198.41.0.4#53(a.root-servers.net) in 134 ms ual.es. 7200 IN NS chico.rediris.es. ual.es. 7200 IN NS alboran.ual.es. ual.es. 7200 IN NS filabres.ual.es. ual.es. 7200 IN NS sun.rediris.es. ual.es. 7200 IN NS dns1.cica.es. ual.es. 7200 IN NS dns2.cica.es. ;; Received 263 bytes from 192.134.0.49#53(NS3.NIC.FR) in 49 ms ace.ual.es. 172800 IN NS filabres.ual.es. ace.ual.es. 172800 IN NS alboran.ual.es. ;; Received 110 bytes from 130.206.1.3#53(chico.rediris.es) in 37 ms gogh.ace.ual.es. 172800 IN A 193.147.118.57 ace.ual.es. 172800 IN NS filabres.ual.es. ace.ual.es. 172800 IN NS alboran.ual.es. ;; Received 126 bytes from 150.214.156.2#53(filabres.ual.es) in 0 ms |
Como podemos ver, bitsy.mit.edu consulta (en la versión recursiva) al servidor de nombres raíz a.root-servers.net, que consulta a NS3.NIC.FR, que consulta a chico.rediris.es, que consulta a filabres.ual.es.
Finalmente, también podemos interrogar al servidor DNS por el nombre de un host a partir de su dirección IP:
# Preguntamos al servidor DNS por el nombre del host que tiene la IP
# 193.147.118.57 usuario$ dig -x 193.147.118.57 ; <<>> DiG 9.2.4 <<>> -x 193.147.118.57 ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44233 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 7 ;; QUESTION SECTION: ;57.118.147.193.in-addr.arpa. IN PTR ;; ANSWER SECTION: 57.118.147.193.in-addr.arpa. 172800 IN PTR gogh.ace.ual.es. ;; AUTHORITY SECTION: 118.147.193.in-addr.arpa. 172800 IN NS filabres.ual.es. 118.147.193.in-addr.arpa. 172800 IN NS alboran.ual.es. 118.147.193.in-addr.arpa. 172800 IN NS dns1.cica.es. 118.147.193.in-addr.arpa. 172800 IN NS dns2.cica.es. 118.147.193.in-addr.arpa. 172800 IN NS sun.rediris.es. 118.147.193.in-addr.arpa. 172800 IN NS chico.rediris.es. ;; ADDITIONAL SECTION: filabres.ual.es. 172800 IN A 150.214.156.2 alboran.ual.es. 172800 IN A 150.214.156.32 dns1.cica.es. 163357 IN A 150.214.5.83 dns2.cica.es. 3265 IN A 150.214.4.35 sun.rediris.es. 15046 IN A 130.206.1.2 chico.rediris.es. 15295 IN A 130.206.1.3 dns2.cica.es. 127925 IN AAAA 2001:720:c10:9::4 ;; Query time: 1 msec ;; SERVER: 150.214.156.2#53(150.214.156.2) ;; WHEN: Thu Dec 21 13:19:57 2006 ;; MSG SIZE rcvd: 332 |
Como podemos ver, el host es gogh.ace.ual.es.
http://remote.12dt.com/
http://www.zoneedit.com/lookup.html |
Utilice algunas de estas páginas Web para comprobar que el resultado coincide con el que devuelve dig para una determinada consulta.