Configuración de un servidor DNS esclavo
Siguiendo con los manuales sobre el servidor DNS Bind9, vamos a realizar la práctica de instalar un servidor esclavo, que contenga la réplica de las configuraciones de zonas que están definidas en el servidor maestro.
Los equipos que van a ser configurados como servidor maestro y esclavo son los siguientes:
- bobesponja: Dirección ip 10.0.0.1 -> Servidor dns primario o maestro
- patricio: Dirección ip 10.0.0.2 -> Servidor dns secundario o esclavo
Los servidores DNS que vamos a configurar van a tener autoridad para la zona examplo.com.
Lo primero que tenemos que hacer es configurar el servidor BIND primario para que solo acepte peticiones hacia los dominios de los cuales es un Servidor de Dominio, (los dominios de los cuales el va a ser un name server) y también las direcciones IP de los servidores BIND esclavos. Para ello en el archivo /etc/bind/named.conf.options hago las siguientes modificaciones:
options {
directory “/var/cache/bind”;
allow-query { 10.0.0.1/24; } ;
allow-transfer { none; };
...
auth-nxdomain no; # conform to RFC1035
recursion no;
};
acl slaves {
10.0.0.2/24; // patricio
};
Vamos a explicar cada una de las directivas:
- allow-query { 10.1.1.1/28; } ; : IP del servidor Primario de DNS
- allow-transfer { none; }; : Con este parámetro restringimos la transferencia de zonas a Servidores DNS esclavos que no estén autorizados. Esta es una buena medida de seguridad, ya que evitamos que personas ajenas se enteren de las direcciones IP que están dentro de la zona de DNS de un dominio.
- acl slaves { 10.0.0.2/24; }; : Listado de acceso (access list) de los servidores de DNS esclavos.
A continuación vamos a configurar la zona de resolución directa para nuestra zona en el servidor maestro, para ello creamos un archivo db.example.compara configurar la zona example.com, en /var/cache/bind:
@ IN SOA example.com. root.example.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
IN NS bobesponja.example.com.
IN NS patricio.example.com.
bobesponja IN A 10.0.0.1
patricio IN A 10.0.0.2
www IN A 10.0.0.3
Suponemos que ne la dirección 10.0.0.3 vamos a tener un servidor web. Del mismo modo configuramos la zona de resolución inversa, creando el fichero db.0.0.10 en el mismo directorio:
@ IN SOA example.com. root.example.com. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Default TTL
IN NS bobesponja.example.com.
IN NS patricio.example.com.
1 IN PTR bobesponja.example.com.
2 IN PTR patricio.example.com.
3 IN PTR www.example.com.
A continuación en el fichero /etc/bind/named.conf.local definimos las zonas indicando quien puede hacer una petición de resolución de nombre al dominio y a quien le damos permiso para que pueda copiar las zonas, que en este caso solo seria a los servidores de DNS esclavos.
De esta manera en el fichero /etc/bind/named.conf.local del servidor maestro:
zone "example.com" {
type master;
file "db.example.com";
allow-query { any; };
allow-transfer { slaves; };
notify no;
};
zone "0.0.10.in-addr.arpa" {
type master;
file "db.0.0.10";
allow-query { any; };
allow-transfer { slaves; };
notify no;
};
- allow-query { any; }; Cualquier computadora puede hacer una petición de DNS a este dominio.
- allow-transfer { slaves; }; Con este parámetro le damos permiso a los servidores esclavos de DNS que puedan hacer una copia de la zona de DNS
En el caso del DNS esclavo tendremos que definir las zonas indicando donde se encuentra en DNS maestro, el fichero /etc/bind/named.conf.local del servidor esclavo quedaría de la siguiente forma:
zone "example.com" {
type slave;
masters { 10.0.0.1; };
file "db.example.com";
allow-query { any; };
};
// Archivo para búsquedas inversas
zone "0.0.10.in-addr.arpa" {
type slave;
masters { 10.0.0.1; }
;file "db.0.0.10";
allow-query { any; };
};
- masters { 10.0.0.1; }; Definimos a quien le debe pedir una copia de la zona de DNS para el dominio example.com que en nuestro caso seria el servidor de DNS primario.
Por último reiniciaremos el servicio de BIND en el servidor primario de DNS antes que los secundarios. Esto lo hacemos con el siguiente comando:
/etc/init.d/bind9 restart
Después de reiniciar el servicio, verificamos en el el “syslog” que nuestros servidores de DNS secundarios estén copiando la zona de DNS para example.com. Encontraremos un registro similar a este:
Nov 21 21:46:37 dns named[893]: client 10.0.0.2#39128: transfer of 'example.com/IN': IXFR started Nov 21 21:46:37 dns named[893]: client 10.0.0.2#39128: transfer of 'example.com/IN': IXFR ended
Y ya podemos hacer la prueba de configurar un cliente para que use como servidores DNS nuestras máquinas bobesponja y patricio, y comprobar que si alguna de las dos están apagadas, la otra es la que resuelve.
Un saludo a todos.
