gratiszona

DIG y DNS

Dig: consultando la configuracion dns

Dig es una herramienta (linea de comandos) disponible en practicamente cualquier distribucion linux (aunque tambien hay alguna version para windows) que te permite hacer consultas a un servidor dns. Dig precisa conocer la direccion IP de un servidor DNS al que consultar por defecto, direccion IP que toma del archivo resolv.conf, que en Windows puedes encontrar en c:\windows\system32\drivers\etc\resolv.conf y en sistemas GNU/Linux en /etc/resolv.conf.
En esta pagina y en diferente color, se incluyen los comandos a ejecutar desde la consola.

los 13 principales

Ejecuta en linea de comandos dig . ns y obtendras la lista de los trece super servidores dns, que debe ser la misma que la que puedes obtener en ftp.internic.net
Si lo que quieres es conocer los servidores que manejan los dominios .com .net ..., prueba: dig com. NS o "dig net. NS"... Lo mismo para paises: prueba dig es. NS o dig ca. NS etc etc

Opciones dig

dig tu_dominio.com +trace
Similar al tracert TCP/IP, pero para dns
dig tu_dominio.com. NS
Te indica los servidores dns de tu_dominio:
;; ANSWER SECTION:
ignside.net. 132119 IN NS ns2.nexen.net.
ignside.net. 132119 IN NS ns1.nexen.net.

El primer numero (132119) indica el TTL (tiempo de vida en cache) de la consulta
dig tu_dominio.com. MX
Te indica los servidores de correo (Mail e[X]change) que gestionan los mails dirigidos a loquesea@tudominio.com. Por ejemplo:
;; ANSWER SECTION:
ignside.net. 3600 IN MX 10 pouilly.nexen.net.
ignside.net. 3600 IN MX 20 champagne.nexen.net.

estan listados por orden de precedencia, los numeros mas bajos (10, 20) primero.
dig tu_dominio.com
devuelve la IP del dominio
dig midominio.com. @dns1.nrc.ca
consulta los datos dns en un servidor @especifico.
La mayoria de los servidores DNS estan configurados para, si no conocen la respuesta al query, encargarse ellos mismos de reformular la pregunta a otro servidor distinto. Esto se llama configuracion recurrente o amistosa (friendly, recursive).
dig -x numero_ip

DNS inverso

Descifrando las respuestas

Una orden como dig www.ignside.net genera el siguiente resultado:
C:\WINDOWS\system32\dns\bin>dig www.ignside.net
; <<>> DiG 9.4.0-(Hawk)-8.02 <<>> www.ignside.net
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 1580
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.ignside.net. IN A

;; ANSWER SECTION:
www.ignside.net. 2886 IN CNAME irvnet.nexenservices.com.
irvnet.nexenservices.com. 6486 IN CNAME sauterne.nexen.net.
sauterne.nexen.net. 486 IN A 217.174.203.10

;; Query time: 15 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Jul 28 22:33:36 2005
;; MSG SIZE rcvd: 116

C:\WINDOWS\system32\dns\bin>
Veamos la respuesta linea por linea, teniendo en cuenta que aquellas que empiezan con ; son comentarios introducidos por dig, no vienen del servidor dns:
En las dos primeras lineas, dig se limita a informar de la version del programa en ejecucion y del dominio objeto de consulta. La linea ;; global options: printcmd se refiere a las opciones generales usadas en la consulta. Puedes evitar estas dos lineas utilizando la sintaxis de consulta dig +nocmd nombredominio.com
La siguiente seccion Got Answer nos ofrece detalles de la consulta recibida, entre ellos, el numero de respuestas recibidas y si nos la ha dado o no una "autoridad" en dns.
Las 'banderas' (flags) nos dan detalles de la consulta y respuesta: QR (Query/Response) sirve para diferenciar la consulta de la respuesta. RD (Recursion Desired), es una modalidad de la consulta, que es replicada en la respuesta con la bandera RA (Recursion Allowed) y significa que pedimos al server que si no puede resolver la respuesta por si mismo, consulte recursivamente a otro server. La aceptacion de la peticion por el server es opcional. AA significaria que la respuesta es de un server autorizado. Otras flags son: TC (Truncated Response), que significa que la respuesta se ha fraccionado por ser de mayor tamaño del permitido, AD (Authentic Data) y CD (Checking Disabled).
La tercera seccion nos da detalles de la consulta; ademas como es obvio del dominio consultado, nos informa que estamos consultando en los registros A. Como ya sabemos, si indicase MX en su lugar querria decir que estamos consultando una direccion de email. IN indica que la busqueda se realiza en el ambito de internet.
Las consultas posibles que podemos hacer, comenzando por las ya conocidas son:
  • dig midominio.com NS para los servidores dns (nombre)
  • dig midominio.com MX para los servidores de correo
  • dig midominio.com A para la ip del servidor que aloja al dominio
  • dig midominio.com ANY reune las anteriores
  • dig midominio.com AAAA nos indica el numero IP en ipv6 (si es que lo tiene, claro):
C:\WINDOWS\system32\dns\bin>dig www.ipv6.org AAAA +short
shake.stacken.kth.se.
2001:6b0:1:ea:202:a5ff:fecd:13a6

En el ejemplo que hemos puesto mas arriba, la respuesta tiene varias lineas. La linea www.ignside.net. 2886 IN CNAME irvnet.nexenservices.com. nos dice que el dominio por el que preguntamos es un alias (CNAME) de irvnet.nexenservices.com; La siguiente linea nos indica que irvnet.nexenservices.com es un alias de sauterne.nexen.net, y la tercera linea nos indica la IP de sauterne.nexen.net.
El porque tres respuestas ? porque www no es mas que un subdominio de ignside.net y este subdominio es un alias de irvnet.nexenservices.com (apunta a la misma IP) que a su vez es un alias del dominio del ISP (nexen), obteniendo finalmente la Ip de este.
El que ninguna de las respuestas que hemos obtenido sea AUTHORITY no dice nada sobre la fiabilidad de la respuesta, simplemente que el server que nos la ha dado no es responsable del dominio.
Finalmente podemos encontrarnos con una seccion de respuestas adicionales, que tipicamente nos informaria de las IPS de los nameserves devueltos en la seccion AUTHORITY, si los hubiera.
La ultima seccion nos explica el tiempo que ha tardado en resolverse la consulta, el numero en bytes de la respuesta, la fecha y el servidor dns consultado.

Acotando las respuestas

dig admite varias opciones que modalizan la cantidad de informacion obtenida. Todas las secciones de la respuesta pueden ser eliminadas con las opciones +nocmd, +[no]comments, +[no]question, +[no]answer, +[no]authority, +[no]additional y +[no]stats.
Existe una forma abreviada, que es la de excluir todo y indicar concretamente lo que quieres: dig midominio.com A +noall +answer.
Otra opcion para limitar la informacion es short. Y si al contrario quieres mas detalles de los standard, prueba +multiline

TTL

La respuesta dns incluye un valor TTL expresado en segundos: por ejemplo, en esta linea, 2886 segundos: www.ignside.net. 2886 IN CNAME irvnet.nexenservices.com.
TTL, o Time To Live, es el tiempo maximo durante el cual un server almacenara en su cache una respuesta obtenida de un server con "autoridad". Mientras dure el TTL, el server en cuestion no volvera a realizar consultas dns sobre ese dominio, respondiendo con los datos guarcuadrados. Expirado el TTL, consultara de nuevo a la autoridad en la materia ...

Zonas DNS

Hemos venido hablando de respuestas autorizadas o no. El servidor DNS, al contestar las consultas, busca en primer lugar en los registros dns de su zona local (aquellos de los que el server es responsable). Si encuentra alli la respuesta, sera una respuesta autorizada. Si no la encuentra, buscara en su cache de consultas anteriores. Si aqui se encuentra una coincidencia, el servidor responde con esta informacion. Esta respuesta ya no es autorizada. Finalmente si el servidor esta configurado para la busqueda recursiva, consultara -en nuestro nombre- a otro server dns.
Por ello el concepto de autoridad, en dns, es similar al de administracion: la respuesta es autorizada si el dominio esta en una zona administrada por ese server. La respuesta tambien es autorizada si nuestro server dns no tiene la respuesta en cache y hace una consulta recursiva. A partir de ese momento y mientras conserve la respuesta en cache, no sera respuesta autorizada.

PTR

Pointer Record. tambien llamado reverse record (registro inverso).
Un registro PTR asocia una direccion IP con su nombre de dominio real, debiendo apuntar a un nombre de dominio que se resuelva a esa IP. La IP se indica invirtiendo sus cuatro grupos de numeros y añadiendo IN-ADDR.ARPA.

SOA record

SOA son las iniciales de Start Of Authority. Un Registro SOA identifica la mejor fuente de informacion sobre un dominio dado y solo puede haber un registro por dominio. La informacion que obtenemos con dig midominio.com SOA incluye:
  • Hostname.Domain.Name, que es el nombre del servidor primario para este dominio (donde reside la respuesta autorizada): por ejemplo, en el caso de google.com, es ns1.google.com..
  • Mailbox.Domain.Name es (teoricamente) el correo del responsable del DNS de este dominio; en el mismo ejemplo de google.com, dns-admin.google (sustituye el primer punto por @ para formar el email).
  • serno se refiere el numero de serie, que identifica cuando ha habido una actualizacion de la base de datos: por ejemplo numeros de serie validos serian 1, 2, 3 etc .... Tipicamente se usa como serial number la fecha inversa de la ultima actualizacion (año-mes-dia). Por ejemplo, 2005072601
  • Refresh indica al servidor secundario cada cuanto tiempo debe consultar al primario sobre actualizaciones
  • Retry indica el lapso que debe respetar el servidor secundario para tratar de reconectar con el primario, en el momento de Refresh
  • Expire es el numero de segundos durante los cuales el servidor secundario mantiene los datos, si no puede conectar con el primario
  • TTL es el tiempo de vida que los datos deben conservarse en cache al ser solicitados.

Enlaces relacionados

Anterior: herramientas de red
Siguiente: problemas con dns