DNS Setup · 6 min read · Nov 27, 2025
Configuración Perfecta de DjbDNS en Ubuntu Server 8.04 (amd64) Hardy
Configuración Perfecta de DjbDNS en Ubuntu Server 8.04 (amd64) Hardy
DjbDNS es una colección de herramientas del Sistema de Nombres de Dominio. Incluye software para todas las operaciones fundamentales de DNS:
Caché DNS: Encontrar direcciones de hosts de Internet. Cuando un navegador quiere contactar www.hotwired.com, primero pregunta a una caché DNS, como la dnscache de djbdns, para encontrar la dirección IP de www.hotwired.com. Los proveedores de servicios de Internet ejecutan dnscache para encontrar direcciones IP solicitadas por sus clientes. Si estás ejecutando una computadora en casa o una estación de trabajo, puedes ejecutar tu propia dnscache para acelerar tu navegación web.
Servidor DNS: Publicar direcciones de hosts de Internet. La dirección IP de www.hotwired.com es publicada por los servidores DNS de HotWired. djbdns incluye un servidor DNS de propósito general, tinydns; los administradores de red ejecutan tinydns para publicar las direcciones IP de sus computadoras. djbdns también incluye servidores de propósito especial para publicar muros DNS y RBLs.
Cliente DNS: Hablar con una caché DNS. djbdns incluye una biblioteca C de cliente DNS y varias utilidades de cliente DNS de línea de comandos. Los programadores utilizan estas herramientas para enviar solicitudes a cachés DNS.
DjbDNS también incluye varias herramientas de depuración de DNS, notablemente dnstrace, que los administradores utilizan para diagnosticar servidores remotos mal configurados.
Características de seguridad:
- dnscache se ejecuta como un uid no root dedicado dentro de una cárcel chroot, por lo que no puede tocar el resto de la máquina.
- tinydns se ejecuta como otro uid no root dedicado dentro de su propia cárcel chroot.
- walldns se ejecuta como otro uid no root dedicado dentro de su propia cárcel chroot.
- dnscache descarta consultas DNS de fuera de una lista especificada de direcciones IP.
- dnscache y la biblioteca dns utilizan un nuevo ID de consulta y un nuevo puerto UDP para cada paquete de consulta. Descartan respuestas DNS de cualquier dirección IP que no sea la que se envió la consulta correspondiente.
- dnscache utiliza un generador criptográfico para seleccionar números de puerto e IDs impredecibles.
- dnscache es inmune a la contaminación de caché.
tinydns nunca almacena información en caché. No soporta recursión.
Pre-Instalación
apt-get install build-essential
mkdir /tmp/downloads
cd $_
wget -c HYPERLINK "http://www.thedjbway.org/patches/djb_errno_patches.tgz" http://www.thedjbway.org/patches/djb_errno_patches.tgz
tar -zxvf djb_errno_patches.tgz
wget -c HYPERLINK "http://cr.yp.to/daemontools/daemontools-0.76.tar.gz" http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
wget -c HYPERLINK "http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz" http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz
wget -c HYPERLINK "http://cr.yp.to/djbdns/djbdns-1.05.tar.gz" http://cr.yp.to/djbdns/djbdns-1.05.tar.gzInstalar Todos Los Paquetes
a. Instalar ucspi-tcp-src:
cd /tmp/downloads
tar -zxvf ucspi-tcp-0.88.tar.gz
cd ucspi-tcp-0.88
patch -p1 < /tmp/downloads/ucspi-tcp-0.88.errno.patch
make
make setup checkb. daemontools
cd /tmp/downloads
tar -zxvf daemontools-0.76.tar.gz
cd admin/daemontools-0.76/
touch /etc/inittab
patch -p1 < /tmp/downloads/daemontools-0.76.errno.patch
package/installvi /etc/event.d/svscan# svscan - daemontools
start on runlevel 2
start on runlevel 3
start on runlevel 4
start on runlevel 5
stop on runlevel 0
stop on runlevel 1
stop on runlevel 6
respawn
exec /command/svscanbootEste instalador solo crea enlaces a todos los comandos svscan en /command, así que es mejor copiar estos:
cd /command
rm -rf *
cp /tmp/downloads/admin/daemontools/command/* /command/Eso es todo… luego (puedes necesitar reiniciar) …
initctl start svscanc. djbdns
cd /tmp/downloads
tar -zxvf djbdns-1.05.tar.gz
cd djbdns-1.05
echo gcc -O2 -include /usr/include/errno.h > conf-cc
make
make setup checkConfigurar Paquetes
Crear usuarios (si no han sido creados automáticamente):
adduser --no-create-home --disabled-login --shell /bin/false dnscache
adduser --no-create-home --disabled-login --shell /bin/false dnslog
adduser --no-create-home --disabled-login --shell /bin/false tinydnsConfigurar dnscache:
En nuestro escenario, necesitamos que cada servidor maestro y esclavo sea tanto “autoritativo” como “caché”. Por lo tanto, es muy importante entender cómo lograr esto con djbdns. A diferencia de bind, djbdns utiliza IPs individuales para cada tipo de servicio DNS. Por defecto, cada sistema está listo con 2 IP’s => una IP de host y otra es IP de loopback. Así que cualquier sistema en la LAN debería acceder a la caché DNS, por lo tanto la IP de host para la caché DNS. Y ejecutaremos autoritativo en la IP de loopback, y luego lo vincularemos a la caché DNS, por lo que los hosts de la LAN también pueden consultar registros de host autoritativos.
mkdir /var/lib/svscan
dnscache-conf dnscache dnslog /var/lib/svscan/dnscache
ln -sf /var/lib/svscan/dnscache /service Verifica que el directorio “supervise” se haya creado en /service/dnscache
Para verificar que está funcionando: solo agrega una única entrada como ‘nameserver
Ahora necesitas permitir que los hosts de la LAN consulten desde él. Así que solo crea un archivo en blanco nombrado según tu red o subred como:
touch /etc/dnscache/root/ip/Eso es todo. Ahora puedes consultar desde cualquiera de los hosts de esa
A diferencia de bind, puedes ajustar el tamaño de la caché del servidor de nombres editando el archivo /etc/dnscache/env/CACHESIZE. También puedes actualizar o vaciar manualmente la caché ejecutando el siguiente comando:
svc -t /service/dnscacheTemporalmente puedes detener y comenzar dnscache con los siguientes comandos:
svc -d /service/dnscache => para bajar el servicio dnscache
svc -u /service/dnscache => para subir el servicio dnscacheConfigurar tinydns:
tinydns-conf tinydns dnslog /var/lib/svscan/tinydns
ln -sf /var/lib/svscan/tinydns /service Verifica que el directorio “supervise” se haya creado en /service/tinydns.
No contienen ninguna entrada de zona para ningún dominio aún, pero llegaremos a eso en un momento. Bueno, a diferencia de bind, la información de la zona se escribe en un solo archivo (incluso para múltiples zonas, incluidas las zonas inversas) y ese es /var/lib/svscan/tinydns/root/data. Este es un archivo escribible por humanos que luego se convierte en formato binario usando un comando de tinydns y ese binario se llama formato cdb, así que ese archivo binario es /var/lib/svscan/tinydns/root/data.cdb desde donde tinydns responde todas las consultas. La sintaxis para los registros de zona es muy corta y compacta en comparación con bind. Aquí hay algunos ejemplos:
a. Para entrada de servidor de nombres:
.in.domain.com:10.20.0.10:ns1.in.domain.com
.in.domain.com:10.20.0.12:ns2.in.domain.comb. Para reverse-dns para el servidor de nombres anterior:
.10.in-addr.arpa::ns1.in.domain.com
.10.in-addr.arpa::ns2.in.domain.comc. Para registros MX:
@in.domain.com:165.212.65.113:mx.usa.net:10
@in.domain.com:10.20.0.12:mail.in.domain.com:20d. Registros A:
=host0001.in.domain.com:10.10.0.101e. Registros Alias para hosts:
+host01.in.domain.com:10.10.0.101
+mysql01.in.domain.com:10.10.0.101Y finalmente convierte /var/lib/svscan/tinydns/root/data a formato cdb mediante
tinydns-datao
cd /var/lib/svscan/tinydns/root
makeAl final, para vincular esta información de zona al servidor de caché DNS, crea archivos nombrados como 10.in-addr.arpa, in.domain.com y domain.com, etc. en el directorio /var/lib/svscan/dnscache/root/servers/, cuyos contenidos deben ser 127.0.0.1 (la IP de Loopback). Eso es todo. Todo está configurado.
Nota: Siempre que realices cambios en los datos y crees un archivo data.cdb cambiado, no olvides actualizar o vaciar la caché.
svc -t /services/*Configuración del Servidor Esclavo Usando Djbdbs
Solo sigue http://www.seebq.com/dns-replication-using-rsync y algunos ajustes en algunos archivos del Maestro y Esclavos.
a. Cambios en el /var/lib/svscan/tinydns/root/Makefile del maestro: Edita el archivo como
remote: data.cdb
rsync -az -e ssh data.cdb :/service/tinydns/root/data.cdb
ssh 'svc -t /service/dnscache'
data.cdb: data
/usr/local/bin/tinydns-data
svc -t /service/dnscache b. Cambios en el archivo /var/libsvscan/tinydns/root/data del esclavo como
# No edites datos en esta computadora! data.cdb es copiado del MAESTRO.
# La siguiente línea protege data.cdb deteniendo make.
9Así que si por error alguien escribe el comando make en el directorio /etc/tinydns/root o el comando tinydns-data, esto solo vaciará la caché ya que no hay archivo de datos en el(los) esclavo(s).
Y sí, solo una configuración de inicio de sesión auto-ssh entre maestro y esclavo(s) para que los cambios anteriores automaticen el proceso. Los cambios anteriores solo enviarán el archivo data.cdb al(los) esclavo(s). Así que no hay posibilidad de datos diferentes entre los servidores de nombres, lo que significa consistencia en todos.
Respaldo y Restauración
Como mínimo, solo necesitamos una copia del archivo /var/lib/svscan/tinydns/root/data o, en el máximo, todo el /var/lib/svscan/dnscache y /var/lib/svscan/tinydns. Eso es todo.
Para la restauración, solo configura dnscache o tinydns, apenas tomará tiempo, y copia los datos de respaldo. Finalmente, crea un enlace simbólico a /service. Eso es todo.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.