Bind9 en Debian

Berkeley Internet Name Domain (BIND) es una implementación del protocolo Domain Name System (DNS), ampliamente usado para resolver nombres y números IP en Internet.

BIND sirve como DNS autoritativo primario o secundario y para mantener una tabla local con todos los nombres que resuelve el DNS autoritativo de la red.


Configuración de un DNS local

Instala el paquete bind9,

# apt-get install bind9

Edita el archivo /etc/bind/named.conf.options para que lea,

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 {
                100.10.0.3;
                100.10.0.7;
        };

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

En forwarders enumera los números IP de los servidores de nombre autoritativos de la red. Estos deberían ser los mismos del archivo /etc/resolv.conf indicados en el instructivo nameserver.

Edita /etc/resolv.conf y modifícalo para que lea,

search mi.dominio
nameserver 127.0.0.1

En donde search indica el dominio de la red.

Reinicia el daemon de BIND (named) con,

# /etc/init.d/bind9 restart

y luego reinicia la red,

# /etc/init.d/networking restart

Lo que hemos hecho es transformar a localhost (127.0.0.1) en el servidor de nombres, que a través de BIND hace requerimientos a los DNS autoritativos de la red.

Para ver el servidor DNS local en acción da el comando,

$ dig www.debian.org

Retornará a la pantalla la consulta al DNS autoritativo,

$ dig www.debian.org

; <<>> DiG 9.7.2-P3 <<>> www.debian.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51914
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.debian.org.                        IN      A

;; ANSWER SECTION:
www.debian.org.         102     IN      A       206.12.19.7
www.debian.org.         102     IN      A       128.31.0.51

;; Query time: 804 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Mar 20 09:45:39 2011
;; MSG SIZE  rcvd: 158

La primera consulta tardó 804 milisegundos (Query time). Repetir el mismo requerimiento será prácticamente instantáneo. El servidor ahora consulta su propia tabla, en dónde existe guardada una entrada con la información sobre www.debian.org,

$ dig www.debian.org

; <<>> DiG 9.7.2-P3 <<>> www.debian.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7423
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.debian.org.                        IN      A

;; ANSWER SECTION:
www.debian.org.         300     IN      A       128.31.0.51
www.debian.org.         300     IN      A       206.12.19.7

;; Query time: 15 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Mar 20 09:47:22 2011
;; MSG SIZE  rcvd: 158

Configuraciones avanzadas

Bind9 (last edited 2011-03-20 16:48:13 by RicardoYanez)