Servidor DNS Bind para un dominio registrado
Vamos a instalar un servidor DNS y vamos a configurarlo para servir tanto a la red local como a Internet, proporcionando a cada red distinta información.
- los ordenadores de la LAN consultarán a este servidor cuando tengan que resolver un nombre de host local o de Internet. De este modo, no tendremos que añadir manualmente los nombres de las máquinas de la LAN a /etc/hosts.
- a las máquinas de Internet que soliciten nuestro dominio www.fransberns.com (suponemos que está registrado y que dd1.dd2.dd3.dd4 es la IP asociada), les dirán que el servidor DNS para ese dominio está en nuestra máquina (IP del servidor DNS primario dd1.dd2.dd3.dd4, IP del servidor DNS secundario ss1.ss2.ss3.ss4).
Veamos cómo instalar el servidor DNS:
- instalamos Bind (Berkeley Internet Name Domain, isc.org/products/BIND/, paquete bind9): el demonio es named y escucha los puertos 53 TCP y 53 UDP.
- editamos el archivo de configuración de bind /etc/bind/named.conf.local
y añadimos las siguientes líneas:
acl slaves { ss1.ss2.ss3.ss4; }; acl internals { 127.0.0.1; 192.168.1.0/24; }; view "internal" { match-clients { internals; }; recursion yes; zone "fransberns.com" { type master; file "/etc/bind/internals/db.fransberns.com"; }; zone "dd3.dd2.dd1.in-addr.arpa" { type master; file "/etc/bind/db.dd1.dd2.dd3"; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192.168.1"; }; }; view "external" { match-clients { any; }; recursion no; zone "fransberns.com" { type master; file "/etc/bind/externals/db.fransberns.com"; allow-transfer { slaves; }; }; zone "dd3.dd2.dd1.in-addr.arpa" { type master; file "/etc/bind/db.dd1.dd2.dd3"; }; };
¿Qué hemos hecho?
- definimos una nueva zona, fransberns.com, sobre la que Bind ejerce el control, que tiene 2 sub-zonas: internal y external.
- Bind servirá distintos contenidos según la sub-zona de donde provenga la consulta:
- consultas "internas" son las que provienen de una IP que coincide con el rango de IPs definido en acl internal, es decir, las que proceden de 192.168.1.0/24, y su configuración está en el archivo /etc/bind/internals/db.fransberns.com
- consultas "externas" son todas las demás, y su configuración está en el archivo /etc/bind/externals/db.fransberns.com
- ambas sub-zonas son type master: significa que el servidor DNS es primario.
- definimos un servidor DNS secundario (que lo tenemos en la IP ss1.ss2.ss3.ss4), mediante la directiva acl slave. Con la directiva allow-transfer permitimos transferir los datos de la sub-zona external a este servidor secundario.
- creamos las zonas 1.168.192.in-addr.arpa y dd3.dd2.dd1.in-addr.arpa para que nuestro servidor DNS haga el mapeo inverso (traducir una IP a un nombre de dominio).
- creamos el archivo /etc/bind/externals/db.fransberns.com (IN NS
indica que este equipo es el servidor DNS):
; fransberns.com-externals $TTL 604800 @ IN SOA ns1.fransberns.com. root.fransberns.com. ( 2006020201 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ); Negative Cache TTL ; @ IN NS ns1 IN MX 10 mail IN A dd1.dd2.dd3.dd4 ns1 IN A dd1.dd2.dd3.dd4 mail IN A dd1.dd2.dd3.dd4 www IN A dd1.dd2.dd3.dd4
- creamos el archivo /etc/bind/internals/db.fransberns.com (IN A añade
un nombre de host y su IP correspondiente):
; fransberns.com-internals $include "/etc/bind/externals/db.fransberns.com" @ IN A 192.168.1.3 pc350 IN A 192.168.1.3 pc450 IN A 192.168.1.2 pc266 IN A 192.168.1.4 - creamos el archivo /etc/bind/internals/db.192.168.1 (contiene la misma
información del mapeo de nombres a IPs):
; fransberns.com inverso red local $TTL 604800 @ IN SOA fransberns.com. root.fransberns.com. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D ) ; Minimum TTL ; @ IN NS fransberns.com 3 IN PTR pc350.fransberns.com. 2 IN PTR pc450.fransberns.com. 4 IN PTR pc266.fransberns.com.
- creamos el archivo /etc/bind/internals/db.dd1.dd2.dd3 (contiene la misma
información del mapeo de nombres a IPs):
; fransberns.com inverso red pública $TTL 604800 @ IN SOA fransberns.com. root.fransberns.com. ( 1 ; Serial 8H ; Refresh 2H ; Retry 4W ; Expire 1D ) ; Minimum TTL ; @ IN NS fransberns.com dd4 IN PTR ns1 dd4 IN PTR mail dd4 IN PTR www
- ¿cómo se configura el servidor secundario? En el /etc/bind/named.conf
del servidor DNS secundario añadiremos las líneas:
zone "fransberns.com" { type slave; file "sec.db.fransberns.com"; masters { dd1.dd2.dd3.dd4; }; }; zone "dd3.dd2.dd1.in-addr.arpa" { type slave; file "sec.db.dd1.dd2.dd3"; masters { dd1.dd2.dd3.dd4; }; };
- ¿y si no tenemos servidor DNS secundario? Un servidor DNS debe tener un servidor secundario. Podemos conseguir un servidor DNS secundario en xname.org. Sólo tenemos que abrir una cuenta para fransberns.com y decirles que dd1.dd2.dd3.dd4 es la IP desde donde transferirán la información DNS del dominio fransberns.com. En ese caso, sustituiremos ss1.ss2.ss3.ss4 por la IP de xname.org (193.218.105.146).
- editaremos /etc/bind/named.conf.options e incluiremos las IPs de los servidores
DNS de nuestro ISP, de manera que Bind las utilizará para resolver peticiones que no
pertenezcan a nuestro dominio. Buscaremos la directiva forwarders y pondremos:
forwarders { 80.58.61.250; 80.58.61.254; };
- editaremos el archivo /etc/resolv.conf y añadiremos la IP del servidor DNS (dejaremos
los de nuestro ISP por si falla Bind):
search fransberns.com nameserver 192.168.1.3 nameserver 80.58.61.250 nameserver 80.58.61.254
- cuando se nos pregunte por un servidor DNS al registrar fransberns.com, pondremos el que hemos montado, ns1.fransberns.com, como primario y ss1.ss2.ss3.ss4 como secundario. Los cambios de configuración en el DNS son lentos, y no podremos comprobar los resultados hasta transcurridas algunas horas (hasta 48 horas).
- reiniciamos el demonio de Bind (named) ejecutando:
# /etc/init.d/bind9 restart
Una vez instalado el servidor DNS configuraremos los clientes. Para ello, configuraremos cada ordenador de la red local para que use el servidor DNS local editando el archivo /etc/resolv.conf de cada máquina y añadiendo la IP del servidor DNS:
search fransberns.com nameserver 192.168.1.3 nameserver 80.58.61.250 nameserver 80.58.61.254
1 comentario en “Servidor DNS Bind para un dominio registrado”
Deja un comentario

Muchas gracias, por fin he encontrado una buena explicación para el caso con el que me encontraba; está todo de lujo.
A seguir así!