DNS Setup · 5 min read · Oct 03, 2025
[Debian Sarge] Instalación de un sistema DNS Master/Slave con Bind9
[Debian Sarge] Instalación de un sistema DNS Master/Slave con Bind9
Versión: 1.0 - 23 de agosto de 2006
Bienvenido
En este tutorial instalaremos 2 servidores DNS bind, uno como maestro y el otro como servidor esclavo. Por razones de seguridad, chrootaremos bind9 en su propia cárcel.
Usar dos servidores para un dominio es una configuración común y para alojar tu propio dominio se requiere tener al menos 2 servidores de dominio. Si uno falla, el otro puede continuar sirviendo tu dominio.
Nuestra configuración usará Debian Sarge 3.1 (estable) como base. Una instalación simple, limpia y actualizada será suficiente ya que instalaremos los paquetes requeridos con este tutorial.
En este tutorial usaré el dominio ficticio “linux.lan”. Los servidores de nombres usarán 192.168.254.1 y 192.168.254.2 como sus IP.
Algunas últimas palabras antes de comenzar: Leí el tutorial de Joe (también en este sitio) y algunos más, pero ninguno de ellos funcionó sin algunos ajustes. Por lo tanto, hice mi propio tutorial. Y DEBERÍA funcionar de inmediato :)
Instalación de Software
Al principio, necesitarás una instalación limpia de Debian Sarge. ¡Asegúrate de que esté actualizado!
apt-get update; apt-get upgradeTambién necesitamos algunas herramientas de construcción de Debian ya que tenemos que descargar paquetes fuente:
apt-get install devscriptsA continuación, instalaremos el software necesario para Bind. Para usar cifrado al transferir el archivo de zona entre el maestro y el esclavo, necesitamos una versión más actualizada de Bind9 (versión >=9.3) que la que se encuentra en el repositorio de Sarge. Usaremos la fuente de la rama -testing. Así que asegúrate de tener una línea como esta en tu
/etc/apt/sources.list :
deb-src http://---your.debian.mirror---/debian testing main contrib non-freeBind9 de testing depende de lsb-base de testing. Vamos a obtenerlo:
(Explicación de la sintaxis: el -y le dice a apt que responda sí a todas las preguntas, build-dep instala todos los paquetes requeridos para -testing_packageX- del repositorio de sarge y con -b la fuente se construye de inmediato.)
cd ~/a/dir/for/lsb-base/
apt-get -y build-dep lsb-base
apt-get source lsb-base -b
dpkg-i lsb-base*.deb
A continuación, está Bind9:
cd ~/a/dir/for/bind9
apt-get -y build-dep bind9
apt-get source bind9 -b
dpkg -i *.deb
Ahora todo nuestro software está instalado y listo para ser configurado.
Configurar El Maestro
Primero necesitamos detener bind9:
/etc/init.d/bind9 stopPara chrootear bind necesitamos establecer una opción en
/etc/default/bind9 :
De:
OPTIONS="-u bind"A:
OPTIONS="-u bind -t /var/lib/named"Ahora se ejecutará como usuario ‘bind’ chrooted en ‘/var/lib/named’.
A continuación, editamos la línea de forwarders en
/etc/bind/named.conf.options para que coincida con el DNS de nuestro ISP:
forwarders { 194.109.6.66; };Estos pasos son necesarios para la cárcel chroot:
mkdir -p /var/lib/named/etc
mkdir /var/lib/named/dev
mkdir -p /var/lib/named/var/cache/bind
mkdir -p /var/lib/named/var/run/bind/run
mv /etc/bind /var/lib/named/etc
ln -s /var/lib/named/etc/bind /etc/bind
mknod /var/lib/named/dev/null c 1 3
mknod /var/lib/named/dev/random c 1 8
chmod 666 /var/lib/named/dev/
chown -R bind:bind /var/lib/named/var/
chown -R bind:bind /var/lib/named/etc/bind
Bind ahora tiene su propio directorio con espacio para archivos .pid y archivos de configuración. Para mantener las cosas claras, hicimos un enlace simbólico de vuelta a /etc/.
Ahora edita /etc/init.d/sysklogd para permitir el registro de la actividad de bind:
De:
SYSLOGD=""A:
SYSLOGD="-a /var/lib/named/dev/log"El paso final es agregar la IP de este nuevo servidor DNS instalado (el localhost) a tu
/etc/resolv.conf para usarlo: echo “search linux.lan” > /etc/resolv.conf
echo “nameserver 127.0.0.1” >> /etc/resolv.conf
Ahora reinicia sysklogd y bind9:
/etc/init.d/sysklogd restart
/etc/init.d/bind9 start
¡Y prueba!
ping www.google.comSi obtienes una respuesta, entonces tu servidor DNS maestro está funcionando y listo para usar. Ahora llenaremos y usaremos el dominio linux.lan con nuestro nuevo servidor maestro.
Configurando el dominio linux.lan
El servidor DNS maestro actualmente solo está reenviando solicitudes al servidor de tu ISP. Así que, ahora instalaremos y configuraremos nuestro propio dominio y dejaremos que nuestro nuevo servidor maneje todas las solicitudes relacionadas con ese dominio.
Comencemos creando el directorio donde almacenaremos el archivo de zona. Este archivo contiene toda la información sobre el dominio.
mkdir /etc/bind/zones/A continuación, crearemos el archivo de zonas,
/etc/bind/zones/master_linux.lan :
$TTL 3D
@ IN SOA ns1.linux.lan. hostmaster.linux.lan. (
199802151 ; serial, fecha de hoy + número de serie de hoy
8H ; refresh, segundos
2H ; retry, segundos
4W ; expire, segundos
1D ) ; minimum, segundos
;
TXT "Linux.LAN, sirviendo TU dominio :)"
NS ns1 ; Dirección Inet del servidor de nombres
NS ns2
MX 10 mail ; Intercambiador de correo primario
localhost A 127.0.0.1
ns1 A 192.168.254.1
ns2 A 192.168.254.2
www CNAME ns1Aquí hemos creado un archivo de zona simple con ambos servidores de nombres y un alias www para ns1. Por si acaso tenemos un apache en funcionamiento en ns1 ;)
Ahora edita /etc/bind/named.conf.local y agrega:
zone "linux.lan" {
type master;
file "/etc/bind/zones/master_linux.lan";
};Esto es todo, ahora podemos reiniciar bind y verificar si funciona:
/etc/init.d/bind9 restart
ping ns1.linux.lan
En esta etapa deberías tener un servidor DNS funcional y utilizable :)
Si dice que no puede encontrar el dominio, tal vez dhclient haya cambiado tu entrada de servidor de nombres… Así que mátalo.
Instalación del Esclavo
Básicamente, el esclavo utiliza el mismo sistema básico que construimos en la primera parte (justo antes de agregar el archivo de zona). Agregaremos algunos pequeños cambios tanto al maestro como al esclavo para que funcionen juntos. El archivo de zonas se transferirá a través de la red utilizando cifrado.
A menos que se indique lo contrario, estos comandos son solo para el esclavo.
Crea el directorio de zonas:
mkdir /etc/bind/zonesPara ambos, maestro Y esclavo, edita /etc/bind/named.conf.options y agrega:
dnssec-enable yes;Ahora necesitamos una clave segura. Esto generará un archivo .private y un archivo .key. La línea ‘key=’ en el archivo .private representa la clave hash.
dnssec-keygen -a hmac-md5 -b 128 -n host linux.lanAgrega esto en tu /etc/bind/named.conf en el maestro Y el esclavo:
key "TRANSFER" {
algorithm hmac-md5;
secret "---HASHKEY---";
};En el maestro, agregamos la IP del esclavo a /etc/bind/named.conf :
server 192.168.254.2 {
keys {
TRANSFER;
};
};Y en el esclavo agregamos la IP del maestro a /etc/bind/named.conf :
server 192.168.254.1 {
keys {
TRANSFER;
};
};Agrega a /etc/bind/named.conf.local :
zone "linux.lan" {
type slave;
file "/etc/bind/zones/slave_linux.lan";
masters { 192.168.254.1; };
allow-notify { 192.168.254.1; };
};Lo último que se necesita en AMBOS hosts es agregar esto a /etc/bind/named.conf :
include "/etc/bind/rndc.key";Para tener una transferencia de zona exitosa, ambos sistemas deben tener un reloj sincronizado, así que:
apt-get -y install ntpdate
Reinicia bind en ambas máquinas y nota el nuevo archivo de zona en el esclavo :)
Si te preguntas por qué las actualizaciones al archivo de zona en tu maestro parecen fallar, verifica la configuración de expiración, etc. dentro del archivo de zona.
¡Buena suerte con tu nueva configuración de DNS maestro/esclavo!
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.