Configurar un servidor DNS

Hay tres configuraciones de servidores de nombres basicas:

  • Un Servidor de Cache, que es un servidor no autoritativo. Obtiene todas las respuestas a consultas de nombres de otros servidores de nombre.
  • Un Servidor Esclavo, el cual es considerado autoritativo porque tiene un base de datos completa y exacta, la cual transfiere de los servidores maestros. Tambien son llamados Servidores Secundarios porque son respaldos a los servidores primarios.
  • El Servidor Maestro es el servidor primario para el dominio. Carga la informacion del dominio directamente desde un fichero en el disco local, mantenido por el administrador del dominio. El servidor maestro es considerado autoritativo para el dominio, y sus respuestas a las consultas son siempre consideradas exactas.

Nota 1: Un servidor autoritativo es aquel que contiene datos maestros acerca de algo, es decir, son la fuente primaria de informacion acerca de algo. En contraste con los servidores de ‘cache’, quienes tienen una copia de la informacion.

Nota 2: La mayoria de los servidores combinan elementos de mas de una configuracion (de las antes mencionadas). Todos los servidores guardan en cache las respuestas, y muchos servidores primarios actuan como servidores secundarios de otros dominios.

Sugerencias:

a. Debes crear un solo servidor maestro para tu dominio. Es la fuente principal de informacion con respecto a este. El hecho de crear mas de un servidor maestro podria socavar la confiabilidad de la informacion.

b. Crea por lo menos un servidor esclavo; asi podras compartir la carga, y proveer respaldo para el servidor maestro.

c. Usa servidores de cache a travez de la red para reducir la carga sobre el servidor maestro y los secundarios.

Para la configuracion de named se requieren hasta 5 ficheros de configuracion.
Todas las configuraciones (Cache, Secundario, Primario) requieren de los siguientes ficheros basicos:

Fichero de configuracion de named, named.conf, el cual define parametros basicos, y apunta a las fuentes de informacion de las base de datos de los dominios, los cuales pueden ser ficheros locales o servidores remotos.

Fichero de sugerencias (hints), o cache, provee los nombres y direcciones de los servidores raiz que son usados durante la inicializacion.

Fichero del host local: Toda configuracion contiene una base de datos de dominio local para resolver el loopback al nombre de host ‘localhost’.

Los otros dos ficheros que son utilizados para configurar named son utilizados unicamente en el servidor maestro. Estos son los dos ficheros que definen la base de datos del dominio:

Fichero de zona el cual define la mayor parte de la informacion. Es utilizado para mapear nombres de hosts a direcciones, identificar el servidor de correo, y proveer una variedad de informacion acerca de otros dominios.

Fichero de zona reversa, el cual mapea direcciones IP’s a hostnames, lo que es exactamente lo opuesto a lo que hace el Fichero de Zona.

Nota 3: Una Zona es el contexto de un dominio sobre el cual un servidor maestro tiene autoridad. El fichero de base de dato de dominio que contiene la informacion acerca de la zona es llamado Fichero de Zona. Una Zona y un dominio NO son la misma cosa. Por ejemplo, todo lo que esta contenido en un fichero de base de datos esta en una misma zona, incluso si el fichero contiene informacion acerca de mas de un dominio. (Es decir, no importa si el fichero de base de datos contiene informacion acerca de varios dominios, aun asi estan en la misma zona).

Para configurar un servidor dns necesitas saber como configurar los cinco ficheros. Por lo cual empezaremos mirando el fichero named.conf, el cual es usado en cada servidor de dominios, y define la configuracion basica.

El Fichero De Configuracion De Named

La estructura de los comandos de configuracion de named.conf es similar a la estructura al lenguaje de programacion C. Un enunciado termina con un punto y coma ( ; ), Las literales son encerrados en comillas ( “” ), y los articulos relacionados estan agrupados en llaves ( {} ). BIND provee tres formas de insertar un comentario las cuales son:

/* Esto seria un comentario (Estilo C) */
// Esto seria otro comentario, estilo C++
# Esto seria otro comentario, tipo Shellscript

Existen once enunciados de configuracion validos para BIND 9.x, la cual es la version que trae Slackware (por lo menos, la version que tengo), a continuacion los menciono brevemente con una pequenia descripcion:

Comando Uso
acl Define una lista de control de acceso
(Access Control List)
controls Define el canal de control para el programa de control de named
include Incluye otro fichero dentro del fichero de configuracion.
key Define claves de seguridad para autenticacion.
logging Define que cosas seran registradas y donde seran almacenadas.
lwres Hace que el servidor actue como un servidor lightweight de resolucion.
options Define opciones de configuracion globales y por defecto.
server Define las caracteristicas de un servidor remoto.
trusted-keys Define las llaves de encriptacion DNSSEC para el servidor
view Muestra diferentes vistas de la informacion de la zona a clientes diferentes.
zone Define una zona

En lo adelante estare utilizando ejemplos para ilustrar la funcion y formato de los comandos mas utilizados comunmente.

La sentencia options

La mayoria de los ficheros named.conf empiezan con la sentencia options. Solamente se puede utilizar una sentencia options. La sentencia options define parametros globales que afectan la forma en que opera BIND. Tambien indica los valores por defecto para otras setencias utilizadas en el fichero de configuracion. La opcion mas comunmente utilizada define el directorio de trabajo para el servidor:

options {
        directory "/var/named";
};

La sentencia empieza con el comando ‘options’. Las llaves encierran una lista de opciones, y la palabra directory define el directorio desde el cual named leera (y escribira) los ficheros. El nombre del directorio tambien es utilizado para completar cualquier nombre de fichero especificado en el fichero de configuracion. La parte encerrada entre comillas es la ruta del directorio. Fijate que tanto la opcion directory como las llaves, al final tienen ‘;’.

Mas adelante veras que named escribe varios ficheros diferentes que son usado spara chequear el estado el servidor de nombres. La opcion ‘options’ puede ser utilizada para cambiar las rutas por defecto de los ficheros individuales. Aunque realmente es recomendable mantener el nombre original para cada fichero de status y guardarlos en el fichero identificado por la opcion ‘directory’.

La sentencias zone

Las sentencias zone son las mas importantes en la configuracion del fichero, y constituyen la mayoria del fichero named.conf. Una sentencia zone lleva a cabo las siguientes configuraciones criticas:

  • Identifica una zona que esta siendo servida por un servidor de nombres
  • Define el tipo de servidor de nombre que representa este servidor para esta zona. Un servidor puede ser master o slave. Y debido a que esto se define por zonas, el server puede ser master para algunas zonas mientras lo es slave para otras.
  • Define la fuente de informacion de dominio para una zona. La base de datos de dominio puede ser cargada de un fichero en el disco local o transferida desde un servidor maestro.
  • Define opciones de procesamiento especial para la zona.

Este seria un ejemplo que ilustra todas estas funciones:

zone "eslackware.com" in {
        type master;
        file "eslackware.hosts";
        check鈭抧ames fail;
        notify yes;
        also鈭抧otify { 172.16.80.3; };
        allow鈭抲pdate { none; };
};

La sentencia comienza con el comando ‘zone’. El nombre de la zona es escrita como un literal encerrado en comillas. La palabra clave in quiere decir que esta zona contiene direcciones de IP y nombres de dominios de Internet. Este es el valor por defecto, de modo que no es realmente requerida. Las llaves encierran una lista de opciones para esta zona.

El tipo ‘master’ indica que este es el servidor maestro (master) para el dominio eslackware.com. Otros valores posibles son:

slave: Identifica este servidor como esclavo, para este dominio.
hints: Identifica este como el fichero de hints (pistas) que es utilizado para inicializar el servidor de nombres durante el arranque.
stub: Identifica este como un servidor stub. (Servidores stub son servidores esclavos ‘slaves’ que solo cargan los records del servidor de nombres desde el servidor maestro). Esto es principalmente para servidores no recursivos que quieren referir una consulta a otros servidores, de la misma manera que los servidores raiz refieren las consultas a otros servidores. Esto es rara vez utilizado en una red de una empresa.

la opcion ‘file “eslackware.hosts”‘ apunta al fichero que contiene la base de datos de informacion del dominio. Para un servidor maestro, este es el fichero que es creado por el administrador del dominio.

En proximos articulos pienso hacer ejemplos detallados y configuracion paso a paso acerca de la configuracion de los tres tipos de servidores de DNS (master, slave, cache)

This entry was posted in Administraci贸n, ignored, Networking.

Leave a Reply