DNS secundario
El sistema de nombres de dominio (DNS, Domain Name System) es un sistema distribuido globalmente para traducir los dominios de Internet en direcciones IP. El DNS devuelve una dirección IP para un nombre de dominio, actuando como la “libreta de direcciones” de Internet. El concepto de dirección IP equivale a una dirección postal a la que pueden enviarse paquetes. Estos son algunos ejemplos de consultas al DNS:
Nombre de dominio solicitado | Dirección IP devuelta |
---|---|
‘example.com’ | '93.184.216.34' |
‘ionos.es’ | '217.160.86.79' |
Debido a la importancia del DNS, es esencial mantener la información del DNS distribuida de forma redundante en diferentes sistemas. De esta manera, la información sigue estando disponible si los componentes individuales del DNS fallan. Asimismo, la proximidad geográfica de un servidor es decisiva para la velocidad de las respuestas. En un sistema redundante, se distingue entre una fuente y varias copias. En la práctica, tal configuración necesita un mecanismo para ajustar las copias redundantes cuando la fuente cambia.
¡Prueba tu servidor virtual durante 30 días! Si lo solicitas, te reembolsaremos todos los gastos incurridos.
¿Qué es un DNS secundario?
El Grupo de Trabajo de Ingeniería de Internet (IETF, Internet Engineering Task Force) creó en 1996 una especificación que significó un mecanismo básico para distribuir la información del DNS para una zona DNS en múltiples servidores. De esta manera, se mostró cómo un servidor DNS primario (entonces llamado master) notificaba al grupo de servidores DNS secundarios (entonces llamados slaves) de un cambio de la zona DNS. Los servidores DNS secundarios debían hacer una solicitud al servidor DNS primario para obtener los cambios.
“Este documento describe el código de operación NOTIFY para DNS, con el cual un servidor master notifica a un grupo de servidores secundarios que los datos del servidor primario han cambiado, y solicita a los servidores secundarios recuperar los nuevos datos” – Grupo de Trabajo de Ingeniería en Internet (IETF). Fuente: https://www.ietf.org/rfc/rfc1996.txt. Traducción: IONOS.
(Original: “This memo describes the NOTIFY opcode for DNS, by which a master server advises a set of slave servers that the master's data has been changed and that a query should be initiated to discover the new data”.)
El uso de los términos “master” y “slave” en la tecnología ha caído en desuso debido a su sensibilidad histórica. Las palabras se están reemplazando de forma gradual por términos equivalentes.
Por definición, solo hay un servidor DNS primario para una zona DNS. Este pone a disposición la información fuente del DNS para la zona y sirve como punto de entrada para el administrador de zona. Si hay que hacer cambios en una zona DNS, se hacen en el servidor primario DNS. Por el contrario, varios servidores secundarios de DNS distribuidos por todo el mundo pueden utilizarse para copiar la información DNS. A menudo, se utiliza un proveedor DNS aparte para alojar el DNS secundario.
Ten en cuenta que los términos “primario” y “secundario” se utilizan en dos casos en el contexto de DNS. Quizá sepas que, en la configuración del sistema de tu conexión red, puedes cambiar el servidor DNS a utilizar. A menudo se utiliza entonces las denominaciones “primarios” y “secundarios”. Sin embargo, esto es otro uso del término. En términos de zona DNS, los dos servidores que especifiques pueden ser servidores DNS secundarios. Además, si lo deseas, puedes configurar más de dos servidores DNS.
¿Cuál es la diferencia entre el DNS primario y el DNS secundario?
En primer lugar, hemos de saber que tanto los servidores DNS primarios como los secundarios son “servidores de nombres autorizados” para la zona respectiva. Esto significa que se puede confiar en la información almacenada para la zona DNS. De esta manera, los servidores de nombres autorizados contrastan con los servidores de nombres de caché, que simplemente almacenan la información DNS a partir de las consultas DNS ya realizadas.
La diferencia entre los servidores DNS primarios y secundarios es principalmente administrativa. El servidor DNS primario contiene la información de una zona DNS en el archivo de zona sobre el que el administrador puede realizar directamente los cambios. Por el contrario, el archivo de zona de un servidor DNS secundario no se puede reescribir directamente. En cambio, cualquier cambio en el archivo de zona se obtiene del DNS primario.
Cuando se realizan cambios en el archivo de zona, se envía esta información a los servidores DNS secundarios y estos consultan los datos modificados. La transferencia de información de DNS entre servidores se conoce como transferencia de zona. En las transferencias de zona, un servidor DNS secundario es el destino, mientras que el servidor DNS primario es la fuente. Ten en cuenta que el mismo servidor físico puede ser el servidor DNS primario para una zona DNS y un servidor DNS secundario para otra zona.
¿Cómo funciona un DNS secundario?
La característica más importante del DNS secundario es que el archivo de zona se transfiere de una fuente externa a los servidores. Se utilizan varios mecanismos para la transferencia de zona. El registro DNS, “Start of Authority“ (SOA) es fundamental. Incluye varios campos:
- El campo “MNAME”, que contiene la dirección IP del servidor DNS primario
- La entrada SOA, que contiene una serie de campos que definen los intervalos en los que los servidores DNS secundarios solicitan automáticamente cambios en el primario.
A continuación, veremos tres configuraciones comunes de DNS.
Primaria/Secundaria
En cierto modo, esta es la configuración “clásica” para distribuir la información DNS de una zona a varios servidores DNS autorizados. Se utiliza un servidor DNS primario que se especifica en el campo MNAME del registro SOA. Los servidores DNS secundarios comprueban en intervalos regulares si se ha realizado un cambio en la información del DNS de su zona e inician una transferencia con los datos modificados en caso de que sea necesario. Además, el servidor primario puede notificar a los servidores DNS secundarios de los cambios a través de una declaración notify.
Hidden Primary
Hidden Primary es una variante interesante de la configuración clásica primaria/secundaria. Sin embargo, en este caso el servidor primario trabaja de manera oculta. El servidor especificado en el campo MNAME del registro SOA no es el servidor primario real. Por ello, los servidores DNS secundarios no pueden consultar ningún cambio de la zona DNS, sino que el primario oculto debe solicitarlo explícitamente a través de una declaración notify.
Una acción conocida es configurar un ordenador en la red local como un servidor DNS y usarlo como hidden primary. Esto tiene dos ventajas:
- Los cambios en los archivos de zona pueden hacerse a nivel local
- El tráfico entrante del DNS es administrado por los servidores DNS secundarios
Se recomienda asegurar la comunicación entre los servidores DNS secundarios y el hidden primary a través de encriptación DNSSEC.
Primaria/Primaria
Esta configuración se ha desarrollado recientemente. Se utilizan varios servidores DNS autorizados para una zona DNS, los cuales contienen los datos fuente. No existe transferencia de zonas entre ellos, y por ello no hay DNS secundario. Cualquier cambio en la zona DNS requiere una coordinación con los servidores DNS primarios. Para ello deben utilizarse sistemas patentados. Un ejemplo sería un sistema externo con GUI y API utilizado para cambiar la información del DNS y distribuir cambios.
¿Por qué debe usarse un DNS secundario?
Utilizar un DNS secundario tiene muchas ventajas. Para entenderlas, imaginemos que solo hubiese un servidor DNS para una zona DNS. Esta configuración tendría las siguientes desventajas:
- Los usuarios más alejados del servidor DNS primario recibirían las respuestas con retraso en comparación con los usuarios más cercanos.
El DNS secundario aporta un alto rendimiento para responder a las solicitudes del DNS.
- Un fallo en el servidor DNS primario tendría como consecuencia que la información autorizada para la zona DNS no estuviese disponible.
El DNS secundario proporciona redundancia y alta disponibilidad de la información DNS.
- Una entrada elevada de solicitudes DNS sobrecargaría el servidor DNS primario.
El DNS secundario distribuye la carga y mejora la disponibilidad de la información DNS.
Una configuración sin DNS secundario sería muy vulnerable a problemas técnicos y ciberataques.
Las ventajas del uso de un DNS secundario son en su mayoría técnicas. Pero también hay una razón administrativa, que se presenta cuando una organización quiere migrar a un nuevo proveedor DNS. En este caso, el concepto existente para la gestión de la zona DNS puede seguir utilizándose, por ejemplo, en una configuración hidden primary. El nuevo proveedor DNS se encargará de la respuesta a las solicitudes DNS entrantes como el DNS secundario.
¿Cómo se puede averiguar cuál es el DNS secundario?
Las diferencias entre el DNS primario y secundario son principalmente administrativas. A nivel externo, no se puede determinar si un servidor DNS autorizado es primario o secundario. Además, el mismo servidor puede ser DNS primario para una zona y DNS secundario para otra. Ni siquiera el campo MNAME del registro SOA puede ayudar, ya que el servidor DNS primario real puede ser ejecutado como hidden primary.