BIND (Berkeley Internet Name Domain) es el software DNS (Domain Name System) más utilizado en servidores UNIX y Linux.
Fue desarrollado originalmente en la Universidad de Berkeley como parte del sistema BSD UNIX. Hoy es mantenido por el Internet Systems Consortium (ISC).
Al final del artículo encontrarás un pequeño test que te permitirá evaluar los conocimientos adquiridos en esta lectura
¿Qué hace BIND?
BIND permite:
- Traducir nombres de dominio a direcciones IP (por ejemplo, convertir www.google.com a 142.250.190.100).
- Realizar la función inversa: resolución inversa de IP a nombre.
- Servir como servidor autoritativo o servidor caché/reenviador.
- Gestionar zonas DNS internas y externas en redes privadas o públicas.
Fundamentos del DNS y cómo encaja BIND
Modelo de jerarquía DNS
El DNS es una base de datos jerárquica distribuida. Desde la raíz (.) hacia abajo:
.
├── com
│ └── www
└── org
└── wikipedia
└── www
BIND puede operar en cualquier parte de esta jerarquía: como root server, TLD server, servidor autoritativo o resolver (recursor).
Componentes de BIND
1. named
Es el daemon principal de BIND. Se ejecuta como un servicio y se encarga de escuchar peticiones DNS y responderlas.
2. Archivos de configuración
- / etc/named.conf: archivo de configuración principal.
- Archivos de zona: definen los datos para dominios específicos.
3. Archivos de log
- Generalmente se ubican en / var/log/, configurables en named.conf.
Instalación de BIND en Linux
En Debian/Ubuntu:
sudo apt update
sudo apt install bind9 bind9utils bind9-doc
En RHEL/CentOS/Fedora:
sudo dnf install bind bind-utils
Estructura del archivo named.conf
options {
directory "/var/named";
listen-on port 53 { any; };
allow-query { any; };
recursion yes;
};
zone "example.com" {
type master;
file "/var/named/example.com.zone";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "/var/named/reverse.zone";
};Explicación:
- options: parámetros globales.
- zone: define una zona (directa o inversa).
- type master: este servidor es el maestro de la zona.
- file: archivo con los registros DNS.
Archivos de zona
Zona directa (example.com.zone)
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025040501 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN A 192.168.1.10
www IN A 192.168.1.10
mail IN A 192.168.1.11
@ IN MX 10 mail.example.com.
Zona inversa (reverse.zone)
$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2025040501 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
10 IN PTR www.example.com.
11 IN PTR mail.example.com.
Inicialización del servicio
Iniciar BIND:
sudo systemctl start named
Habilitar al arranque:
sudo systemctl enable named
Ver estado:
sudo systemctl status named
Herramientas útiles
Verificar zonas
named-checkzone example.com /var/named/example.com.zone
Verificar config global
named-checkconf / etc/named.conf
Consultar DNS localmente
dig @localhost www.example.com
nslookup www.example.com localhost
Seguridad y Buenas Prácticas
Chroot
Se puede ejecutar BIND en modo chroot para aislarlo del resto del sistema:
- En Debian: bind9 ya corre en chroot por defecto.
- En RHEL: crear un entorno chroot manualmente o usar bind-chroot.
DNSSEC
Soporta DNSSEC para validar integridad de los registros DNS.
ACLs
Puedes restringir el acceso por IP:
acl mynetwork {
192.168.1.0/24;
};
options {
allow-query { mynetwork; };
};Rate limiting
Evita ataques de denegación de servicio DNS:
rate-limit {
responses-per-second 5;
};Modos de funcionamiento
Rol | Descripción |
Maestro (master) | Contiene los archivos de zona editables. |
Esclavo (slave) | Obtiene zona desde un maestro vía transferencia AXFR. |
Caché (caching resolver) | No es autoritativo, resuelve consultas usando su caché. |
Reenviador (forwarder) | Redirige consultas a servidores externos. |
Integración con otros sistemas
- DHCP y BIND pueden integrarse para actualizar dinámicamente zonas (ddns-update-style).
- Puede integrarse con Active Directory como servidor DNS alternativo o autoritativo para zonas específicas.
Casos prácticos y usos comunes
- Servidor DNS interno para una red LAN.
- Servidor DNS autoritativo público para un dominio en Internet.
- Servidor DNS esclavo como respaldo del maestro.
- Reenviador DNS local para mejorar velocidad de resolución en oficinas.
- Ambiente de pruebas o laboratorio en entornos virtualizados.
Ejemplo completo (zona + config)
// named.conf
zone " example.com " IN {
type master;
file "/ etc/bind/db. example.com ";
};
// db. example.com
$TTL 86400
@ IN SOA ns1. example.com. admin. example.com. (
2025040501 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1. example.com.
@ IN A 45.80.123.10
www IN A 45.80.123.10
mail IN A 45.80.123.11
@ IN MX 10 mail. example.com.
Conclusión
BIND es una de las herramientas más poderosas para el manejo de nombres en redes TCP/IP.
Dominar BIND en Linux implica comprender tanto los aspectos de configuración como los fundamentos del protocolo DNS, lo que te permite crear una infraestructura robusta, segura y escalable.
Breve cuestionario de conocimientos
¿Qué te pareció este artículo?
¿Te atreves a evaluar tus conocimientos aprendidos?
Libros recomendados para éste artículo
(Book) Networking with MikroTik RouterOS: A Practical Approach to Understanding and Implementing RouterOS
Study material for the MTCNA Certification Course, updated to RouterOS v7
Libro Ruteo Avanzado RouterOS v7
Material de estudio para el Curso de Certificación MTCRE, actualizado a RouterOS v7










