40.5. Sintaxis de los archivos de zona

Existen dos tipos de archivos de zona: el primero sirve para asignar la dirección IP a un nombre de ordenador y el segundo proporciona el nombre del ordenador en función de una dirección IP.

[Tip]El punto (.) en los archivos de zona

El símbolo del punto . tiene un significado importante en los archivos de zona. A todos los nombres de ordenadores que se indican sin el punto por detrás, se les añade la zona. Por eso es importante terminar con un . los nombres de las máquinas que se hayan anotado con el dominio completo. La falta o la posición equivocada de un punto suele ser la causa de error más frecuente en la configuración de un servidor de nombres.

El primer ejemplo forma el archivo de zona world.zone que corresponde al dominio world.cosmos; véase el Ejemplo 40.6, “archivo /var/lib/named/world.zone”.

Ejemplo 40.6. archivo /var/lib/named/world.zone

$TTL 2D
world.cosmos. IN SOA      gateway  root.world.cosmos. (
            2003072441  ; serial
            1D          ; refresh
            2H          ; retry
            1W          ; expiry
            2D )        ; minimum

            IN NS       gateway
            IN MX       10 sun

gateway     IN A        192.168.0.1
            IN A        192.168.1.1
sun         IN A        192.168.0.2
moon        IN A        192.168.0.3
earth       IN A        192.168.1.2
mars        IN A        192.168.1.3
www         IN CNAME    moon
Línea 1:

$TTL define el TTL estándar, que vale para todas las anotaciones de este archivo y en este caso es de 2 días (2D = 2 days).

Línea 2:

Aquí comienza la parte del registro de control SOA o SOA control record (SOA = Start of Authority):

  • En primer lugar figura el nombre del dominio a administrar world.cosmos, terminado con un . para que no se añada otra vez el nombre de la zona. Una alternativa consiste en anotar el símbolo @ para que se busque el nombre de la zona en /etc/named.conf.

  • Por detrás de IN SOA se anota el nombre del servidor de nombres que actúa como master para esta zona. En este caso, el nombre gateway se amplia a gateway.world.cosmos ya que no termina con un punto.

  • A continuación aparece la dirección de correo electrónico de la persona que se encarga de este servidor de nombres. Como el símbolo @ ya tiene un significado especial, se le reemplaza por un . - en lugar de root@world.cosmos se escribe entonces root.world.cosmos.. No se debe olvidar el punto al final para que no se añada la zona.

  • Al final se escribe un ( para incorporar las siguientes líneas hasta el ) con todo el registro SOA.

Línea 3:

El número de serie en la línea serial number es un número al azar que debe aumentarse después de cada modificación del archivo. El cambio del número informa a los servidores de nombres secundarios sobre la modificación. Es típico utilizar una cifra de 10 dígitos formada por la fecha y un número de orden en la forma AAAAMMDDNN.

Línea 4:

El intervalo de refresco en la línea refresh rate indica al servidor de nombres secundario cuándo debe comprobar nuevamente la zona. En este caso es un día (1D = 1 day).

Línea 5:

El intervalo de reintento en la línea retry rate indica después de cuánto tiempo el servidor de nombres secundario debe intentar conectar nuevamente con el primario. En este caso son 2 horas (2H = 2 hours).

Línea 6:

El tiempo de expiración en la línea expiration time indica el tiempo transcurrido el cual el servidor de nombres secundario debe desechar los datos dentro de la caché cuando la conexión con el servidor primario haya dejado de funcionar. En este caso es una semana (1W = 1 week).

Línea 7:

La última entrada en SOA es el negative caching TTL, que indica cuánto tiempo pueden mantener los otros servidores en la caché las consultas DNS hechas que no se han podido resolver.

Línea 9:

IN NS especifica el servidor de nombres que se encarga de este dominio. En este caso se vuelve a convertir gateway en gateway.world.cosmos porque no se terminó con el punto. Puede haber varias líneas de este tipo, una para el servidor de nombres primario y otra para cada servidor de nombres secundario. Si la variable notify de /etc/named.conf tiene el valor yes, se informará de todos los servidores de nombres aquí mencionados y de los cambios en los datos de zona.

Línea 10:

El registro MX indica el servidor de correo que recibe, procesa o traspasa los mensajes para el dominio world.cosmos. En este ejemplo se trata del ordenador sun.world.cosmos. La cifra por delante del nombre de ordenador es el valor de preferencia. Si existen varias entradas MX, primero se utiliza el servidor de correo con el valor de preferencia más bajo y si la entrega del correo a este servidor falla, se utiliza el servidor con el valor inmediatamente superior.

Líneas 12–17:

Estos son los registros de direcciones (address records) en los que se asignan una o varias direcciones IP a una máquina. Todos los nombres han sido anotados sin el punto . al final, de tal forma que a todos se les añade world.cosmos. El ordenador con el nombre gateway tiene dos direcciones IP asignadas porque dispone de dos tarjetas de red. El valor A representa una dirección tradicional de ordenador, A6 hace referencia a direcciones IPv6 y AAAA es el formato obsoleto para las direcciones IPv6.

Línea 18:

Con el alias www también es posible acceder a mond (CNAME es un nombre canónico).

Para la resolución inversa de direcciones IP (reverse lookup) se utiliza el pseudo-dominio in-addr.arpa. Este se añade por detrás a la parte de red de la dirección IP escrita en orden inverso. 192.168.1 se convierte así en 1.168.192.in-addr.arpa. Consulte Ejemplo 40.7, “Resolución de nombres inversa”.

Ejemplo 40.7. Resolución de nombres inversa

    
$TTL 2D
1.168.192.in-addr.arpa. IN SOA gateway.world.cosmos. root.world.cosmos. (
                        2003072441      ; serial
                        1D              ; refresh
                        2H              ; retry
                        1W              ; expiry
                        2D )            ; minimum

                        IN NS           gateway.world.cosmos.

1                       IN PTR          gateway.world.cosmos.
2                       IN PTR          earth.world.cosmos.
3                       IN PTR          mars.world.cosmos.
Línea 1:

$TTL define el TTL estándar que sirve en este caso para todas las configuraciones.

Línea 2:

La resolución inversa “reverse lookup” se debe realizar para la red 192.168.1.0. En este caso, la zona se denomina 1.168.192.in-addr.arpa y este sufijo no se debe añadir a los nombres de las máquinas. Por eso, todos los nombres terminan con un punto. Para el resto se aplica lo mismo tal y como se explicó en el ejemplo anterior de world.cosmos.

Líneas 3–7:

Véase el ejemplo anterior de world.cosmos.

Línea 9:

Esta línea indica también el servidor de nombres responsable de la zona, pero en este caso se indica el nombre completo con el dominio y el . como terminación.

Líneas 11–13:

Aquí se encuentran los registros de los indicadores que apuntan de una dirección IP a un nombre. Al comienzo de la línea sólo se encuentra la última cifra de la dirección IP sin el punto . como terminación. Añadiendo la zona y quitando mentalmente la parte .in-addr.arpa, se obtiene la dirección IP completa en orden inverso.

Las transferencias de zonas entre las distintas versiones de BIND no deberían representar ningún problema.