SOA
El RR SOA (Star Of Authority, RFC 1035, 2308) describe las propiedades globales de la zona o dominio. Solo debe haber un registro SOA en un fichero de zona y tiene que ser el primer RR. Su sintaxis es la siguiente:
nombre-dominio ttl-RR IN SOA nombre-servidor-maestro correo-electrónico-administrador numero-serie t-refresco t-reintento t-expiración nx
aunque suele escribirse, para mejorar su legibilidad, en varias líneas utilizando los paréntesis, por ejemplo:
@ IN SOA ns1.asir.com. hostmaster.asir.com. (
2016040800 ; se = serial number
12h ; ref = refresh
15m ; ret = refresh retry
3w ; ex = expiry
2h ; nx = nxdomain ttl
)
Los paréntesis permiten que los campos de los RR se puedan escribir cada uno en una línea separada. El RR SOA tiene muchos campos y por eso se usan habitualmente los paréntesis.
En nombre-dominio suele ponerse el símbolo @ que representa el valor de $ORIGIN, y como es el primer RR del fichero, esta directiva suele tener el nombre del dominio que describe el fichero de zona.
El significado de los campos es el siguiente:
- nombre-servidor-maestro: Especifica un servidor DNS maestro del dominio, pero este significado de maestro es solo en el contexto del DNS dinámico (DDNS), indicando cuál es el servidor que podrá ser actualizado vía transacciones DDNS. Si no se ha configurado el DDNS, y por lo tanto no se usa, podemos poner cualquier servidor autoritario para el dominio, maestro o esclavo. Este servidor puede ser interno al dominio o externo, pero siempre debe llevar un RR NS. Es normal escribirlo en formato FQDN, pero esto solo es obligatorio en el caso de que sea un servidor externo.
- correo-electrónico-administrador: Se pone la dirección de correo electrónico (interna al dominio o externa) de la persona responsable de la zona. Se aconseja (RFC 2412) que sea una cuenta de correo exclusiva para este menester. En el ejemplo, el e-mail especificado es hostmaster@asir.com, pero como el símbolo @ tiene un significado especial, se sustituye por un punto: hostmaster.asir.com. Es habitual escribirlo en formato FQDN, pero solo es obligatorio para direcciones de correo externas al dominio.
- numero-serie: Valor entero de 32 bits sin signo que va desde 1 hasta 4294967295. Este número lo utilizan los servidores DNS esclavos para ver si se han producido cambios en el fichero de zona y así actualizarse. Debemos incrementar este número cada vez que se hagan modificaciones sobre el fichero de zona. Se aconseja que se utilice un número con el siguiente formato basado en la fecha de la modificación: yyyymmddnn, donde nn es un número que comienza en 00 y es la parte que se incrementará cuando se hagan varias modificaciones en el mismo día, pues el resto del número no cambia. En el ejemplo, el número de serie está indicando que es la primera modificación realizada el 8 de abril de 2016. Se debe tener extremo cuidado de no cometer errores con este número.
- t-refresco: Indica el intervalo de tiempo tras el cual un servidor esclavo intentará actualizarse con la zona del servidor maestro. El RFC 1912 recomienda utilizar valores comprendidos entre 1200 segundos (20 minutos) y 43200 segundos (12 horas) según lo volátil que sean los RR. Si se usan los mensajes NOTIFY para la actualización, se pueden poner valores más elevados. Valor entero de 32 bits con signo.
- t-reintento: Indica el intervalo de tiempo entre reintentos del servidor esclavo, para cuando la conexión con el servidor maestro tras el tiempo de refresco ha fallado. El valor dependerá del conocimiento que tengamos del estado de la red, pero los valores van de 180 segundos (2 minutos) a 900 segundos (15 minutos). Valor entero de 32 bits con signo.
- t-expiración: Indica el intervalo de tiempo que el servidor esclavo estará haciendo reintentos de conexión con el servidor maestro porque este no contesta. Hasta que no pase este tiempo, aunque el servidor esclavo no se pueda actualizar, responde a las consultas de forma autoritaria, pero llegado el momento de expiración, deja de contestar a las consultas de la zona que no ha podido actualizarse. El RFC 1912 recomienda utilizar valores comprendidos entre 1209600 y 2419200 segundos, de 2 a 4 semanas. Valor entero de 32 bits con signo.
- nx: Indica el intervalo de tiempo que se mantendrá una consulta no resuelta en la caché de los servidores de nombres; transcurrido dicho tiempo, se volverá a intentar resolver la consulta (RFC 2308). Por ejemplo, si se hace una consulta del FQDN fpg.asir.com, y no es posible resolverla, el servidor devolverá un error de nombre (Name Error o NXDOMAIN). Durante los siguientes nx segundos, si se vuelve a hacer la misma consulta, se responderá de la misma forma; pero pasadas las dos horas, se intentaría de nuevo resolver la consulta fallida. Los valores posibles van de 0 hasta 10800 (3 horas). Anteriormente, este campo era el TTL por defecto de los RR, pero luego se introdujo la directiva $TTL como obligatoria y se le dio al campo el actual significado. Es por esto que nos podemos encontrar valores superiores a 10800 en antiguas configuraciones (versiones 4 y 8 de BIND); en estos casos BIND manda un mensaje log cuando se carga la zona y asume el valor 10800 para el parámetro nx. Valor entero de 32 bits con signo.
En los valores de tiempo se pueden utilizar los sufijos de tiempo de la misma forma que en $TTL. En el siguiente ejemplo se utilizan estos sufijos, y además se especifican solo servidores de nombre externos.
$TTL 2d
$ORIGIN asir.com.
@ IN SOA ns.asir.net. hostmaster.asir.com. (
2010121500 ; serial number
1d12h ; refresh = 1 dia 12 horas
15m ; refresh retry = 15 minutos
3w12h ; expiry = 3 semanas + 12 horas
2h20m ; nx = 2 horas + 20 minutos
)
IN NS ns.asir.net.
IN NS ns.asir.org.
Con un servidor NS interno y otro externo:
$TTL 2d
$ORIGIN asir.com.
@ IN SOA ns.asir.com. hostmaster.asir.com. (
2010121500 ; serial number
1d12h ; refresh = 1 dia 12 horas
15m ; refresh retry = 15 minutos
3w12h ; expiry = 3 semanas + 12 horas
2h20m ; nx = 2 horas + 20 minutos
)
IN NS ns.asir.com.
IN NS ns.asir.net.
ns IN A 192.168.1.1
y esto mismo escrito de otra forma:
$TTL 2d
$ORIGIN asir.com.
@ IN SOA ns hostmaster (
2010121500 ; serial number
1d12h ; refresh = 1 dia 12 horas
15m ; refresh retry = 15 minutos
3w12h ; expiry = 3 semanas + 12 horas
2h20m ; nx = 2 horas + 20 minutos
)
IN NS ns
IN NS ns.asir.net.
ns.asir.com. IN A 192.168.1.1
Licencia: licencia de software libre GPL