next up previous
Next: Extracto del Primario Up: Manual de Procedimientos para Previous: El Resolver

Configuración del Servidor

Un servidor de nombres cumple dos roles: ayudar a los resolvers locales a resolver nombres y a servir con autoridad como primario y secundario de algunos dominios. En las organizaciones muy grandes, puede ser una buena idea separar estos dos roles, teniendo servidores para resolver y servidores para el dominio local. Tenerlos juntos es también razonable en todo caso, porque la mayoría de las consultas son dentro del dominio local, que típicamente servimos.

Para funcionar bien, debemos entonces tener un servidor de nombres (recomendamos correr siempre la última versión sacada de Internet) y configurarlo de modo que ubique los servidores raíz, que tenga los dominios para los que es primario y conozca para cuales debe actuar como secundario. El archivo que contiene toda la información sobre un dominio se conoce como una zona. Dentro de la zona se especifican valores asociados al dominio propiamente tal (ver sección 4.1.1), los servidores de nombres del dominio (records NS), los nombres de las máquinas que existen bajo él y su dirección IP (records A), los nombres de sus sub-dominios (si existen) y sus servidores de nombres (records NS), servidores de correo (records MX), etc. Un servidor de nombres que tiene autoridad sobre un dominio debe tener localmente una copia de la zona que lo define: si es primario tiene la versión modificable, si es secundario debe tener una copia obtenida desde el primario.

Aparte del servidor propiamente tal (típicamente llamado named), existe otro programa que se encarga de transferir las zonas que corresponden a los dominios de los cuales somos secundarios (y que es invocado desde named cada vez que es necesario) conocido como named-xfer. Al ser otro programa, permite que uno lo ejecute a mano para probar transferencias de zona desde un servidor dado.

La lista de los dominios de los que somos primarios, la de los secundarios y información inicial de los servidores raíz se configura en un archivo inicial (en Unix; en Windows y NT por supuesto que es un menú). El archivo inicial se le entrega de parámetro al servidor de nombres y es algo como lo que siguegif:

 
;
; ns.boot : boot file for name server ns.dcc.uchile.cl
;
directory  /usr/etc/named
cache     .                      ns.ca
primary   cl                     cl.zone
primary   dcc.uchile.cl          dcc.uchile.cl.zone
primary   srcei.cl               srcei.cl.zone
primary   4.83.146.in-addr.arpa  4.83.146.revzone
primary   0.0.127.in-addr.arpa   ns.local
;
; Secundarios para todos los subdominios de .CL
;
secondary utfsm.cl                146.83.198.3        back/utfsm.zone
secondary rdc.cl		  146.155.30.25 146.155.1.155 back/rdc.zone
...
Ahí podemos ver que el servidor tiene sus archivos de configuración en /usr/etc/named, que la lista de servidores raíz está en sunsite.ca y que el servidor es primario de los dominios cl, dcc.uchile.cl, etc. La zona donde se detallan las máquinas del dominio dcc.uchile.cl está en el archivo dcc.uchile.cl.zone.

Luego el servidor es secundario de otros dominios, como utfsm.cl, donde aparece la dirección IP de un servidor de nombres de donde obtener la información y un archivo donde dejarlo. Es buena idea tener un directorio para los secundarios separado de los primarios, puesto que los secundarios podemos borrarlos sin problemas pero los primarios no.

También es primario para algunas zonas inversas (ver sección 4.2) como 4.83.146.in-addr.arpa.

Todos estos archivos configuran completamente al servidor, como se ve en la figura 2.

  
Figure: Archivos de configuración

Configuración del Servidor Primario

Algunas recomendaciones sobre la configuración del servicio de nombres:

La zona de un dominio comienza con un record SOA (Start Of Authority) que define varios parámetros importantes para toda la zona. Luego listamos records que están todos dentro de la zona. Hay que tener cuidado con los nombres de dominio absolutos que se colocan en una zona, puesto que siempre el servidor local los interpreta relativos a la zona. Para evitar errores, se debe agregar un punto al final del nombre absoluto (por ejemplo dcc.uchile.cl.) y solo usar nombres relativos a la zona para el resto de la información.

Los comentarios en la zona van a partir de un punto y coma (;) hasta el fin de línea. Los records tiene típicamente un prefijo IN (de Internet). Un ejemplo de definición del archivo que representa al subdominio dcc.uchile.cl se entrega en anexo.

Record SOA

 

Cada dominio tiene un descriptor global asociado, que es el record SOA con el cual comienza la zona. Este record tiene 7 campos asociados: el nombre del servidor primario, la dirección electrónica del responsable del dominio (se recomienda usar el nombre de usuario de la persona responsable), y cinco valores numéricos que definen diversos valores y timeouts (en segundos) del dominio. Estos valores pueden generar mayor o menor tráfico y también demorar más o menos los cambios en propagarse por la Internet. Con algunos valores patológicos, también pueden generar errores como expiración del dominio.

Los campos son:

En la tabla siguiente entregamos nuestra recomendación de valores, que no son obligatorios. Sin embargo, siempre hay que recordar que Expire > TTL > Refresh > Retry.

Por ejemplo:

;
; dcc.uchile.cl.zone : Authoritative data for dcc.uchile.cl
;
@         IN   SOA    dcc.uchile.cl. hostmaster.dcc.uchile.cl. (
               1993050709  ;Serial
               43200       ;Refresh (12 horas)
               7200        ;Retry   (2 horas)
               2592000     ;Expire  (30 dias)
               129600)     ;Minimum (2 dias)

Records NS

Es buena idea comenzar la zona con la lista de los servidores de nombres del dominio. Los servidores deben ser a los menos dos (por tolerancia a fallas) y ubicados en redes y lugares distantes. En general es buena idea tener otra institución con la cual acordar que ellos sean secundarios de nuestros dominios a cambio de nosotros ser secundarios de ellos. Estos servidores de nombres deben ir listados por nombre de dominio, sin dirección IP. No es cosa de colocar el nombre de un servidor de nombres conocido y esperar que funcione, ese servidor debe estar configurado como secundario para este dominio, lo que debe ser acordado previamente con élgif. Por supuesto, el nombre del servidor primario también debe incluirse.

Por ejemplo:

        IN    NS    ns.dcc.uchile.cl.
        IN    NS    inti.inf.utfsm.cl.

Records A

La idea de base de la zona es proveer la lista de nombres en el dominio y sus direcciones IP. Para eso son los records A, donde listo todas mis máquinas. Si tengo máquinas con más de una dirección IP, repito el nombre. Si tengo máquinas con más de un nombre, repito la dirección IP. Es buena idea incluir nombres para nuestros routers, en algunos casos incluso es bueno asignarles nombres distintos a cada interfaz.

Por ejemplo:

anakena IN    A    192.80.24.1
ftp     IN    A    192.80.24.1
tortel  IN    A    192.80.24.2
tortel  IN    A    146.83.4.10

Sub-dominios

Si el dominio tiene sub-dominios, en la zona del dominio se debe definir su existencia y delegarlo a sus servidores de nombres. Eso es todo lo que yo tengo derecho a decir sobre el sub-dominio. Por ejemplo:

alumnos IN    NS    ns.dcc.uchile.cl.
        IN    NS    inti.inf.utfsm.cl.

Los nombres de los servidores tienen que tener un record A asociado en su dominio. No pueden ser un CNAME (ver más adelante).

Records MX

Aparte de la lista de los nombres con sus direcciones IP, es importante definir los records MX asociados. Éstos permiten que el correo dirigido a cualquier máquina del dominio le lleguen a una máquina de correo principal, la que después se encarga de distribuirlo internamente. De esta forma no todas las máquinas tienen que correr un mailer bien configurado y basta con mantener los Mail Exchangers solamente.

Por ejemplo:

tortel  IN    A     146.83.4.11
        IN    MX    50 mailer.dcc.uchile.cl.

Junto con el nombre de la máquina que recibe el correo, va una prioridad, lo que permite tener varios records MX, con distintas prioridades. Los servidores de correo en Internet, al tener correo para una máquina, antes de pedir una dirección IP para enviarle el correo directamente, pide los records MX que existen para ella.

Este record acepta el nombre * (asterisco) que implementa un Mail Exchanger para toda máquina de este dominio.

Records CNAME

Es mejor evitar el uso de estos records. Permite definir aliases para máquinas, pero no todos los resolvers los manejan bien. Es mucho mejor definir varios nombres que dan la misma dirección IP, por ejemplo:

tortel  IN   A   146.83.4.11
www     IN   A   146.83.4.11
mail    IN   A   146.83.4.11
ns      IN   A   146.83.4.11

Records HINFO, TXT, WKS

Son records que permiten poner información sobre el nombre, tipo de máquina, servicios que provee, etc. Nadie los usa y ocupan espacio en las zonas (que deben transferirse a los secundarios), por lo que recomiendo no utilizarlos.

Servidor Inverso

 

El DNS también sirve para hacer la traducción inversa, es decir de dirección IP a nombre (esto es usado más que nada por razones de seguridad, para verificar que una máquina es quien dice ser). Estos servidores se configuran como servicio de nombres de un dominio ficticio, compuesto por la dirección IP invertida y terminado por el dominio IN-ADDR.ARPA. Por ejemplo, el servidor inverso de la red clase C 200.0.66.0 es:

66.0.200.in-addr.arpa.

y adentro se pone el número dentro de la red y el nombre de la máquina con un record de tipo PTR. Un ejemplo de configuración se entrega en anexo.

Una vez que localmente puedo invertir los números IP (esto se prueba con la rutina de la biblioteca C gethostbyaddr), debo registrar oficialmente el servidor inverso para que sea utilizado en Internet. Si mi red IP fue otorgada por mi proveedor, típicamente tengo que pedirle a él que me delegue el inverso. Si es una sub-red que no va en borde de un byte es más complicado, puesto la separación sólo se puede hacer en esos segmentos. Por ello, es muy razonable exigir bloques de direcciones que por lo menos sean una clase C (un prefijo de tres bytes).

Si la dirección IP es de las portables asignadas por el Internic, se le debe pedir directamente a ellos que lo activen, y se envía un mail a hostmaster@internic.net con un formulario que se extrae de allí, para pedir registrar zonas inversas.



next up previous
Next: Extracto del Primario Up: Manual de Procedimientos para Previous: El Resolver



José M. Piquer
Mon Apr 20 12:39:28 CST 1998