Anterior Siguiente Contenido

3. Los archivos de zonas

Como vimos antes, cada línea primary en el archivo named.boot asocia un dominio con un archivo dentro del directorio especificado por la línea primary. A estos archivos los llamamos archivos de zonas, y a su dominio asociado le llamamos origen. Cada nombre de dominio o de máquina que aparezca en estos archivos es considerado relativo a este origen a menos que termine con un punto. Esta regla no debe ser tomada a la ligera: todos los nombres en un archivo de zona son expandidos agregándoles el origen a menos que terminen en un punto, y esto nos puede desconcertar en ocasiones. Para hacer referencia al origen en sí es necesario usar el símbolo ``@''.

Los archivos de zonas están hechos de lo que en inglés se conoce como resource records o, simplemente, RRs, y tienen un tipo asociado. Por ejemplo, un registro para asociar un nombre de máquina con una dirección IP tiene el tipo A, y uno para asociar un nombre corto o alias a una máquina a la que ya se le asoció un IP es de tipo CNAME. En general, los registros o RRs tienen la forma siguiente:

        [dominio] [ttl] [clase] tipo datos

Cada campo del registro se separa mediante espacios o tabuladores. Los campos entre paréntesis cuadrados son opcionales, como se verá. Un campo puede ocupar más de una línea siempre y cuando aparezca un paréntesis antes del primer salto de línea y otro paréntesis cierre después del último campo del registro en la última línea. Un ejemplo típico de esto es el registro SOA, que veremos más adelante. Al igual que en el archivo de arranque, el named.boot, es posible introducir comentarios en un archivo de zona mediante un punto y coma: todo lo que aparece después de este signo es ignorado.

dominio

Este es el nombre del dominio (o de máquina, que para el caso es lo mismo), al cual se aplica el registro. Recordemos que sino termina en un punto se le considera relativo al origen del archivo. Este campo es opcional; si no aparece, el registro se aplica al RR anterior.

ttl

Del inglés time to live. Es posible asignarle a cada registro un tiempo de vida en segundos, que sirve para que cualquiera que utilice este registro descarte su información al término de este periodo.

Este campo es importante, porque si su valor es demasiado bajo, los clientes del servidor de nombres le harán solicitudes frecuentemente por el mismo dato, lo que afectará el rendimiento del sistema. Por el contrario, si este valor es muy alto es posible que los clientes no vean los cambios que puedan realizarse en la red (máquinas que cambian de IP, etc.). El valor típico de este campo es grande, especialmente si hablamos de redes de área local, donde la topología cambia lentamente.

Si este campo no parece en el registro, como es usual, el tiempo de vida es el que se menciona en un campo especial del registro SOA (minimum), al principio del archivo de zona. Aquellos registros cuya información sea susceptible de cambio frecuente deberían tener un ttl explícito.

clase

Este campo tiene generalmente el valor IN. Si no aparece este campo en el registro, se asume el del registro anterior.

tipo

Este campo indica el tipo del registro. Los tipos más comunes son A, SOA, PTR y NS. Los tipos se describen más abajo.

datos

El formato de estos datos esta relacionado con el campo anterior, el tipo.

Los tipos de registro más usados son los siguientes:

3.1 SOA

Este registro debe aparecer en cada archivo mencionado en una línea primary, e indica que los registros que siguen contienen información autoritativa pàra el dominio. SOA significa Start of authority. Este es un registro típico:

;
; Archivo /var/named/db.cfemex.com
;
;
@               IN SOA  master.cfemex.com. root.master.cfemex.com. (
                        96112500        ; Serial
                        10800           ; Refresh 3 horas
                        3600            ; Retry   1 hora
                        3600000         ; Expire  1000 hora
                        86400           ; Minimum 24 horas
                        )
                IN NS   master.cfemex.com.
;
;

Los datos asociados con un registro SOA son los siguientes:

origin

Es el nombre canónico del servidor de nombres primario para este dominio, y generalmente se da como absoluto, es decir, con un punto al final.

contact

Es el nombre de la persona responsable para este dominio. Es parecido a una dirección de correo electrónico normal, a excepción de que la arroba se remplaza con un punto. También termina con un punto.

serial

Es un número que indica la versión del archivo de zona, y debe ser incrementado cada vez que el archivo se modifique. Es importante porque los servidores secundarios solicitan el registro SOA en ciertos intervalos (ver refresh, más abajo), para verificar el serial. SI éste ha cambiado, entonces transfieren el archivo completo para actualizarse.

Una práctica muy común es utilizar la fecha en el formato ddmmaa y agregarle dos dígitos más para los cambios que se hacen al archivo en el mismo día. De tal manera, un serial típico podría ser ``96112510'': el décimo cambio realizado al archivo en el día 25 de noviembre de 1996.

refresh

Es el intervalo, en segundos, para las revisiones que hacen los servidores secundarios del registro SOA, con el fin de verificar si la información del dominio ha cambiado. El valor típico es de una hora (3600).

retry

Es el tiempo, en segundos, que un servidor secundario debe esperar para reintentar una conexión por refresh que ha fallado. El valor recomendado es de 10 minutos, o sea 600.

expire

Si un servidor secundario no ha podido comunicarse con su servidor primario para verificar que no haya habido cambios a la zona (mediante su registro SOA), descartará la información que tiene después de este periodo dado en segundos. El valor típico es de 42 días, o sea 3600000.

minimum

Este es el número de segundos empleado en los registros del archivo que no especifican su campo ttl (time to live).

3.2 A

Este registro sirve para asociar un nombre de máquina con una dirección IP. El único dato para este tipo de registro es la dirección IP en su forma estándar: xxx.xxx.xxx.xxx. Debe haber sólo un registro A por cada dirección IP en el archivo, aunque es posible asignarle a una máquina más de una dirección mediante varios registros A. Por ejemplo, asignémos a pentium las siguientes direcciones:

pentium IN      A       159.16.16.148
        IN      A       159.16.16.150

3.3 CNAME

Este registro sirve para asignarle un nombre alternativo o alias a una máquina. Supongamos que nuestra máquina pentium cumple las funciones de servidor de web y de noticias de nuestra red interna, cfemex.com. Una manera de hacer esto explícito a los usuarios de la red es usar los siguientes alias:

news    IN      CNAME   pentium
www     IN      CNAME   pentium

De esta manera tenemos, aunque sólo en apariencia, dos máquinas diferentes: news.cfemex.com y www.cfemex.com.

3.4 NS

Mediante un registro NS es posible designar un servidor que deberá responder para todas las peticiones que involucren un determinado subdominio. Esto es importante porque permite delegar la asginación de nombres y facilita el manejo de dominios complejos. El siguiente ejemplo designa al servidor lapem1.lapem.cfemex.com como servidor de nombres para el área lapem:

lapem     IN      NS      lapem1.lapem

Designar un servidor de nombres, sin embargo, no basta. Necesitamos definir en alguna parte del archivo la dirección de este servidor, mediante un registro A, por supuesto. A este registro se le llama en inglés glue record.

3.5 PTR

Un registro PTR se utiliza para relacionar una dirección IP con un nombre de máquina, exactamente al revés que un registro tipo A. Estos registros aparecen en los archivos de zonas para la resolución reversa, los que en named.boot aparecen en una línea primary con el dominio IN-ADDR.ARPA.

  82.10         IN      PTR     redes.cfemex.com.

Nótese que en cada registro sólo aparece una fracción de la dirección IP: la dirección se completa porque, como dijimos más arriba, a cada nombre que no termina en un punto se le agrega el origen.

Los nombres de máquinas aparecen siempre en los registros PTR en su forma canónica, es decir, con el dominio completo. El punto es necesario porque de no aparecer se le agregaría erróneamente el origen.

3.6 MX

Los registros MX sirven para anunciar a los programas de intercambio de correo (Sendmail, por ejemplo), una máquina que se encarga de administrar el correo de un determinado dominio. Un ejemplo típico es el siguiente:

  @     IN      MX      5       mailer

Esta línea declara a la máquina mailer como administradora de correo para el dominio origen. A diferencia de registros como el A o el PTR, el registro MX utiliza un campo numérico adicional que sirve para marcar la preferencia de la máquina. Un programa que quiera enviar correo a este dominio va a tratar de establecer contacto con todas las máquinas que tengan un registro MX asociado hasta que lo logre, pero va a tratar primero con el que tenga el número de preferencia más bajo.

3.7 Ejemplos de archivos de zonas

Para un subdominio

Este es un archivo típico de zona, y corresponde a lv.cfemex.com:

; 
; Zona 'lv.cfemex.com'   
; 
@               IN      SOA     sistlv11.lv.cfemex.com. root.sistlv11.lv.cfemex.com. (
                                97012900 
                                43200 
                                3600 
                                360000 
                                360000 
                                )
                IN      NS      sistlv11.lv.cfemex.com.
                IN      NS      systlv17.lv.cfemex.com.
                IN      NS      master.cfemex.com.
sistlv10        IN      A       192.168.10.10
                IN      A       159.16.70.65
                IN      MX      5 sistlv10.lv.cfemex.com.
sistlv3         IN      MX      5 sistlv3.lv.cfemex.com.
                IN      A       192.168.10.3
sistlv11        IN      A       192.168.10.11
                IN      A       159.16.70.97
                IN      MX      2 sistlv11.lv.cfemex.com.

Para el mapeo inverso (de IPs a nombres)

A continuación mostramos un archivo para la resolución inversa, es decir, de direcciones IP a nombres:

; 
; Mapeo inverso de direcciones para 70.16.159.in-addr.arpa.
; 
@               IN      SOA     sistlv11.lv.cfemex.com. root.sistlv11.lv.cfemex.com. (
                                96052400 
                                43200 
                                3600 
                                360000 
                                360000 
                                )
                IN      NS      sistlv11.lv.cfemex.com.
                IN      NS      systlv17.lv.cfemex.com.
101             IN      PTR     h2020-3.lv.cfemex.com.
115             IN      PTR     clvpr1.lv.cfemex.com.
96              IN      PTR     vaxlv-net.
                IN      A       255.255.255.240
97              IN      PTR     sistlv11.lv.cfemex.com.
98              IN      PTR     vaxlv1.lv.cfemex.com.
146             IN      PTR     laser1in.lv.cfemex.com.
99              IN      PTR     vaxlv2.lv.cfemex.com.

Para el dominio 0.0.127.in-addr.arpa

Este archivo sirve únicamente para convertir la dirección 127.0.0.1 en localhost.

; 
; Mapeo inverso de direcciones para el dominio 0.0.127.in-addr.arpa.
; 
@               IN      SOA     master.cfemex.com. root.master.cfemex.com. (
                                97012900 
                                43200 
                                3600 
                                360000 
                                360000 
                                )
                IN      NS      master.cfemex.com.
1               IN      PTR     localhost.


Anterior Siguiente Contenido