Parto de un DNS master y un DNS slave.
Caso midominio.es:
En el caso de preguntar desde redes internas deben responder con IPs internas cuando preguntan por midominio.es, además estos 2 DNS deben realizar forward, es decir, deben resolver cualquier nombre dns (Ej: www.google.com).
En el caso de preguntar desde redes externas deben responder con IPs externas cuando preguntan por midominio.es y no responder nada para el resto de dominios (por seguridad, así nadie en internet utilizará nuestros DNS en su configuración de red).
Hay que configurar 3 archivos en cada servidor, están en /etc/bind:
named.conf (Este es igual en el master y en el esclavo)
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
//Comentamos este include por que ahora va a depender de cada view en /etc/bind/named.conf.local
//include "/etc/bind/named.conf.default-zones";
named.conf.options (DNS master)
acl "dns_slaves" {
192.168.3.102; # IPs de los servidores DNS esclavos
};
acl "lan_hosts" {
127.0.0.1; # allow loop back
192.168.1.0/24; # lan1
192.168.2.0/24; # lan2
192.168.3.0/24; # lan dns servers
192.168.4.0/24; # lan4
};
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8; #DNS publico 1 de google
8.8.4.4; #DNS publico 2 de google
192.168.2.127; #DNS interno Active directory lan2
192.168.1.127; #DNS interno Active directory lan1
192.168.4.127; #DNS interno Active directory lan4
};
listen-on { #IPs en las que este DNS escucha las peticiones
192.168.3.101;
127.0.0.1;
};
auth-nxdomain no; #RFC1035
allow-query { any; }; # permitir que cualquiera haga peticiones
allow-recursion { lan_hosts; }; # permitir recursion dns
allow-query-cache { lan_hosts; }; # permitir hacer uso del DNS cache para dominios no alojados en este DNS
recursion no; # Deshabilitar decursion DNS a nivel general
version "0"; # Ocultar la version de este software
};
named.conf.options (DNS esclavo) (lo único que cambia es listen-on)
acl "dns_slaves" {
192.168.3.102; # IPs de los servidores DNS esclavos
};
acl "lan_hosts" {
127.0.0.1; # allow loop back
192.168.1.0/24; # lan1
192.168.2.0/24; # lan2
192.168.3.0/24; # lan dns servers
192.168.4.0/24; # lan4
};
options {
directory "/var/cache/bind";
forwarders {
8.8.8.8; #DNS publico 1 de google
8.8.4.4; #DNS publico 2 de google
192.168.2.127; #DNS interno Active directory lan2
192.168.1.127; #DNS interno Active directory lan1
192.168.4.127; #DNS interno Active directory lan4
};
listen-on { #IPs en las que este DNS escucha las peticiones
192.168.3.102;
127.0.0.1;
};
auth-nxdomain no; #RFC1035
allow-query { any; }; # permitir que cualquiera haga peticiones
allow-recursion { lan_hosts; }; # permitir recursion dns
allow-query-cache { lan_hosts; }; # permitir hacer uso del DNS cache para dominios no alojados en este DNS
recursion no; # Deshabilitar decursion DNS a nivel general
version "0"; # Ocultar la version de este software
};
named.conf.local (DNS master) Aquí es donde realmente son diferentes el master del esclavo
view "internal" {
match-clients { lan_hosts; }; # Esta vista es para los equipos de la acl lan_hosts
recursion yes; # Permitir consultas recursivas
notify no; # Deshabilitar notificaciones AA
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// Ser autorizado para zona localhost, forward y zonas inversas, y para
// zonas broadcast asi como para RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
//Configuracion de los dominios mantenidos en este DNS master (vista interna)
zone "midominio.es" {
type master;
file "/etc/bind/internal/db.midominio.es";
};
};
view "external" {
match-clients { any; }; # Esta vista es para el resto de equipos que no estén en la view internal
recursion no; # deshabilitar consultas DNS recursivas
allow-transfer { dns_slaves; }; #Permitr a los equipos de la acl "dns_slaves" transferecias de zona
//Configuracion de los dominios mantenidos en este DNS master (vista externa)
zone "midominio.es" {
type master;
file "/etc/bind/external/db.midominio.es";
};
};
named.conf.local (DNS esclavo) Aquí es donde realmente son diferentes el master del esclavo
view "internal" {
match-clients { lan_hosts; }; # Esta vista es para los equipos de la acl lan_hosts
recursion yes; # Permitir consultas recursivas
notify no; # Deshabilitar notificaciones AA
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// Ser autorizado para zona localhost, forward y zonas inversas, y para
// zonas broadcast asi como para RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
//Configuracion de los dominios para los que este servidor es esclavo
zone "midominio.es" {
type slave;
masters { 192.168.3.101; };
file "db-int.midominio.es";
};
};
view "external" {
match-clients { any; }; # Esta vista es para el resto de equipos que no estén en la view internal
recursion no; # deshabilitar consultas DNS recursivas
//Configuracion de los dominios para los que este servidor es esclavo
zone "midominio.es" {
type slave;
masters { 192.168.3.101; };
file "db-ext.midominio.es";
};
};
Editado posteriormente:
En el DNS master existirán dos archivos, que definen la zona midominio.es
/etc/bind/external/db.midominio.es
En el DNS master existirán dos archivos, que definen la zona midominio.es
/etc/bind/external/db.midominio.es
$TTL 604800
@ IN SOA midominio.es. dnsmaster.midominio.es. (
12345678 ; Serial
3600 ; Refresh
600 ; Retry
43200 ; Expire
60 ) ; Negative Cache TTL
;
@ IN NS dns1.midominio.es.
@ IN NS dns2.midominio.es.
@ IN MX 5 smtp1.midominio.es.
@ IN MX 10 smtp2.midominio.es.
@ IN TXT "v=spf1 +mx +ptr -all"
@ IN A 1.1.1.1
dns1 IN A 1.1.1.1
dns2 IN A 1.1.1.2
www IN A 1.1.1.1
ftp IN CNAME www.midominio.es.
smtp1 IN A 1.1.1.1
smtp2 IN A 1.1.1.2
@ IN SOA midominio.es. dnsmaster.midominio.es. (
12345678 ; Serial
3600 ; Refresh
600 ; Retry
43200 ; Expire
60 ) ; Negative Cache TTL
;
@ IN NS dns1.midominio.es.
@ IN NS dns2.midominio.es.
@ IN MX 5 smtp1.midominio.es.
@ IN MX 10 smtp2.midominio.es.
@ IN TXT "v=spf1 +mx +ptr -all"
@ IN A 1.1.1.1
dns1 IN A 1.1.1.1
dns2 IN A 1.1.1.2
www IN A 1.1.1.1
ftp IN CNAME www.midominio.es.
smtp1 IN A 1.1.1.1
smtp2 IN A 1.1.1.2
/etc/bind/internal/db.midominio.es
$TTL 604800
@ IN SOA midominio.es. dnsmaster.midominio.es. (
12345678 ; Serial
3600 ; Refresh
600 ; Retry
43200 ; Expire
60 ) ; Negative Cache TTL
;
@ IN NS dns1.midominio.es.
@ IN NS dns2.midominio.es.
@ IN MX 5 smtp1.midominio.es.
@ IN MX 10 smtp2.midominio.es.
@ IN TXT "v=spf1 +mx +ptr -all"
@ IN A 192.168.3.103
dns1 IN A 192.168.3.101
dns2 IN A 192.168.3.102
www IN A 192.168.3.103
ftp IN CNAME www.midominio.es.
smtp1 IN A 192.168.3.38
smtp2 IN A 192.168.3.38