jueves, 10 de noviembre de 2011

¿Cómo funciona un servidor DNS?

Un servidor DNS proporciona la resolución de nombres utilizando el daemon de nombre que generalmente se llama named (se pronuncia name-dee).

El servidor DNS almacena diferentes tipos de registros de recursos utilizados para resolver nombres. Estos registros contienen el nombre, la dirección y el tipo de registro.

Algunos de estos tipos de registro son:
  • A: una dirección de un dispositivo final.
  • NS: un servidor de nombre autoritativo.
  • CNAME: el nombre ideal (o Nombre de dominio completamente calificado) para un alias, que se utiliza cuando varios servicios tienen una única dirección de red pero cada servicio tiene su propia entrada en DNS.
  • MX: registro de intercambio de correos, asigna un nombre de dominio a una lista de servidores de intercambio de correos para ese dominio.
Cuando un cliente realiza una consulta, el proceso "named" del servidor primero observa en sus propios registros para ver si puede resolver el nombre. Si no puede resolver el nombre utilizando los registros almacenados, contacta a otros servidores para hacerlo.

La solicitud puede pasar por un número de servidores, lo cual lleva tiempo adicional y consume ancho de banda. Una vez que se encuentra una coincidencia y se devuelve al servidor solicitante original, el servidor almacena temporalmente en la caché la dirección numerada que coincide con el nombre.

Si vuelve a solicitarse ese mismo nombre, el primer servidor puede regresar la dirección utilizando el valor almacenado en el caché de nombres. El almacenamiento en caché reduce el tráfico de la red de datos de consultas DNS y las cargas de trabajo de los servidores más altos de la jerarquía. El servicio del cliente DNS en las PC de Windows optimiza el rendimiento de la resolución de nombres DNS almacenando previamente los nombres resueltos en la memoria. El comando ipconfig /displaydns muestra todas las entradas DNS en caché en un sistema informático con Windows XP o 2000.

El sistema de nombres de dominio utiliza un sistema jerárquico para crear una base de datos para proporcionar una resolución de nombres. La jerarquía es similar a un árbol invertido con la raíz en la parte superior y las ramas por debajo.

En la parte superior de la jerarquía, los servidores raíz mantienen registros sobre cómo alcanzar los servidores de dominio de nivel superior, los cuales a su vez tienen registros que apuntan a los servidores de dominio de nivel secundario y así sucesivamente.

Los diferentes dominios de primer nivel representan el tipo de organización o el país de origen. Algunos ejemplos de dominios de primer nivel son:
  • .au: Australia
  • .co: Colombia
  • .com: una empresa o industria
  • .jp: Japón
  • .org: una organización sin fines de lucro

Después de los dominios de primer nivel se encuentran los dominios de segundo nivel y, debajo de estos, hay otros dominios de nivel inferior. Cada nombre de dominio es una ruta a través de este árbol invertido que comienza desde la raíz.

Por ejemplo: como se muestra en la figura, el servidor DNS raíz puede no saber exactamente dónde se encuentra el servidor de correo electrónico mail.cisco, pero lleva un registro de los dominios "com" dentro de los dominios de primer nivel. Asimismo, los servidores dentro del dominio "com" pueden no tener un registro de mail.cisco.com, pero sí tienen un registro para el dominio "cisco.com". Los servidores dentro del dominio cisco.com tienen un registro (un registro MX para ser exactos) para mail.cisco.com.

El sistema de nombres de dominio depende de esta jerarquía de servidores descentralizados y mantiene estos registros de recursos. Los registros de recursos enumeran nombres de dominios que el servidor puede resolver y servidores alternativos que también pueden procesar solicitudes. Si un determinado servidor tiene registros de recursos que corresponden a su nivel en la jerarquía de dominios, se dice que es autoritativo para esos registros.