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:

  1. el nombre de dominio para el que vamos a configurar BIND lo llamaré ‘mydominio.com’.
  2. la IP del servidor DNS será 192.168.0.250
  3. 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.

2 comentarios » show comments hide comments