En primera instancia, es necesario comprender que un servidor DNS/Bind tiene que tener una dirección IP estática, esto quiere decir que si existe un servidor DHCP en el segmento de red donde se encuentra el servidor DNS, este no debe asignar de forma dinámica la dirección IP del servidor DNS, la razón de esto es porque si una dirección es asignada de forma automática lo más probable es que esta dirección no coincida con la dirección establecida en los ficheros de configuración del servidor, lo que es desde luego completamente indeseable. Para definir una dirección IP estática en una maquina GNU/Linux, basta con editar el fichero /etc/networking/interfaces. Este será un ejemplo valido de declaración de una IP estática utilizando la interface de red eth0

auto eth0

iface eth0 inet static address 192.168.1.33

network 192.168.1.0

netmask 255.255.255.0

broadcast 192.168.1.255

gateway 192.168.1.1

Posteriormente es necesario asegurarse que el nombre del host y la dirección se encuentran correctamente establecidos en el dichero /etc/hosts dado que si en el segmento de red existe algún otro ordenador con el mismo nombre puede existir un conflicto.

Recordar, que si se han realizado cambios sobre la configuración de red, como es el caso anterior, es necesario reiniciar el demonio correspondiente para que estos cambios tengan efecto, para esto se ejecuta:

/etc/init.d/networking restart

Una vez cumplido este requisito se procede a instalar el servidor si no se encuentra previamente instalado.

apt-get install bind9

Todos los ficheros de configuración se encuentran ubicados en el directorio /etc/bind la configuración de un servidor DNS consta de 4 ficheros importantes que en algunos casos ya existen y solo basta con editarlos, mientras que en otros casos es necesario crearlos, estos son:

1. named.conf.local

2. named.conf.options

3. Forward Lookup de Zona

4. Reverse Lookup de Zona
En primera instancia, Abrir el fichero /etc/bind/named.conf.local y crear la zona correspondiente al dominio (Forward Lookup) esta zona convertirá direcciones IP a nombres de dominio, ademas de crear también la zona que mapeará los registros PRT, es decir, la zona que convertirá las direcciones IP en nombres de Host:

//Forward Lookup – Mapea Nombres de Dominio a direcciones IP

.zone «adastralinux.net» {type master;

file «/etc/bind/zones/adastralinux.net.db»;

};

//Reverse Lookup – Mapea Direcciones IP a Nombres de Dominio.

//192.168.1.33

zone «1.168.192.in-addr.arpa» {

type master;

file «/etc/bind/zones/rev.1.168.192.in-addr.arpa»;

};

Establecer el servidor DNS principal del ISP que presta el servicio de Internet, este valor será el que permita resolver peticiones que se salen del rango del dominio (peticiones no autoritativas), esto se hace en el fichero /etc/bind/named.conf.options

Cabe anotar que también es posible utilizar cualquier otro servidor DNS libre en Internet como por ejemplo alguno de los servidores DNS de google (8.8.8.8 y 8.8.4.4)

options {directory «/var/cache/bind»;// If there is a firewall between you and nameservers you want// to talk to, you may need to fix the firewall to allow multiple

// ports to talk. See http://www.kb.cert.org/vuls/id/800113

// If your ISP provided one or more IP addresses for stable

// nameservers, you probably want to use them as forwarders.

// Uncomment the following block, and insert the addresses replacing

// the all-0’s placeholder.

forwarders {

70.18.61.250;

8.8.8.8;

8.8.4.4;

};

auth-nxdomain no; # conform to RFC1035

listen-on-v6 { any; };

};

Ahora se debe crear el directorio de zonas, deberá estar ubicado bajo el directorio /etc/bind/zones posteriormente en dicho directorio es necesario crear los ficheros de las zonas declaradas anteriormente en el fichero named.conf.local:

/etc/bind/zones/adastralinux.net.db

adastralinux.net. IN SOA ns1.adastralinux.net. admin.adastralinux.net. (2006081401288003600

604800

38400 )

adastralinux.net. IN NS ns1.adastralinux.net.

IN NS http://www.tunnel.adastralinux.net.

mail.adastralinux.net. IN MX 10 mail.adastralinux.net.

adastralinux.net. IN MX 10 mail.adastralinux.net.

ns1 IN A 192.168.1.33

www IN A 192.168.1.33

http://www.tunnel IN A 192.168.1.33

mail IN A 192.168.1.33

sshdns.ns1 IN A 192.168.1.33

adastra IN A 192.168.1.33

revolution IN CNAME adastra

/etc/bind/zones/rev.1.168.192.in-addr.arpa

@ IN SOA adastralinux.net. admin.adastralinux.net. (2006081401;28800;604800;

604800;

86400 );

IN NS ns1.adastralinux.net.

33 IN PTR adastralinux.net.

Por otro lado para que un cliente pueda encontrar este dominio tiene que tener la dirección IP de la maquina donde se encuentra en ejecución el servidor DNS/Bind, si el cliente es una maquina bajo Windows, es necesario configurar el servidor DNS desde el panel de control → Conexiones de Red, si se trata de una maquina bajo GNU/Linux, se debe editar el fichero /etc/resolv.conf y adicionar la dirección del servidor DNS con la sintaxis nameserver <DIR_IP_SERVIDOR>

En la configuración anterior correspondiente a la zona, se puede apreciar que todos los registros DNS apuntan hacia la misma dirección IP sin embargo, es perfectamente valido que apunte a cualquier otra dirección IP accesible al servidor DNS.

Con todo lo anterior es posible probar el servidor DNS usando el clásico nslookup:

>nslookup ns1.adastralinux.net

Server: 192.168.1.33

Address: 192.168.1.33#53

Name: ns1.adastralinux.net

Address: 192.168.1.33

>nslookup http://www.adastralinux.net

Server: 192.168.1.33

Address: 192.168.1.33#53

Name: http://www.adastralinux.net

Address: 192.168.1.33

>nslookup http://www.tunnel.adastralinux.net

Server: 192.168.1.33

Address: 192.168.1.33#53

Name: http://www.tunnel.adastralinux.net

Address: 192.168.1.33

>nslookup adastra.adastralinux.net

Server: 192.168.1.33

Address: 192.168.1.33#53

Name: adastra.adastralinux.net

Address: 192.168.1.33

>nslookup revolution.adastralinux.net

Server: 192.168.1.33

Address: 192.168.1.33#53

revolution.adastralinux.net canonical name = adastra.adastralinux.net.

Name: adastra.adastralinux.net

Address: 192.168.1.33

Como se puede apreciar todos los subdominios probados con nslookup han retornado los resultados esperados, es decir la dirección IP en función al dominio ingresado, sin embargo, en la ultima ejecución, se se ha ingresado un nombre de subdominio y al final se ha retornado otro subdominio distinto, esto ocurre ya que el subdominio revolution.adastralinux.net tiene un registro CNAME (Canonical Name) que en realidad apunta al subdominio adastra.adastralinux.net, por esta razón cuando se consulta el subdominio revolution, realmente se realiza una consulta al subdominio adastra.