DNS_documento2 (Este documento es bueno, pero no dejar de leer el manual de referencia publicado en el sitio oficial de BIND: www.isc.org)

¿Que es un servidor DNS?

En cualquier servidor, tanto de internet como intranet hemos de disponer de un servidor DNS, el cual sirve para poder asignar nombres a equipos o servicios de red. La asignación de nombres DNS se utiliza en las redes TCP/IP (servicio de correo, web, FTP, etc.), para localizar equipos y servicios con nombres sencillos a máquina o recursos. Cuando un usuario escribe un nombre DNS en una aplicación, los servicios DNS se encargan de traducir el supuesto nombre a otra información asociada con el mismo, como es una dirección IP. Como se puede observar es más senzillo de aprender y recordar un nombre senzillo que no un número de 4 bytes (su dirección IP).

Además a igual que se puede hacer la conversión de un nombres DNS a una dirección IP, también se puede hacer a la inversa, és decir, que a través de una dirección IP el servidor DNS nos devuelva su nombre.

La información que ha de tener un servidor DNS es:



Instalar el sevidor DNS (Bind)

Yo he utilizado el BIND (Berkeley Internet Name Domain), pero que sepáis que hay otros más...

Primeramente nos descargamos y compilamos la última versión del servidor de DNS disponible en la web:
http://www.isc.org/products/BIND/bind9.html.

-- Descomprimimos el fichero bajado:

$ tar -xvzf nombre_archivo.tar.gz

-- Preparamos los fichero de compilación, los make's, esto se hace con la comanda ./configure.
Pero antes de hacer nada, ejecutamos ./configure --help que nos dará información sobre las distintas opciones disponibles.
yo he puesto las siguientes:

$ ./configure --disable-threads --disable-ipv6

-- Finalmente lo compilamos:

$ make
$ make install
$ make test



Configuración del archivo /etc/named.conf [Ir Arriba]

Es el archivo de configuración principal del DNS ya que contiene la ubicación y parámetros de los demás archivos de configuración. Dicho archivo está formado por dos tipos de secciones:

A continuación os muestro un fichero de configuración del fichero /etc/named.conf.

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

zone "domain.name" IN {
 type slave;
 file "domain.zone";
 masters { xxx.xxx.xxx.xxx; };
};

zone "other.domain.name" IN {
 type master;
 file "other.zone";
 allow-update { yyy.yyy.yyy.yyy; zzz.zzz.zzz.zzz; ...};
};


zone "yyy.yyy.yyy.in-addr.arpa" IN {
 type master;
 file "yyy.zone";
 allow-update {none; };
};

La opción directory dentro de la sección options indica en que directorio estan los ficheros de la zona en la que vamos a trabajar.

La primera zona que observamos es secundaria de la zona domain.name, con lo qual esto implica que hará una copia de las zonas del servidor maestro en del fichero domain.zone. La copia implica que no podamos hacer ningún tipo de modificación en la zona copiada.

La segunda zona, sería nuestro servidor primario de la zona other.domain.name, en el qual se guardará en el fichero other.zone. Además se ha utilizado la directiva allow-update que recoge las IP's de los servidores secundarios que nos podrán pedir una copia de los ficheros de nuestra zona.

Finalmente en nuestra tercera zona, tendríamos guardado en el fichero yyy.zone la inversa, és decir la traducción de IP's a nombres DNS. Si no fijamos en la directiva allow-update observamos que pone el valor "none", lo cuál implicará que ningún servidor secundario pueda hacer una copia de esta zona.



Formato fichero de datos de las zonas [Ir Arriba]

Los ficherosde datos de un dominio estan formados por una serie de registros. Estos registros contienen diversa información sobre el dominio (SOA), servidores de nombres(NS), direcciones de máquinas(A),...

El fichero tiene el siguiente aspecto:

$TTL 43200
@ IN SOA server.mydomain.name. user.server.mydomain.name. (
   200583909: Serial
   3600     : Refresh (1 hora)
   300      : Retry (5 min)
   17200    : Expire (2 days)
   43200 )  : Minium TTL (12 hours)
;
@ IN NS server.mydomain.name.

pc1 IN A xxx.xxx.xxx.xxx
pc2 IN A yyy.yyy.yyy.yyy

nombre1 IN CNAME pc1
nombre2 IN CNAME pc2

Si nos fijamos, en este fichero todos los nombres de dominios terminan con un punto ".", esto se hace para indicar que se trata de nombres absolutos.

Ahora vamos a estudiar los distintos registros que aparecen el en fichero anterior.

Nota: El punto final de los dominios es importante, porque impide que el servidor DNS intente concatenar otros nombres de dominio en el final.

Comandos útiles