Configuración de DNS

Los estándares de DNS no especifican la estructura de datos interna en que deben almacenarse los registros de recursos (registros de la base de datos DNS), y por tanto existen varias implementaciones que son diferentes en este sentido. Por regla general, los servidores guardan la información sobre las zonas en ficheros en texto plano sin formato. Los nombres de los archivos son arbitrarios y se especifican en la configuración del servidor DNS.

Por ejemplo, en la implementación habitual de DNS en el mundo UNIX, BIND (Berkeley Intenet Name Domain), se utiliza los nombres de archivo siguientes para almacenar los registros de cada zona:

Por el contrario, la configuración predeterminada del servidor DNS de Microsoft Windows 2000 no utiliza los mismos nombres de archivo que BIND, sino que usa la nomenclatura nombre_zona.dns. Por otra parte, en Windows 2000, la base de datos DNS puede integrarse con la base de datos de Active Directory, en cuyo caso dicha información participa de los mismos mecanismos de almacenamiento y replicación que el resto de información contenida en el Directorio Activo.

Registros de Recursos (RR)

Para resolver nombres, los servidores consultan sus zonas. Las zonas contienen registros de recursos que constituyen la información de recursos asociada al dominio DNS. Por ejemplo, ciertos registros de recursos asignan nombres descriptivos a direcciones IP.

El formato de cada registro de recursos es el siguiente:

Propietario     TTL     Clase     Tipo     RDATA

donde:

  • Propietario: nombre de host o del dominio DNS al que pertenece este recurso. Puede contener un nombre de host/dominio (completamente cualificado o no), el símbolo "@" (que representa el nombre de la zona que se está describiendo) o una cadena vacía (en cuyo caso equivale al propietario del registro de recursos anterior).

  • TTL: (Time To Live) Tiempo de vida, generalmente expresado en segundos, que un servidor DNS o un resolver debe guardar en caché esta entrada antes de descartarla. Este campo es opcional. También se puede expresar mediante letras indicando días (d), horas (h), minutos (m) y segundos (s). Por ejemplo: "2h30m".

  • Clase: define la familia de protocolos en uso. Suele ser siempre "IN", que representa Internet.

  • Tipo: identifica el tipo de registro.

  • RDATA: los datos del registro de recursos.

A continuación se describen los principales tipos de registros de recursos: SOA, NS, A, PTR, CNAME, MX y SRV.

Registro de Recurso SOA

Cada zona contiene un registro de recursos denominado Inicio de Autoridad o SOA (Start Of Authority) al comienzo de la zona. Los registros SOA incluyen los siguientes campos (sólo se incluyen los que poseen un significado específico para el tipo de registro):

  • Propietario: nombre de dominio de la zona.

  • Tipo: "SOA".

  • Persona responsable: contiene la dirección de correo electrónico del responsable de la zona. En esta dirección de correo, se utiliza un punto en el lugar del símbolo "@".

  • Número de serie: muestra el número de versión de la zona, es decir, un número que sirve de referencia a los servidores secundarios de la zona para saber cuándo deben proceder a una actualización de su base de datos de la zona (o transferencia de zona). Cuando el número de serie del servidor secundario sea menor que el número del maestro, esto significa que el maestro ha cambiado la zona, y por tanto el secundario debe solicitar al maestro una transferencia de zona. Por tanto, este número debe ser incrementado (manualmente) por el administrador de la zona cada vez que realiza un cambio en algún registro de la zona (en el servidor maestro).

  • Actualización: muestra cada cuánto tiempo un servidor secundario debe ponerse en contacto con el maestro para comprobar si ha habido cambios en la zona.

  • Reintentos: define el tiempo que el servidor secundario, después de enviar una solicitud de transferencia de zona, espera para obtener una respuesta del servidor maestro antes de volverlo a intentar.

  • Caducidad: define el tiempo que el servidor secundario de la zona, después de la transferencia de zona anterior, responderá a las consultas de la zona antes de descartar la suya propia como no válida.

  • TTL mínimo: este campo especifica el tiempo de validez (o de vida) de las respuestas "negativas" que realiza el servidor. Una respuesta negativa significa que el servidor contesta que un registro no existe en la zona.

    Hasta la versión 8.2 de BIND, este campo establecía el tiempo de vida por defecto de todos los registros de la zona que no tuvieran un campo TTL específico. A partir de esta versión, esto último se consigue con una directiva que debe situarse al principio del fichero de la zona. Esta directiva se especifica así:

    $TTL tiempo 
    

    Por ejemplo, un tiempo de vida por defecto de 30 minutos se establecería así:

    $TTL 30m
    

Un ejemplo de registro SOA sería el siguiente:

admon.com.  IN  pc0100.admon.com  hostmaster.admon.com. 
                (
                  1      ; número de serie
                  3600   ; actualización 1 hora
                  600    ; reintentar 10 minutos
                  86400  ; caducar 1 día
                  60     ; TTL 1 minuto
                )

Registro de Recurso NS

El registro de recursos NS (Name Server) indica los servidores de nombres autorizados para la zona. Cada zona debe contener registros indicando tanto los servidores principales como los secundarios. Por tanto, cada zona debe contener, como mínimo, un registro NS.

Por otra parte, estos registros también se utilizan para indicar quiénes son los servidores de nombres con autoridad en subdominios delegados, por lo que la zona contendrá al menos un registro NS por cada subdominio que haya delegado.

Ejemplos de registros NS serían los siguientes:

admon.com.          IN   NS    pc0100.admon.com.
valencia.admon.com. IN   NS    pc0102.valencia.admon.com.

Registro de Recurso A

El tipo de registro de recursos A (Address) asigna un nombre de dominio completamente cualificado (FQDN) a una dirección IP, para que los clientes puedan solicitar la dirección IP de un nombre de host dado.

Un ejemplo de registro A que asignaría la dirección IP 158.42.178.1 al nombre de dominio pc0101.valencia.admon.com., sería el siguiente:

pc0101.valencia.admon.com.    IN   A       158.42.178.1

Registro de Recurso PTR

El registro de recursos PTR (PoinTeR) o puntero, realiza la acción contraria al registro de tipo A, es decir, asigna un nombre de dominio completamente cualificado a una dirección IP. Este tipo de recursos se utilizan en la denominada resolución inversa, descrita en “Servidores de nombres y zonas”.

Un ejemplo de registro PTR que asignaría el nombre pc0101.valencia.admon.com. a la dirección IP 158.42.178.1 sería el siguiente:

1.178.42.158.in-addr.arpa.  IN   PTR  pc0101.admon.valencia.com.

Registro de Recurso CNAME

El registro de nombre canónico (CNAME, Canonical NAME) crea un alias (un sinónimo) para el nombre de dominio especificado.

Un ejemplo de registro CNAME que asignaría el alias controlador al nombre de dominio pc0102.valencia.admon.com, sería el siguiente:

controlador.valencia.admon.com.  
                     IN      CNAME   pc0101.valencia.admon.com.

Registro de Recurso MX

El registro de recurso de intercambio de correo (MX, Mail eXchange) especifica un servidor de intercambio de correo para un nombre de dominio. Puesto que un mismo dominio puede contener diferentes servidores de correo, el registro MX puede indicar un valor numérico que permite especificar el orden en que los clientes deben intentar contactar con dichos servidores de correo.

Un ejemplo de registro de recurso MX que define al servidor pc0100 como el servidor de correo del dominio admon.com, sería el siguiente:

admon.com.     IN     MX     0      pc0100.admon.com.

Registro de Recurso SRV

Con registros MX se puede especificar varios servidores de correo en un dominio DNS. De esta forma, cuando un proveedor de servicio de envío de correo necesite enviar correo electrónico a un host en el dominio, podrá encontrar la ubicación de un servidor de intercambio de correo. Sin embargo, esta no es la forma de resolver los servidores que proporcionan otros servicios de red como WWW o FTP.

Los registros de recurso de servicio (SRV, SeRVice) permiten especificar de forma genérica la ubicación de los servidores para un servicio, protocolo y dominio DNS determinados.

El formato de un registro SRV es el siguiente:

servicio.protocolo.nombre  TTL  clase  SRV  
                           prioridad  peso  puerto  destino

donde:

  • El campo servicio especifica el nombre de servicio: http, telnet, etc.

  • El campo protocolo especifica el protocolo utilizado: TCP o UDP.

  • nombre define el nombre de dominio al que hace referencia el registro de recurso SRV.

  • Los campos TTL y clase ha sido definidos anteriormente.

  • prioridad especifica el orden en que los clientes se pondrán en contacto con los servidores: los clientes intentarán ponerse en contacto primero con el host que tenga el valor de prioridad más bajo, luego con el siguiente y así sucesivamente.

  • peso: es un mecanismo de equilibrio de carga.

  • puerto: muestra el puerto del servicio en el host.

  • destino: muestra el nombre de dominio completo para la máquina compatible con ese servicio.

Un ejemplo de registros SRV para los servidores Web del dominio admon.com., sería:

http.tcp.admon.com.  IN  SRV   0  0  80  www1.admon.com.
http.tcp.admon.com.  IN  SRV  10  0  80  www2.admon.com.

Definición de la delegación

Para que una zona especifique que uno de sus subdominios está delegado en una zona diferente, es necesario agregar un registro de delegación y, generalmente, el denominado "registro de pegado" (glue record). El registro de delegación es un registro NS en la zona principal (padre) que define el servidor de nombres autorizado para la zona delegada. El registro de pegado es un registro tipo A para el servidor de nombres autorizado para la zona delegada, y es necesario cuando el servidor de nombres autorizado para la zona delegada también es un miembro de ese dominio (delegado).

Por ejemplo, si la zona admon.com deseara delegar la autoridad a su subdominio valencia.admon.com, se deberían agregar los siguientes registros al archivo de configuración correspondiente de la zona admon.com:

valencia.admon.com.        IN  NS  pc0102.valencia.admon.com.
pc0102.valencia.admon.com. IN  A   158.42.178.2

Tipos de zonas

Aunque distintas implementaciones de DNS difieren en cómo configurar las zonas, generalmente existe un fichero que indica sobre qué zonas tiene autoridad el servidor, indicando para cada una el fichero que contiene la información de dicha zona (si el servidor es primario para la zona), o la dirección del servidor maestro a quien preguntar por ella (si es secundario).

En general, existen tres tipos distintos de zonas: zonas de búsqueda directa, zonas de búsqueda inversa y zonas de "sugerencia raíz". Un servidor DNS puede tener autoridad sobre varias zonas directas e inversas, y necesita poseer información sobre las "sugerencias raíz" si desea responder a sus clientes sobre registros de zonas sobre las que no posee autoridad. A continuacion se describe cada tipo brevemente.

Zona de búsqueda directa

Las zonas de búsqueda directa contienen la información necesaria para resolver nombres en el dominio DNS. Deben incluir, al menos, registros SOA y NS, y pueden incluir cualquier otro tipo de registros de recurso, excepto el registro de recursos PTR.

Zona de búsqueda inversa

Las zonas de búsqueda inversa contienen información necesaria para realizar las búsquedas inversas. La mayor parte de las consultas proporcionan un nombre y solicitan la dirección IP que corresponde a ese nombre. Este tipo de consulta es el descrito en la zona de resolución directa.

Pero existen ocasiones en que un cliente ya tiene la dirección IP de un equipo y desea determinar el nombre DNS de ese equipo. Esto es importante para los programas que implementan la seguridad basándose en el FQDN que se conecta y también se utiliza para la solución de problemas de red TCP/IP.

Si el único medio de resolver una búsqueda inversa es realizar una búsqueda detallada de todos los dominios en el espacio de nombres DNS, la búsqueda de consulta inversa sería demasiado exhaustiva como para realizarla de forma práctica.

Para solucionar este problema se creó un dominio DNS especial para realizar búsquedas "inversas", denominado in-addr.arpa.. Este dominio utiliza un orden inverso de números en la notación decimal de las direcciones IP. Con esta disposición se puede delegar la autoridad de miembros inferiores del dominio in-addr.arpa. a las distintas organizaciones, a medida que se les asigna identificadores de red de clase A, B o C.

Sugerencias de los servidores del Dominio Raíz

El archivo de "sugerencias raíz" (root hint), denominado también archivo de sugerencias de caché, contiene la información de host necesaria para resolver nombres fuera de los dominios en los que el servidor posee autoridad. En concreto, este archivo contiene los nombres y las direcciones IP de los servidores DNS del dominio punto (.) o raíz.

Transferencias de zona

En aquellas zonas en las que existen diferentes servidores de nombres con autoridad (uno principal o maestro y uno o varios secundarios o esclavos), cada vez que se realizan cambios en la zona del servidor maestro, estos cambios deben replicarse a todos los servidores secundarios de esa zona. Esta acción se lleva a cabo mediante un mecanismo denominado transferencia de zona. Existen dos tipos de transferencia de zonas: completa e incremental.

Transferencia completa de zona

En una transferencia completa de zona, el servidor maestro para una zona transmite toda la base de datos de zona al servidor secundario para esa zona.

Los servidores secundarios siguen los siguientes pasos a la hora de realizar una transferencia de zona:

  1. El servidor secundario para la zona espera el tiempo especificado en el campo Actualizar del registro SOA y luego le pregunta al servidor maestro por su registro SOA.

  2. El servidor maestro responde con su registro SOA.

  3. El servidor secundario para la zona compara el número de serie devuelto con su propio número y si este es mayor que el suyo, solicita una transferencia de zona completa.

  4. El servidor maestro envía la base de datos de la zona completa al servidor secundario.

Si el servidor maestro no responde, el servidor secundario lo seguirá intentando después del intervalo especificado en el campo Reintentos del registro SOA. Si todavía no hay respuesta después del intervalo que se especifica en el campo Caduca desde la última transferencia de zona, este descarta su zona.

Transferencia incremental de zona

Las transferencias completas de zona pueden consumir gran ancho de banda de la red. Para poder solucionar este problema se define la transferencia incremental de zona, en la cual sólo debe transferirse la parte modificada de una zona.

La transferencia incremental de zona funciona de forma muy similar a la transferencia completa. En este caso, el servidor secundario para la zona comprueba el número de serie del registro SOA del maestro con el suyo, para determinar si debe iniciar una transferencia de zona, la cual en este caso sería incremental (sólo de los cambios realizados).

Notificación DNS

Con este proceso se pretende que el servidor maestro para la zona notifique los cambios a ciertos servidores secundarios y de esta manera los secundarios podrán comprobar si necesitan iniciar una transferencia de zona. De esta forma se mejora la coherencia de los datos mantenida por todos los servidores secundarios.

Actualizaciones dinámicas

Originalmente, DNS se diseñó para que solamente admitiera cambios estáticos. De esta forma, sólo el administrador del sistema DNS podía agregar, quitar o modificar los registros de recursos, realizando cambios manuales sobre los ficheros de configuración correspondientes.

El sistema de actualizaciones dinámicas, permite que el servidor principal para la zona pueda configurarse de forma que acepte actualizaciones de recursos enviadas desde otros equipos (habitualmente, sus clientes DNS). Este es el sistema preferido en el caso de Windows 2000, aunque muchos administradores de DNS lo desaconsejan por razones de seguridad.

Por ejemplo, el servidor maestro puede admitir (e incluir en su configuración) actualizaciones de registros A y PTR de las estaciones de trabajo de su dominio, que le envían esa información cuando arrancan. También sería posible recibir estas actualizaciones de un servidor DHCP, una vez ha proporcionado la configuración IP a un cliente.