Configurar servidor DNS(Bind9)

En un post anterior vimos muy por encima la configuración de un servidor de que trabaje de forma local en nuestra red o computadora, ahora veremos más a fondo las características de un servidor de .

Domain Name Service (DNS) es el servicio que resuelve los nombres de dominio asociados a una dirección IP para direccionar las peticiones a un servidor en específico. Se utiliza cuando un nodo (o host) en Internet contacta a otro mediante el nombre de domino de la máquina y no por su dirección IP.

BIND (Berkeley Internet Name Domain) es el servidor de nombres de dominio más popular en Internet, que trabaja en todas las plataformas informáticas principales y se caracteriza por su flexibilidad y seguridad.

La estructura básica del DNS es similar a un árbol, donde se tiene una raíz o root, los Dominios de Nivel Principal (Top Level Domains) y los dominios de segundo nivel.

Jerarquía DNS

El espacio de nombres de dominio tiene una estructura arborescente. Un nombre de dominio completo de un objeto consiste en la concatenación de todas las etiquetas de un camino.
Las etiquetas deben contar con al menos un carácter y un máximo de 63 caracteres de longitud.
Las etiquetas individuales están separadas por puntos.
Un nombre de dominio termina con un punto (aunque este último punto generalmente se omite, ya que es puramente formal).
Un nombre de dominio debe incluir todos los puntos y tiene una longitud máxima de 255 caracteres.
Un nombre de dominio se escribe siempre de derecha a izquierda. El punto en el extremo derecho de un nombre de dominio separa la etiqueta de la raíz de la jerarquía (en inglés, root). Este primer nivel es también conocido como dominio de nivel superior (TLD).
Los objetos de un dominio DNS (por ejemplo, el nombre del equipo) se registran en un archivo de zona, ubicado en uno o más servidores de nombres.

Los nombres de dominio completamente calificados o FQDN (fully qualified domain name) se componen por lo general del nombre del host, un nombre de dominio secundario y un nombre de dominio primario o de nivel máximo (top-level domain), que son secciones organizadas jerárquicamente.

Por ejemplo: “www.ejemplo.com”. Leyéndolo de derecha a izquierda tenemos un dominio primario (“COM”), un dominio secundario (“EJEMPLO”) y el nombre del host (“WWW”). Algunos dominios primarios son:

org – Organizaciones no lucrativas.
com – Organizaciones lucrativas.
net – Organizaciones en Internet.
gob – Agencias gubernamentales en latinoamérica.
mx – Sufijo de México.
es – Sufijo de España.

800px-DNS_arbol.svg

Tipos de servidores DNS

  • Primarios: Guardan los datos de un espacio de nombres en sus ficheros
  • Secundarios: Obtienen los datos de los servidores primarios a través de una transferencia de zona.
  • Locales o Caché: Funcionan con el mismo software, pero no contienen la base de datos para la resolución de nombres. Cuando se les realiza una consulta, estos a su vez consultan a los servidores secundarios, almacenando la respuesta en su base de datos para agilizar la repetición de estas peticiones en el futuro.

Tipos de registros

Para ofrecer suficiente flexibilidad en la configuración, se pueden declarar diversos tipos de registros, que hacen referencia a la función del host. A continuación veremos los más importantes.

  • A (Address). Es el registro más usado, que define una dirección IP y el nombre asignado al host. Generalmente existen varios en un dominio.
  • MX (Mail eXchanger). Se usa para identificar servidores de correo, se pueden definir dos o más servidores de correo para un dominio, siendo que el orden implica su prioridad. Debe haber al menos uno para un dominio.
  • CNAME (Canonical Name). Es un alias que se asigna a un host que tiene una dirección IP válida y que responde a diversos nombres. Pueden declararse varios para un host.
  • NS (Name Server). Define los servidores de nombre principales de un dominio. Debe haber al menos uno y pueden declararse varios para un dominio.
  • SOA (Start Of Authority). Este es el primer registro de la zona y sólo puede haber uno en cada archivo de la zona y sólo está presente si el servidor es autoritario del dominio. Especifica el servidor DNS primario del dominio, la cuenta de correo del administrador y tiempo de refresco de los servidores secundarios.

Configuración

Veamos como configurar para disponer de un servidor DNS en una intranet, que resuelva dominios internos. Por ejemplo, en la intranet se utilizaran dominios que terminen en “k4ch0.net” como “hercules.k4ch0.net” ó “leonidas.k4ch0.net”
El servidor DNS se encargará de resolver esos dominios en sus respectivas IPs, además de resolver otros dominios de Internet como “google.com”.

Instalamos BIND9 y nos desplazamos a su directorio de configuración:

# aptitude install bind9
# cd /etc/bind/

Editamos el archivo named.conf.local y añadimos la zona “k4ch0.net”, haciendo referencia a su fichero de configuración:

zone "k4ch0.net" {
type master;
file "/etc/bind/db.k4ch0";
};

Creamos el fichero de configuración “db.k4ch0.net” a partir del archivo “db.local”:

# cp db.local db.k4ch0

Editamos “db.k4ch0″, reemplazamos la palabra “localhost” por “k4ch0.net”, cambiamos la IP “127.0.0.1″ por la que queramos asignar al dominio y añadimos al final del fichero todos los A, MX y CNAME que queramos, quedando:

; BIND data file for local loopback interface
$TTL    604800
@   IN  SOA k4ch0.net. root.k4ch0.net. (
1            ; Serial
604800     ; Refresh
86400       ; Retry
2419200    ; Expire
604800 )   ; Negative Cache TTL
@           IN      NS          k4ch0.net
@           IN      A           192.168.1.64
@           IN      MX      0   k4ch0.net
www       IN      A           192.168.1.64
hercules   IN      CNAME     k4ch0.net

En este ejemplo vemos primeramente el dominio a resolver, “k4ch0.net.” y el segundo es la cuenta de correo del administrador, “root.k4ch0.net.” (sustituyéndo el primer punto por arroba, lo que dejaría “root@k4ch0.net”).
Debemos notar que al final de cada dominio viene un punto, que identifica la raíz de este. El resto de los parámetros son:

Serial: es un identificador del archivo, puede tener un valor arbitrario pero se recomienda que tenga la fecha con una estructura AAAA-MM-DD y un consecutivo.
Refresco: número de segundos que un servidor de nombres secundario debe esperar para comprobar de nuevo los valores de un registro.
Reintentos: número de segundos que un servidor de nombres secundario debe esperar después de un intento fallido de recuperación de datos del servidor primario.
Expiración: número de segundos máximo que los servidores de nombre secundarios retendrán los valores antes de expirarlos.
TTL mínimo: Significa Time To Live y es el número de segundos que los registros se mantienen activos en los servidores NS caché antes de volver a preguntar su valor real.

Cada vez que se cambia la configuración de BIND9, debemos reiniciar el demonio:

# /etc/init.d/bind9 restart

Para que nuestra máquina utilice el servidor de DNS que hemos configurado, debemos editar el archivo /etc/resolv.conf y agregamos la línea:

nameserver 127.0.0.1

Se debería hacer lo mismo con el resto de máquinas de la intranet que vayan a utilizar el servidor, con la única diferencia que habrá que substituir la IP 127.0.0.1 por la IP que tenga el servidor dentro de la red local.

Para comprobar el correcto funcionamiento, utilizamos el comando “host” el cual sirve para resolver dominios:

$ host k4ch0.net
k4ch0.net has address 192.168.1.64
k4ch0.net mail is handled by 0 k4ch0.net

Y listo!!! tendremos nuestro servidor de DNS local funcionando.

Post Relacionados:

  1. Acelerar la carga web usando un servidor DNS local (Bind9)
  2. Configurar la cuenta de Hotmail en Evolution con soporte POP3
  3. Mudanza del Blog!
  4. Filtrando contenido web con proxy transparente (dhcp3-server + squid + dansguardian + iptables)
  5. Configurar el framebuffer en el GRUB

3 pensamientos en “Configurar servidor DNS(Bind9)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

*

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>