DNS (Domain Name System)


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+

Las máquinas en Internet se identifican entre sí mediante una dirección IP (como por ejemplo 216.32.74.52) que las identifica. Sin embargo los seres humanos preferimos utilizar nombres (como www.yahoo.com), porque son más fáciles de recordar, y porque ofrecen la flexibilidad de poder cambiar la máquina en la que están alojados (cambiaría entonces la dirección IP) sin necesidad de cambiar las referencias a él.

  • Para realizar esta conversión entre nombres y direcciones IP se utilizan los servidores DNS.

Si alguna vez ha utilizado un programa explorador o navegador, un programa de FTP o cualquier otra aplicación parecida de Internet, entonces probablemente haya usado un servidor DNS. Este Sistema de Nombres de Dominio (DNS) es, en realidad, un conjunto de protocolos y servicios que permite a los usuarios utilizar estos nombres, en vez de tener que recordar direcciones IP. Esta es ciertamente la función más conocida de los protocolos DNS: la asignación de nombres a direcciones IP. Por ejemplo, si la dirección IP del sitio FTP de arsys.es fuera 217.76.128.4, la mayoría de la gente llegaría a este equipo especificando ftp.arsys.es y no la dirección IP.

  • Además de ser más fácil de recordar, el nombre es más fiable.
  • La dirección numérica podría cambiar por muchas razones, pero el nombre siempre sirve.

Antes de la implementación del DNS, la utilización de nombres de equipos se realizaba a través del uso de archivos ("HOSTS") que contenían una lista de nombres y sus direcciones IP asociadas. En Internet, este archivo se administraba de forma centralizada (un único equipo almacenaba esta información), y cada ubicación descargaba periódicamente una nueva copia. A medida que fue creciendo el número de equipos en Internet, esta solución se hizo inviable. Este fue el motivo de la aparición del sistema de DNS.

La estructura

Un sistema de nombres de dominio (DNS) consta de una base de datos de nombres distribuida.

  • Los nombres de la base de datos DNS establecen una estructura lógica de árbol, conocida como espacio de nombres del dominio.
  • Cada nodo o dominio del espacio de nombres del dominio tiene un nombre y puede contener subdominios.
  • Los dominios y subdominios se agrupan en zonas para permitir la administración distribuida del espacio de nombres (las zonas se describen más adelante).
  • El nombre del dominio identifica la posición del mismo en la jerarquía lógica del DNS respecto de su dominio principal, al separar cada rama del árbol con un punto.

En la siguiente figura se muestran varios dominios superiores, entre los que se encuentra Midominio, y un host llamado host, dentro del dominio midominio.com. Si alguien quisiera contactar con ese host, usarían el nombre completo host.midominio.com.

Estructura DNS

Servidores DNS e Internet

El Centro de Información de la Red Internet (Internet Network Information Center) administra la raíz de la base de datos DNS en Internet. Los dominios superiores se han asignado a organizaciones y países. Estos nombres de dominio siguen un estándar internacional. Para los países se usan abreviaturas de dos y de tres letras, y se han reservado varias abreviaturas para que las usen las organizaciones, como se muestra en los siguientes ejemplos:

Nombre dominio DNS Tipo de organización
.com Comercial (por ejemplo, microsoft.com para Microsoft)
.edu Educacional (por ejemplo, udg.edu para Universidad de Girona)
.org Organizaciones no comerciales (por ejemplo, fidonet.org para FidoNet)

Dominios

Cada nodo del árbol de una base de datos DNS, junto con todos los nodos por debajo del mismo, se llama dominio.

  • Los dominios pueden contener host (equipos) y otros dominios (subdominios).Por ejemplo, el dominio Midominio (midominio.com), podría contener a la vez equipos, como host.midominio.com, y subdominios, como subdom.midominio.com, que a su vez podría contener host, como por ejemplo host.subdom.midominio.com.
  • Por norma general, los nombres de host y de dominio tienen restricciones en cuanto a los caracteres que pueden formarlos. Sólo está permitido el uso de los caracteres ‘a-z’, ‘A-Z’, ‘0-9’, y ‘-‘.

Servidores de nombres

Los servidores DNS almacenan información acerca del espacio de nombres del dominio, y son conocidos como servidores de nombres.

  • Los servidores de nombres suelen ser responsables de una o más zonas (entendiendo como zona un archivo físico que almacena registros de la base de datos de una parte del espacio de nombres DNS).
  • El servidor de nombres se dice que tiene autoridad sobre esas zonas.
  • Cuando se configura un servidor de nombres DNS (como vamos a ver con el registro ‘NS’), se indica cuáles son los restantes servidores de nombres DNS que se encuentran en el mismo dominio.

Servidores de nombres principal y secundario

Un servidor de nombres principal es un servidor de nombres que obtiene los datos de sus zonas de archivos locales. Los cambios en una zona, como la adición de dominios, se realizan en el servidor de nombres principal. Un servidor de nombres secundario obtiene los datos de sus zonas de otro servidor de nombres de la Red que tiene autoridad para esa zona (normalmente de un servidor de nombres principal). El proceso de obtención de información de estas zonas (es decir, el archivo de base de datos) por red se conoce como una transferencia de zona.

  • La razón fundamental para la existencia de un servidor de nombres secundario es la de la redundancia. Se necesitan al menos dos servidores de nombres DNS que sirvan cada zona, uno principal y al menos uno secundario, para que en caso de fallo, alguno de ellos responda a las peticiones de nombres.

En el proceso de resolución de nombres, los servidores de nombres almacenan en caché las respuestas obtenidas fuera de su zona para evitar tiempo en la resolución de respuestas a peticiones similares. En este proceso, se realiza la búsqueda a través de la jerarquía de nodos de nombres del DNS hasta encontrar la resolución de la petición. Existe un tiempo de vida (TTL) que se especifica a través de los datos que se intercambian los servidores de nombres, y que controla el tiempo que se almacenarán estos datos. Evidentemente, a menor tiempo de vida, mayor carga para el servidor de nombres, pero más fiabilidad de los datos del dominio.

Los archivos del DNS

Hasta el momento hemos explicado un poco la terminología y el funcionamiento general del sistema de DNS. Ahora vamos a tratar de explicar un poco por encima la estructura de un archivo del DNS dentro del servidor de nombres. Un archivo de base de datos del servidor de nombres (o archivo DNS) es un ‘archivo de zona’ que contiene los registros (líneas del archivo) para la parte del dominio de la que es responsable la zona. Es decir, es un archivo que contiene los datos para poder resolver las peticiones de nombres asociadas al dominio en direcciones IP. A continuación enumeraremos algunos de estos registros para ver el formato general de un archivo DNS:

Registro SOA

El primer registro de cualquier archivo de base de datos es el registro SOA. Este registro se forma con una serie de parámetros a tener en cuenta.

  • host origen: El host en el que se mantiene el archivo.
  • correo electrónico de contacto: La dirección de correo electrónico de Internet de la persona responsable del archivo de base de datos de este dominio. No olvide que, en lugar de escribir el símbolo ‘@’ en el nombre de correo electrónico, como se suele hacer, éste se sustituye por un punto cuando se coloca en el archivo de zonas.
  • número de serie: El "número de versión" de este archivo de base de datos. Este número debería aumentar cada vez que cambie el archivo de base de datos.
  • tiempo de actualización: El tiempo (en segundos) que esperará un servidor secundario entre comprobaciones de su servidor maestro para ver si el archivo de base de datos ha cambiado y si hay que pedir una transferencia de zona.
  • tiempo de reintento: El tiempo (en segundos) que esperará un servidor secundario antes de volver a intentar una transferencia de zona que haya fallado.
  • tiempo de caducidad: El tiempo (en segundos) que un servidor secundario seguirá intentando descargar una zona. Cuando haya pasado este tiempo, se rechazará la información antigua de la zona.
  • tiempo de vida (TTL): El tiempo (en segundos) que un servidor DNS tiene permitido acumular en la caché cualquier registro del recurso de este archivo de base de datos.

Para que un registro de recurso abarque una línea en un archivo de base de datos, los saltos de línea deben incluirse entre paréntesis. En un archivo de zona, el símbolo ‘@’ representa el dominio raíz de la zona.

Ejemplo:

1; número de serie 10800; actualizar [3 horas] 3602; reintentar [1 hora] 604800; caducar [7 días] 86400; tiempo de vida [1 día]

Registro NS

El Registro NS (Name Server o Servidor de Nombres) enumera los servidores de nombres de este dominio, permitiendo que otros servidores de nombres miren los nombres de su dominio. Su formato es el siguiente:

dominio IN NS nombreservidorhost

Ejemplo:

@ IN NS ns3.servidoresdns.net. @ IN NS ns4.servidoresdns.net.

Registro MX

El Registro de Intercambio de Correo (Mail eXchange) indica qué host procesa el correo de este dominio. Si existen múltiples registros de intercambio de correo, el resolvedor de nombres intentará ponerse en contacto con los servidores de correo en orden de preferencia, empezando por los valores inferiores (mayor prioridad) hasta el valor superior (menor prioridad). Su formato es el siguiente:

dominio IN MX preferencia servidorcorreohost

Al usar los siguientes registros de ejemplo, el correo enviado a prueba@midominio.com se envía primero a prueba@servidorcorreo0.midominio.com, si es posible, y luego a prueba@servidorcorreo1.midominio.com si servidorcorreo0 no está disponible.

Ejemplos:

@ IN MX 10 servidorcorreo0
@ IN MX 20 servidorcorreo1

El valor servidorcorreohost debe indicarse a través de un nombre y no de una dirección IP.

Registro A

Un Registro de dirección A (Address) sirve para asociar nombres de host a direcciones IP dentro de una zona. Éstos son los registros que componen la mayor parte del archivo de base de datos. Su formato es el siguiente

nombrehost IN A direcciónIPdehost

Ejemplos:

machine1 IN A 157.55.201.143
nombreservidor2 IN A 157.55.200.2

El Registro CNAME

Estos registros también reciben el nombre de alias, aunque son conocidos como entradas de "nombre canónico" (CNAME o Canonical Name). La utilidad principal de los mismos es la de usar más de un nombre para apuntar a un único host. Esto puede simplificar operaciones como albergar a la vez un servidor FTP y un servidor web en el mismo equipo. Su formato es el siguiente:

nombrealiashost IN CNAME nombrehost

Ejemplo: Suponga que www.midominio.com y que ftp.midominio.com se encuentran en el mismo equipo. Si éste es el caso, entonces podría tener las siguientes entradas en su archivo de zona:

servidorarchivos IN A 157.55.200.41
ftp IN CNAME servidorarchivos
www IN CNAME servidorarchivos

Conclusión y referencias

Esta guía de referencia al servicio DNS trata de dar una visión general del funcionamiento del mismo, mostrando el proceso de resolución de nombres en direcciones IP. Para una información más detallada sobre esta funcionalidad puede consultar:


Share on FacebookTweet about this on TwitterShare on LinkedInEmail this to someoneShare on Google+