El primer archivo en la configuración de un servidor de nombres es el
archivo de arranque, que es leído por el demonio named
cuando
arranca para saber a qué dominios va a servir y dónde encuentra las
tablas de máquinas y direcciones IP, entre otras cosas. Este archivo
es generalmente /etc/named.boot
. Un ejemplo típico de este
archivo es el siguiente:
; ; Archivo /etc/named.boot para master.cfemex.com ; directory /var/named ; ; dominio archivo respaldo ;---------------------------------------------------------------------- cache . db.cache primary cfemex.com db.cfemex.com primary 16.159.in-addr.arpa db.159.16 primary 0.0.127.in-addr.arpa db.local forwarders 159.16.10.24
Las líneas que conforman el archivo se describen a continuación.
Indica el directorio donde named
debe buscar los archivos que
aparecen en las líneas siguientes. Si named
no encuentra esta
línea, buscará los archivos en el directorio /etc
.
Esta línea indica el archivo que contiene las direcciones de los servidores de nombres para dominios superiores. Es muy importante porque sin ella nuestro servidor de nombres no podrá resolver ningún nombre excepto aquellos para los cuales es autoritativo.
En una máquina conectada a internet este archivo debe contener las
direcciones de las máquinas encargadas de resolver dominios superiores
(.com
o .edu
, por ejemplo). Un archivo de caché correcto y
actualizado puede obtenerse de ftp.rs.internic.net
.
En una red interna que no tiene acceso a internet, o en una que se encuentra detrás de un firewall, este archivo debe estar presente pero puede estar vacío, ya que no hay necesidad de resolver nombres para máquinas de ningún dominio superior.
El archivo de caché para un subdominio que no tiene acceso a Internet,
o sea, a servidores raíz, debería apuntar a su servidor de dominio
superior. Aquí está una muestra del archivo de
master.cfemex.com
:
. 99999999 IN NS INTERNET.CFEMEX.COM INTERNET.CFEMEX.COM 99999999 A 159.16.10.24
Indica un dominio para el cual este servidor de nombres es
autoritativo. Para convertir nombres en direcciones IP la sintaxis es
sencilla; basta poner el nombre del dominio completo y el archivo que
contiene los nombres de las máquinas con sus direcciones IP. Cuando
se trata de convertir direcciones IP a nombres, la sintaxis puede
parecer un poco extraña. La pieza de información siguiente a la
palabra primary no es otra cosa que el segmento de direcciones
IP para el cual esta máquina es autoritativa, sólo que con los números
invertidos y las palabras in-addr.arpa
añadidas después de un
punto. Al final queda, por supuesto, el archivo que contiene el mapeo
de direcciones a nombres. Por ejemplo: el servidor de nombres cuyo
archivo de arranque aparece arriba resuelve direcciones para todas las
máquinas bajo el dominio cfemex.com
. Resulta que estas máquinas
tienen IPs de la forma 159.16.x.x
, por lo que la línea para la
resolución reversa contiene el texto: 16.159.in-addr.arpa
.
Una línea primary que por lo general está presente es la que
resuelve la reversa para las IPs 127.0.0
, que es la última línea
primary mostrada en el archivo de ejemplo, más arriba.
Al igual que primary, esta línea indica un dominio para el cual somos
autoritativos, pero del que no obtenemos la información de primera
mano a través de un archivo, sino a través de otro servidor de
nombres. Esta línea sirve para implementar redundancia: dos servidores
de distintos dominios pueden declararse secundarios mutuamente y, si
alguno de los dos se cae, el otro podrá responder por ambos hasta que
el servicio se restablezca. La pieza de información que sigue a la
palabra secondary es la dirección del servidor de nombres del otro
dominio, y a continuación tenemos un archivo donde named
depositará la información que obtenga para la eventualidad de que el
otro servidor se caiga, como ya dijimos.
Esta línea sirve para indicar servidores de niveles superiores al nuestro, con el fin de redirigir las peticiones de información que el servidor de nombres no puede resolver. En este ejemplo ponemos la dirección del servidor de nombres externo de CFE porque suponemos que es el más indicado para resolver peticiones fuera de nuestra red.
Supongamos que queremos dar de alta un servidor de nombres para una
subzona de cfemex.com
, por ejemplo norte.cfemex.com
. El
archivo de arranque debería ser como el siguiente:
; ; Archivo /etc/named.boot para la zona norte.cfemex.com ; directory /var/named cache . db.cache primary norte.cfemex.com db.norte.cfemex.com primary 10.16.159.in-addr.arpa db.159.16.10 primary 0.0.127.in-addr.arpa db.local forwarders 159.16.10.8
Nótese el uso de la línea forwarders: el servidor de nombres para la
zona norte.cfemex.com
necesita de un servidor de orden superior
que le resuelva nombres que no estén en su dominio. Necesita también
de un archivo de caché que contenga un servidor de orden superior:
. 99999999 IN NS MASTER.CFEMEX.COM MASTER.CFEMEX.COM 99999999 A 159.16.10.8
En este caso, el servidor de orden superior apunta a
master.cfemex.com
, que es el indicado para resolver nombres que
quedan fuera de la jurisdicción de la zona norte
.
Un servidor secundario sólo utiliza líneas secondary, no se
declara primario para ningún dominio (a excepción de la reversa de
127.0.0
). Es el ejemplo típico de un servidor de respaldo, que
se vuelve esencial cuando el servidor primario falla:
; ; Archivo de arranque para un servidor secundario ; directory /var/named ; ; Tipo Dominio servidor primario respaldo ; cache . db.cache secondary cfemex.com master.cfemex.com db.cfemex.com primary 0.0.127.in-addr.arpa db.local
La línea secondary indica el dominio para el cual se declara
autoritativo, el servidor primario de donde recibe su información, y
un archivo de respaldo, donde named
guarda la información del
dominio a modo de respaldo, para el caso de que el servidor primario falle.
Un servidor que sólo hace caché es un servidor que no es primario para ningún dominio, sólo redirige las peticiones de información hacia otro servidor y guarda las respuestas. Un servidor de nombres de este tipo es útil porque disminuye el tráfico de peticiones de resolución de nombres en la red. Un archivo de arranque típico para una máquina con acceso completo a Internet, es decir, que puede ver los servidores raíz, sería el siguiente:
; ; Archivo de arranque para un servidor de sólo caché ; ; directory /var/named cache . db.cache primary 0.0.127.in-addr.arpa named.local
En caso de que el servidor de nombres no tenga acceso completo a Internet, el archivo deberá contener una línea forwarders y necesitará un archivo de caché similar al de la sección previa.