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 y direcciones IP y otros recursos, organizados en forma de representaciones de texto de registros de recursos (RR). Un archivo de zona puede ser un archivo maestro de DNS, que describe autoritariamente una zona, o puede usarse para enumerar el contenido de una caché de DNS. [1]
Extensión de nombre de archivo | .zona |
---|---|
Tipo de medio de Internet | texto / dns |
Desarrollado por | ISI |
Versión inicial | 1987 |
Tipo de formato | Formato de archivo |
Estándares | RFC 1034 , 1035 , 2308 , 4027 |
¿ Formato abierto ? | sí |
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 otro software de servidor DNS, aunque algunos de ellos (por ejemplo , NSD , PowerDNS ) utilizan los archivos de zona solo como punto de partida para compilar en formato de base de datos, consulte también DNS de Microsoft con integración de base de datos de 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 solo registro de recursos ( 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 adjunto. 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.
Las entradas pueden ocurrir en cualquier orden en un archivo de zona, con algunas excepciones.
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:
- $ ORIGIN va seguido de un nombre de dominio que se utilizará como origen para los nombres de dominio relativos posteriores.
- $ INCLUDE va seguido de un nombre de archivo y un nombre de dominio de origen opcional que se utilizará al interpretar su contenido (que se tratan como si aparecieran en el archivo principal, seguido de un restablecimiento al valor de origen que precede a 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 predeterminado (tiempo de vida) .
- $ GENERATE, una extensión no estándar aceptada por BIND y algún otro software de servidor de nombres para insertar múltiples registros de recursos con una entrada, es seguida por una representación concisa de una secuencia creciente de números no negativos y luego una entrada RR de plantilla. Se agrega un registro de recursos para cada número en la secuencia, usando la plantilla con los caracteres "$" sin escape reemplazados por el número.
Una entrada de registro de recursos consta de varios campos de la siguiente manera (ambos ordenamientos de campos son aceptables y pueden usarse indistintamente):
nombre | ttl | clase récord | tipo de registro | registrar datos |
nombre | clase récord | ttl | tipo de registro | registrar datos |
El campo del nombre puede dejarse en blanco. Si es así, el registro hereda el campo del registro anterior. Se utiliza una @ independiente para indicar el origen actual.
El campo ttl especifica la cantidad de segundos después de los cuales un cliente de almacenamiento en caché debe descartar el registro y realizar una nueva operación de resolución para obtener información nueva. 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 comúnmente utilizado es el de Internet, indicado por el parámetro IN , pero existen otros y están en uso, por ejemplo, CHAOS .
El campo de tipo de registro es una abreviatura del tipo de información almacenada en el último campo, datos de 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 intercambiador de correo (tipo MX ) especifica el host de correo del Protocolo simple de transferencia de correo (SMTP) para un dominio.
El campo de datos de 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 intercambiador de correo requiere una prioridad y un nombre de dominio. Estos elementos de información se representan como campos separados por espacios en blanco.
Archivo de ejemplo
Un ejemplo de un archivo de zona para el dominio example.com es el siguiente:
$ ORIGIN example.com. ; designa el inicio de este archivo de zona en el espacio de nombres$ TTL 3600; tiempo de vencimiento predeterminado (en segundos) de todos los RR sin su propio valor TTLejemplo.com. EN SOA ns.example.com. username.ejemplo.com. (2020091025 7200 3600 1209600 3600)ejemplo.com. IN NS ns; ns.example.com es un servidor de nombres para example.comejemplo.com. IN NS ns.somewhere.example. ; ns.somewhere.example es un servidor de nombres de respaldo para example.comejemplo.com. EN MX 10 mail.example.com. ; mail.example.com es el servidor de correo de example.com@ IN MX 20 mail2.example.com. ; equivalente a la línea anterior, "@" representa el origen de la zona@ IN MX 50 mail3; equivalente a la línea anterior, pero usando un nombre de host relativoejemplo.com. IN A 192.0.2.1; Dirección IPv4 para example.com EN AAAA 2001: db8: 10 :: 1; Dirección IPv6 para example.comns IN A 192.0.2.2; Dirección IPv4 para ns.example.com EN AAAA 2001: db8: 10 :: 2; Dirección IPv6 para ns.example.comwww EN CNAME example.com. ; www.example.com es un alias de example.comwwwtest EN CNAME www; wwwtest.example.com es otro alias de www.example.comcorreo IN A 192.0.2.3; Dirección IPv4 para mail.example.commail2 IN A 192.0.2.4; Dirección IPv4 para mail2.example.commail3 IN A 192.0.2.5; Dirección IPv4 para 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 autorizado para la zona y la dirección de correo electrónico de alguien responsable de la administración del servidor de nombres (representado como un nombre de dominio, con un carácter de punto completo en lugar del símbolo @ habitual). Los parámetros del registro SOA también especifican una lista de parámetros de tiempo y vencimiento (número de serie, período de actualización del esclavo, tiempo de reintento del esclavo, tiempo de vencimiento del 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 completo (como " ejemplo.com. " En el ejemplo anterior) están completamente calificados, mientras que los que no terminan con un punto completo son relativos al origen actual (que es por qué www en el ejemplo anterior se refiere a www.example.com ).
El archivo de configuración del software del servidor de nombres hace referencia a un archivo de zona. Por ejemplo, BIND normalmente usa una declaración como:
zona "ejemplo.com" {escriba maestro; archivo "/var/named/db.example.com"; };
Zona raíz y dominios de nivel superior
Los archivos de zona para la zona raíz de DNS y para el conjunto de dominios de nivel superior contienen registros de recursos solo para los servidores de nombres de dominio autorizados para cada nombre de dominio.
Localhost
Algunos software de servidor configuran automáticamente registros de recursos para dominios o nombres de host especialmente reconocidos, como localhost , pero 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 EN SOA @ root ( 1999010100; de serie 10800; refrescar (3 horas) 900; reintentar (15 minutos) 604800; caducar (1 semana) 86400; mínimo (1 día) )@ 86400 EN NS @@ 86400 PULGADAS 127.0.0.1@ 86400 EN AAAA :: 1
La definición de zona inversa correspondiente es:
;; archivo de zona inversa para 127.0.0.1 y :: 1$ TTL 1814400; 3 semanas@ 1814400 EN SOA localhost. root.localhost. ( 1999010100; de serie 10800; refrescar (3 horas) 900; reintentar (15 minutos) 604800; caducar (1 semana) 86400; mínimo (1 día) )@ 1814400 IN NS localhost.1 1814400 EN PTR localhost.
Este archivo no especifica el origen, por lo que se puede usar tanto para IPv4 como para IPv6 con esta configuración:
zona "0.0.127.in-addr.arpa" IN { maestro de tipo; 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.ip6.arpa" IN { maestro de tipo; archivo "r.local"; };
Se pueden crear archivos maestros de zona similares para la resolución inversa de la dirección de transmisión y la dirección nula. Estos archivos de zona evitan que un servidor DNS haga referencia a otros servidores DNS, posiblemente externos.