DNS

DNSEl DNS es uno de los servicios más utilizados y de los menos compendidos. ¿Qué es DNS? ¡Fácil! es el Sistema de Nombres de Dominio. Básicamente el DNS es como un directorio telefónico, necesitas saber donde esta el "grupolinuxer.org", vas al directorio (a.k.a. DNS Server), buscas un poco y te regresa su número de teléfono; sólo que en lugar del número de telefono te regresa su dirección IP.

Una Dirección IP es como un número de teléfono. El número de teléfono te dice de que forma te puedes poner en contacto con una persona, mientras que una IP te dice cómo puedes "ponerte en contacto" con una computadora en internet. Al igual que los números de teléfono las IP's son números, 4 números (para IPv4) separados por puntos: 209.177.146.196

Sin embargo el DNS no es exáctamente igual que un directorio. Las diferencias más notables son que el DNS funciona en dos sentidos es decir, si tienes un nombre te da su IP y si tienes una IP te da un nombre. Aquí un ejemplo:

SHELL:
  1. linuxer@pyro ~/foxteck $ host lxer.com
  2. lxer.com has address 207.210.216.46

SHELL:
  1. linuxer@pyro ~/foxteck $ host 207.210.216.46
  2. 46.216.210.207.in-addr.arpa domain name pointer lxer.com.

En el primer ejemplo, preguntamos a nuestro servidor de DNS cúal es la dirección IP de LXer.com, nuestro servidor nos responde que lxer.com tiene la dirección 207.210.216.46. En el segundo ejemplo le preguntamos ¿Quién tiene la dirección 207.210.216.46 y nos dice que esa dirección apunta a LXer.com. Una ventaja del DNS sobre el directorio telefónico es que si nuestro servidor no conoce un número o dirección, rápidamente va y pregunta a sus conocidos (y si ellos tampoco saben, hacen lo mismo, van y le preguntan a otros conocidos mas sábios a.k.a. ROOT servers) ¡Ah, la comunidad en acción de nuevo!
El concepto es muuy sencillo. Y gracias a él podemos navegar en internet de forma fácil (rápida y segura). El DNS es una parte integral del Internet. Traduce nombres fáciles de recordar como google.com a cosas dificiles de recordar como 64.233.161.147 (difíciles para las personas, las computadoras trabajan mejor con esos númeritos). Tener un servicio de DNS rápido se traduce en una navegación mas rápida.

Configuracion:

En linux los servidores de DNS se definen en el archivo /etc/resolv.conf. Puedes definir varios servidores, de tal forma que si uno no te contesta (está caido :() tu computadora tratará con el siguiente en la lista. Aquí un ejemplo:

SHELL:
  1. eromero@hack ~ $ cat /etc/resolv.conf
  2. search foxteck.homelinux.net
  3. nameserver 208.67.222.222
  4. nameserver 208.67.220.220
  5. nameserver 200.23.242.193
  6. nameserver 200.23.242.201
  7. nameserver 172.16.0.1
  8. domain foxteck.homelinux.net

La directiva nameserver define los servidores que tu máquina utilizará. Es buena idea tener vários y que éstos esten en diferentes segmentos de red. Normalmente al encender tu computadora y obtener red automáticamente serán configurados.

Herramientas:

dig: Es una herramienta que te permite consultar servidores DNS. Es fácil de utilizar, en su forma mas sencilla solo es necesario pasarle el nombre de dominio que quieres consultar, por ejemplo:

SHELL:
  1. eromero@hack ~ $ dig www.grupolinuxer.org
  2.  
  3. ; <<>> DiG 9.3.2 <<>> www.grupolinuxer.org
  4. ;; global options:  printcmd
  5. ;; Got answer:
  6. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4399
  7. ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
  8.  
  9. ;; QUESTION SECTION:
  10. ;www.grupolinuxer.org.          IN      A
  11.  
  12. ;; ANSWER SECTION:
  13. www.grupolinuxer.org.   3600    IN      A       209.177.146.196
  14.  
  15. ;; Query time: 82 msec
  16. ;; SERVER: 208.67.222.222#53(208.67.222.222)
  17. ;; WHEN: Fri Jan 12 01:25:23 2007
  18. ;; MSG SIZE  rcvd: 54

Opcionalmente, le puedes pasar el servidor al que le quieres preguntar, pasandole el nombre del dominio y @ip.del.servidor.dns:

SHELL:
  1. eromero@hack ~ $ dig grupolinuxer.org @ns1.opengate.com.mx
  2.  
  3. ; <<>> DiG 9.3.2 <<>> grupolinuxer.org @ns1.opengate.com.mx
  4. ; (1 server found)
  5. ;; global options:  printcmd
  6. ;; Got answer:
  7. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13612
  8. ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4
  9.  
  10. ;; QUESTION SECTION:
  11. ;grupolinuxer.org.              IN      A
  12.  
  13. ;; ANSWER SECTION:
  14. grupolinuxer.org.       3600    IN      A       209.177.146.196
  15.  
  16. ;; AUTHORITY SECTION:
  17. grupolinuxer.org.       3600    IN      NS      ns1.opengate.com.mx.
  18. grupolinuxer.org.       3600    IN      NS      ns2.opengate.com.mx.
  19. grupolinuxer.org.       3600    IN      NS      ns3.opengate.com.mx.
  20. grupolinuxer.org.       3600    IN      NS      ns4.opengate.com.mx.
  21.  
  22. ;; ADDITIONAL SECTION:
  23. ns1.opengate.com.mx.    3600    IN      A       209.177.146.194
  24. ns2.opengate.com.mx.    3600    IN      A       209.177.146.195
  25. ns3.opengate.com.mx.    3600    IN      A       64.79.209.37
  26. ns4.opengate.com.mx.    3600    IN      A       64.79.210.37
  27.  
  28. ;; Query time: 76 msec
  29. ;; SERVER: 209.177.146.194#53(209.177.146.194)
  30. ;; WHEN: Fri Jan 12 01:29:29 2007
  31. ;; MSG SIZE  rcvd: 201

¡et voilà! El servidor nos contesta (209.177.146.194#53 significa que respondio el servidor con la IP 209.177.146.194 en el puerto 53, el utilizado normalmente). En este caso obtenemos múcha mas informacion por que ns1.opengate.com.mx es el DNS primario para grupolinuxer.org, así que nos da información extra como las direcciones IP's de los demás servidores DNS para el dominio (si tu servidor no sabe quien es grupolinuxer.org irá a preguntarle a uno de ellos).

host: Es otra de las utilidades para resolver IP's y Dominios a diferencia de dig éste de dos vias. Además de IP <=> nombre host devuelve también información sobre los servidores de correo o sobre alias de dns, por ejemplo:

SHELL:
  1. eromero@hack ~ $ host grupolinuxer.org
  2. grupolinuxer.org has address 209.177.146.196
  3. grupolinuxer.org mail is handled by 5 ALT1.ASPMX.L.GOOGLE.COM.
  4. grupolinuxer.org mail is handled by 5 ALT2.ASPMX.L.GOOGLE.COM.
  5. grupolinuxer.org mail is handled by 1 ASPMX.L.GOOGLE.COM.
  6. grupolinuxer.org mail is handled by 10 ASPMX2.GOOGLEMAIL.COM.
  7. grupolinuxer.org mail is handled by 10 ASPMX3.GOOGLEMAIL.COM.
  8. grupolinuxer.org mail is handled by 10 ASPMX4.GOOGLEMAIL.COM.
  9. grupolinuxer.org mail is handled by 10 ASPMX5.GOOGLEMAIL.COM.

Lo que significa que grupolinuxer tiene la dirección 209.177.146.196 y nuestro correo es manejado por Google. ;) Un ejemplo mas:

SHELL:
  1. eromero@hack ~ $ host www.google.com
  2. www.google.com is an alias for www.l.google.com.
  3. www.l.google.com has address 72.14.253.99
  4. www.l.google.com has address 72.14.253.147
  5. www.l.google.com has address 72.14.253.104
  6. www.google.com is an alias for www.l.google.com.
  7. www.google.com is an alias for www.l.google.com.

En este caso nos devuelve varias direcciones IP's (y alias) ya que Google al ser un servicio muuuy grande necesita tener varias direcciones para poder ofrecer servicio a millones de clientes.

whois: Te permite conocer información "administrativa" sobre un dominio, es decir, quien es el dueño, quien lo registró e incluso cuando expira (en algunos casos). Sólo necesitas pasarle el nombre del dominio del que quieres informacion. La repuesta dependerá de quien haya registrado el dominio, un ejemplo:

SHELL:
  1. eromero@hack ~ $ whois foxteck.net
  2.  
  3. Whois Server Version 2.0
  4.  
  5. Domain names in the .com and .net domains can now be registered
  6. with many different competing registrars. Go to http://www.internic.net
  7. for detailed information.
  8.  
  9. Domain Name: FOXTECK.NET
  10. Registrar: WILD WEST DOMAINS, INC.
  11. Whois Server: whois.wildwestdomains.com
  12. Referral URL: http://www.wildwestdomains.com
  13. Name Server: NS1.BLUEHOST.COM
  14. Name Server: NS2.BLUEHOST.COM
  15. Status: ok
  16. Updated Date: 10-jan-2007
  17. Creation Date: 09-may-2006
  18. Expiration Date: 09-may-2007
  19. Registrant:
  20. Eduardo Romero
  21. Priv. Sta. Lucia #1025
  22. Zapopan, Jalisco 45130
  23. Mexico
  24.  
  25. Registered through: BlueHost.Com
  26. Domain Name: FOXTECK.NET
  27. Created on: 09-May-06
  28. Expires on: 09-May-07
  29. Last Updated on: 09-May-06
  30.  
  31. Administrative Contact:
  32. Romero, Eduardo  earomero@gmail.com
  33. Priv. Sta. Lucia #1025
  34. Zapopan, Jalisco 45130
  35. Mexico
  36. +1.8017659400
  37.  
  38. Domain servers in listed order:
  39. NS1.BLUEHOST.COM
  40. NS2.BLUEHOST.COM

En este caso se incluye la información de contacto, los nombres de los servidores en los que está el dominio y el nombre del registrar, osease la empresa donde lo registré.

Otras Herramientas:

Como administrador de sistemas es importante tener bien configurado el servicio de DNS, ya que esto se traduce en la velocidad con las que tus clientes verán tus páginas y leeran tu correo. Una vez configurado tu DNS es importante que lo pruebes utilizando herramientas como DNS Stuff para verificar que todo esté marchando bien.

La prueba de DNS timing da un aproximado de cuanto se tarda en resolver (aproximadamente) una dirección de dominio, la respuesta puede ser útil para detectar problemas. En este ejemplo se muestra el tiempo que toma resolver el dominio de OpenGate.com.mx:

SHELL:
  1. Looking up at ns1.opengate.com.mx.... Reports 1 A record(s). 88ms.
  2. Looking up at ns2.opengate.com.mx.... Reports 1 A record(s). 87ms.
  3. Looking up at ns3.opengate.com.mx.... Reports 1 A record(s). 70ms.
  4. Looking up at ns4.opengate.com.mx.... Reports 1 A record(s). 70ms.

En promedio toma 78ms para que los servidores respondan. Un buen tiempo de respuesta. Si el tiempo es muy alto las personas que visiten tu sitio van a tener que esperar (un poco) para que su navegador lo encuentre. Normalmente este tiempo esta directamente relacionado con la conectividad del servidor de DNS que contesta y el cliente que hace la pregunta.

Además del DNS timing, existe un reporte avanzado que te permite conocer un poco mas acerca de tu servidor. El DNS Report es un exámen que te dice que tan bien configurado está tu servidor, sin embargo, va un poco mas hayá que el DNS y también incluye el correo (DNS y el Correo son servicios muy relacionados). Aqui un ejemplo de un reporte para nuestro sitio. La mayoria de las pruebas pasan sin problema. Hay algunas marcadas como problemas menores y otros como preocupantes. En realidad no hay nada que temer, el servicio mas bien sirve para orientarse. Si te encuentras con algun error FAIL solo hay que analizar si en realidad es un problema que causará fallas o no.

Mas información:


About this entry