Un archivo de zona del Sistema de Nombres de Dominio (DNS) es un archivo de texto que describe una zona DNS . Una zona DNS es un subconjunto, a menudo un solo dominio, de la estructura jerárquica de nombres de dominio del DNS. El archivo de zona contiene asignaciones entre nombres de dominio , direcciones IP y otros recursos, organizadas en forma de representaciones textuales de registros de recursos (RR). Un archivo de zona puede ser un archivo maestro DNS, que describe de forma autorizada una zona, o puede utilizarse para listar el contenido de una caché DNS. [ 1 ] [ 2 ]
Formato de archivo
El formato de un archivo de zona se define en RFC 1035 (sección 5) y RFC 1034 (sección 3.6.1). Este formato fue utilizado originalmente por el paquete de software Berkeley Internet Name Domain (BIND), pero ha sido ampliamente adoptado por otros programas de servidor DNS, aunque algunos de ellos (por ejemplo, NSD , PowerDNS ) utilizan los archivos de zona solo como punto de partida para compilarlos en formato de base de datos; véase también la integración de Microsoft DNS con Active Directory .
Un archivo de zona es una secuencia de entradas orientadas a líneas, cada una de las cuales es una directiva o una descripción de texto que define un único registro de recurso ( RR ). Una entrada se compone de campos separados por cualquier combinación de espacios en blanco (tabulaciones y espacios) y termina en un límite de línea, excepto dentro de un valor de campo de cadena entre comillas o un par de paréntesis de formato que la encierren. Cualquier línea puede terminar con un texto de comentario precedido por un punto y coma, y el archivo también puede contener cualquier número de líneas en blanco. [ 3 ]
Las entradas pueden aparecer en cualquier orden en un archivo de zona, con la excepción de que el registro SOA debe estar en la parte superior de la zona.
Las directivas son entradas de control que afectan al resto del archivo de zona. El primer campo de una directiva consta de un signo de dólar seguido de una palabra clave:
- A $ORIGIN le sigue un nombre de dominio que se utilizará como origen para los nombres de dominio relativos subsiguientes.
- A $INCLUDE le sigue un nombre de archivo y un nombre de dominio de origen opcional que se utilizará al interpretar su contenido (que se trata como si apareciera en el archivo padre, seguido de un restablecimiento al valor de origen antes de la evaluación de la directiva).
- $TTL, definido en RFC 2308 (sección 4), va seguido de un número que se utilizará como TTL (tiempo de vida) predeterminado . [ 4 ]
- $GENERATE, una extensión no estándar aceptada por BIND y otros programas de servidor de nombres para insertar múltiples registros de recursos con una sola entrada, va seguida de una representación concisa de una secuencia creciente de números no negativos y, a continuación, una plantilla de entrada RR. Se añade un registro de recurso por cada número de la secuencia, utilizando la plantilla con los caracteres "$" sin escape reemplazados por el número.
Una entrada de registro de recursos consta de varios campos, como se indica a continuación (ambos órdenes de campos son aceptables y pueden utilizarse indistintamente):
El campo de nombre puede dejarse en blanco. En ese caso, el registro hereda el campo del registro anterior. El símbolo @ independiente indica el origen actual.
El campo ttl especifica el número de segundos tras los cuales un cliente de caché debe descartar el registro y realizar una nueva resolución para obtener información actualizada. Algunos servidores de nombres, incluido BIND, permiten representaciones no estándar que utilizan abreviaturas de unidades de tiempo (por ejemplo, "2d" que significa dos días de 24 horas o "1h30m" que significa una hora y 30 minutos). Puede omitirse, en cuyo caso el valor resultante se establecerá a partir del TTL predeterminado (si está definido) o del registro anterior.
El campo de clase de registro indica el espacio de nombres de la información del registro. Puede omitirse, en cuyo caso el valor resultante se establecerá a partir del registro anterior. El espacio de nombres más utilizado es el de Internet, indicado por el parámetro IN , pero existen otros que también se utilizan, por ejemplo, CHAOS .
El campo tipo de registro es una abreviatura del tipo de información almacenada en el último campo, datos del registro . Por ejemplo: un registro de dirección (tipo A para IPv4 o tipo AAAA para IPv6 ) asigna el nombre de dominio del primer campo a una dirección IP en los datos del registro; un registro de servidor de correo (tipo MX ) especifica el servidor de correo del Protocolo simple de transferencia de correo (SMTP) para un dominio.
El campo de datos del registro puede constar de uno o más elementos de información, según los requisitos de cada tipo de registro. Por ejemplo, un registro de dirección solo requiere una dirección, mientras que un registro de servidor de correo requiere una prioridad y un nombre de dominio. Dichos elementos de información se representan como campos separados por espacios en blanco.
Archivo de ejemplo
Un ejemplo de archivo de zona para el dominio example.com es el siguiente:
$ORIGINexample.com.; designates the start of this zone file in the namespace$TTL3600; default expiration time (in seconds) of all RRs without their own TTL valueexample.com.INSOAns.example.com.username.example.com.(20200910257200360012096003600)example.com.INNSns; ns.example.com is a nameserver for example.comexample.com.INNSns.somewhere.example.; ns.somewhere.example is a backup nameserver for example.comexample.com.INMX10mail.example.com.; mail.example.com is the mailserver for example.com@INMX20mail2.example.com.; equivalent to above line, "@" represents zone origin@INMX50mail3; equivalent to above line, but using a relative host nameexample.com.INA192.0.2.1; IPv4 address for example.comINAAAA2001:db8:10::1; IPv6 address for example.comnsINA192.0.2.2; IPv4 address for ns.example.comINAAAA2001:db8:10::2; IPv6 address for ns.example.comwwwINCNAMEexample.com.; www.example.com is an alias for example.comwwwtestINCNAMEwww; wwwtest.example.com is another alias for www.example.commailINA192.0.2.3; IPv4 address for mail.example.commail2INA192.0.2.4; IPv4 address for mail2.example.commail3INA192.0.2.5; IPv4 address for mail3.example.com
Como mínimo, el archivo de zona debe especificar el registro de Inicio de Autoridad (SOA) con el nombre del servidor de nombres maestro autoritativo para la zona y la dirección de correo electrónico de la persona responsable de la administración del servidor de nombres (representada como un nombre de dominio, con un punto en lugar del símbolo @ ). Los parámetros del registro SOA también especifican una lista de parámetros de tiempo y expiración (número de serie, período de actualización del servidor esclavo, tiempo de reintento del servidor esclavo, tiempo de expiración del servidor esclavo y tiempo máximo para almacenar en caché el registro). Algunos servidores de nombres, incluido BIND, también requieren al menos un registro NS adicional.
En el archivo de zona, los nombres de dominio que terminan con un punto (como " example.com. " en el ejemplo anterior) están completamente calificados, mientras que aquellos que no terminan con un punto son relativos al origen actual (por eso www en el ejemplo anterior se refiere a www.example.com ).
Un archivo de zona es referenciado por el archivo de configuración del software del servidor de nombres. Por ejemplo, BIND normalmente utiliza una instrucción como la siguiente:
zona "example.com" { tipo maestro; archivo "/var/named/db.example.com"; };Zona raíz y dominios de nivel superior
Los archivos de zona para la zona raíz DNS y para el conjunto de dominios de nivel superior contienen registros de recursos únicamente para los servidores de nombres de dominio autoritativos para cada nombre de dominio.
Host local
Algunos programas de servidor configuran automáticamente los registros de recursos para dominios o nombres de host especialmente reconocidos, como localhost , pero también se puede utilizar un archivo maestro de zona personalizado.
Un ejemplo de configuración manual de la zona de reenvío para localhost es el siguiente:
$ORIGIN localhost. @ 86400 IN SOA @ root ( 1999010100 ; serial 10800 ; refresh (3 horas) 900 ; retry (15 minutos) 604800 ; expire (1 semana) 86400 ; minimum (1 día) ) @ 86400 IN NS @ @ 86400 IN A 127.0.0.1 @ 86400 IN AAAA ::1La definición de zona inversa correspondiente es:
;; archivo de zona inversa para 127.0.0.1 y ::1 $TTL 1814400 ; 3 semanas @ 1814400 IN SOA localhost. root.localhost. ( 1999010100 ; serial 10800 ; actualización (3 horas) 900 ; reintento (15 minutos) 604800 ; expiración (1 semana) 86400 ; mínimo (1 día) ) @ 1814400 IN NS localhost. 1 1814400 IN PTR localhost.Este archivo no especifica el origen, por lo que puede utilizarse tanto para IPv4 como para IPv6 con esta configuración:
zona "0.0.127.in-addr.arpa" IN { tipo maestro ; archivo "r.local" ; } ; zona "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { tipo maestro ; archivo "r.local" ; } ;Se pueden crear archivos maestros de zona similares para la resolución inversa de la dirección de difusión y la dirección nula. Estos archivos de zona impiden que un servidor DNS haga referencia a otros servidores DNS, posiblemente externos.
Véase también
Referencias
- ↑ RFC 1035 , Nombres de dominio: implementación y especificación , P. Mockapetris, (noviembre de 1987)
- ↑ RFC 4027 , Tipos de medios del sistema de nombres de dominio , S. Josefsson, (abril de 2005)
- ↑ RFC 1034 , Nombres de dominio: conceptos y funcionalidades , P. Mockapetris, (noviembre de 1987)
- ↑ RFC 2308 , Almacenamiento en caché negativo de consultas DNS (DNS NCACHE) , M. Andrews, (marzo de 1998)
- Sistema de nombres de dominio