BIND9. Configurando DNS
Servidor de Nombres de Dominio
Partiendo de la base de que sabemos que es DNS, diremos que la aplicación más extendida en Linux para afrontar este tema se llama BIND. Existen múltiples ejemplos y manuales en Internet de cómo configurar un servidor de DNS, pero creo que para cubrir necesidades básicas (y sin entrar en el por qué de las cosas) bastaría con hacer algo parecido a lo que expongo a continuación:
Empezando por el principio
¿Sabe tu máquina cómo se llama y dónde vive? En otras palabras, debemos configurar las variables nameserver y domain, para ello editaremos el fichero /etc/resolv.conf desde la terminal del siguiente modo:
sudo gedit /etc/resolv.conf
donde pondremos el siguiente texto sustituyendo ‘mydominio’ por lo que corresponda:
domain mydominio.com nameserver 127.0.0.1
guardas los cambios y no cierres la Terminal
Otro modo de hacer esto (sin tener que entrar en la Terminal) es editar la “Configuración de la red”. Donde pondremos en la pestaña “General” -> “Nombre del dominio” el valor ‘mydominio.com’, y en la pestaña “DNS” -> “Servidores DNS” el valor ‘127.0.0.1′ y solo este.
Para ‘mydominio’ te puedes plantear, si no tienes un nombre de dominio y una IP fija para la máquina que estás montando de servidor, el darte de alta en alguno de los sistemas de DNS para IPs dinámicas como dyndns.com
Consideraciones preeliminares
Antes de continuar he de decir que voy a considerar que:
- el nombre de dominio para el que vamos a configurar BIND lo llamaré ‘mydominio.com’.
- la IP del servidor DNS será 192.168.0.250
- los servidores www y de mail serán el mismo, luego tendrán la IP 192.168.0.250
por lo que deberás sustituir éstos valores por los tuyos.
Configurando BIND
La configuración de BIND está en /etc/bind y se trata de unos cuantos ficheros que se llaman unos a otros. Puede parecer lioso al principio, pero en realidad es una buena forma de racionalizar la información.
El fichero principal es el llamado named.conf que llama al resto de ellos, y es en éste donde nosotros tomaremos el control creando otros ficheros para establecer nuestra configuración local, por lo que comenzaremos por editar el fichero named.conf :
sudo gedit /etc/bind/named.conf
comprobamos que al final del fichero está la línea:
include "/etc/bind/named.conf.local";
si no está, la escribimos al final y guardamos los cambios.
Ahora editamos o creamos (si no existiese) el primer fichero de nuestra configuración, que será el que le acabamos de decir que incluya, claro.
sudo gedit /etc/bind/named.conf.local
donde añadiremos las zonas de nuestro dominio ‘mydominio.com’ y su zona ‘reverse’, que no es más que la forma de decirle al servidor cómo localizar el nombre de dominio si le preguntamos por una IP. Así pues el script de configuración ue llamaremos “named.conf.local” debe quedar como:
//
// Do any local configuration here
//
// Consider adding the 1918 zones here,
// if they are not used in your organization
//include "/etc/bind/zones.rfc1918";
// The zone definition for your domain
zone "mydominio.com" {
type master;
file "/etc/bind/db.mydominio";
};
// The reverse DNS zone
zone "0.168.192.in-addr.arpa" {
type master;
file "/etc/bind/zones/db.192";
};
y guardamos los cambios.
Ahora debemos crear el primer fichero con nuestra configuración, el de la definición de la zona de nuestro dominio, al que hemos llamado “db.mydominio”, para ello y con la Terminal, escribimos:
sudo gedit /etc/bind/db.mydominio
donde introducimos el siguiente código:
;
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA mydominio.com. root.mydominio.com. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS mydominio.com.
@ IN A 192.168.0.250
@ IN MX 10 mydominio.com.
www IN A 192.168.0.250
hostn IN CNAME mydominio.com
// Cambia las direcciones IP y los nombres para cada una
// de las máquinas locales que tengas en la red local.
mch0 IN A 192.168.0.10
mch1 IN A 192.168.0.11
mch2 IN A 192.168.0.12
donde deberás sustituir la IP 192.168.0.250 por la IP de tu servidor, ‘mydominio’ por el valor que corresponda, y ‘hostn’ por el “Nombre del equipo” del servidor (hostname).
En el fichero “named.conf.local” definimos la zona del dominio y su zona ‘reverse’, hemos configurado la zona del dominio, por lo que ahora es el turno de la zona ‘reverse’. Vamos a crear el fichero “db.192″, para ello y con la Terminal, escribimos:
sudo gedit /etc/bind/db.192
donde introducimos el siguiente código:
;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA mydominio.com. root.mydominio.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS mydominio.com.
250.0.168 IN PTR mydominio.com.
y guardamos los cambios.
Las opciones
Ahora es el turno de decirle a BIND las DNS de nuestro porveedor de servicios (ISP), para ello editaremos el fichero de opciones poniendo dentro de fowarders{} las IPs de los servidores DNS de nuestro ISP.
options {
directory "/var/cache/bind";
// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below. Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an
// unprivileged port by default.
// query-source address * port 53;
// 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 {
// Aquí las DNS de tu proveedor ISP
1.2.3.4;
1.2.3.4;
};
auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};
En este punto tu configuración básica de BIND estaría completa, excepto por el detalle de que hay que reiniciar el servidor para que cargue las nuevas zonas definidas, para ello volvemos a la terminal y escribimos:
sudo /etc/init.d/bind9 restart
Comprobando la configuración
¿Estará funcionando todo tal y como lo había pensado? Buena pergunta. UNIX cuenta con dos herramientas para ver qué ha pasado, host y dig. Ahora es tu turno, ¿te funciona?
You can follow any responses to this entry through the RSS 2.0 feed.
Los comentarios y los pings están cerrados.

Hola, he seguido los pasos que indicas pero llega un punto en que me lio. Yo tengo una cuenta dyndns porque no tengo ip fija. Así mi servidor es cosita.endofinternet.org.
Al escribir los ficheros de configuración, como nombre de dominio pongo endofinternet.org (aunque propiamente ese no es mi dominio, sino que es cosita.endof…). Luego, como equipo servidor de DNS sí que pongo cosita.endofinternet.org (tú has puesto root.my…).
No me funciona
¿Debería poner el dominio entero todo el rato (cosita.endofinternet.org) y al especificar el servidor poner root.cosita.endofinternet.org?
Debes sustituir ‘mydominio.com’ por ‘cosita.endofinternet.org’ ya que este es tu nombre de dominio y no ‘endofinternet.org’. ¿Lo has probado así?