Delegando zona con bind9
Hola gente les escribo por un problema que no he podido resolver desde
hace tiempo y que había dejado por imposible pero que hoy quiero debatir
con ustedes. Resulta que hace tiempo quería lograr en mi RED usando bind9
en Debian Etch 4.0 (en aquel entonces) delegar un subdominio en otro
servidor DNS de mi RED, recuerdo que en aquel entonces escribí varios
mensajes en otras listas y algunos colegas participaron conmigo en el
debate e incluso hubo un colega que me envió como tenia implementado eso
el en su red y le funcionaba, sin embargo a mi nunca me funcionó. El
motivo por el cual vuelvo a tocar el tema es por la razón de que me he
dedicado en estos días a correr varias maquinas virtuales con Debian Jenny
empleando VirtualBox para ello y a modo de experimento hice algunas
pruebas en dichas máquinas virtuales (que son 3 para ser exacto) y veo que
me funciona perfectamente, pero el llevar dichos ejemplos a mis servidores
en producción no me funciona de ninguna manera y ambas configuraciones
están idénticas, salvo algunas diferencias que se las diré a continuación.
Les explicare el escenario yo tengo una RED con IP privadas y estoy
enlazado con mi proveedor de servicios por 2 enlaces, cuyas redes son:
192.168.5.0/28 y 192.168.22.0/29 respectivamente, tengo 2 router como es
lógico, un switch de 16 puertos a donde están conectados los 2 routers y
todos mis servidores que son 4 más mi estación de trabajo con Windows XP.
De mis 4 servidores hay 3 de ellos que tienen 2 interfaces de RED físicas
y el 4to servidor tienen 3 interfaces, también físicas, una interfaz con
una ip en la subred 192.168.5.0/28 y otra interfaz en la otra subred
192.168.22.0/29, ahora! La puerta de enlace de todos mis servidores y la
de mi estación de trabajo es la ip del router de la red 192.168.5.0/28 la
cual es: 192.168.5.1 por lo tanto, mis servidores por DNS se ven entre
ellos por la subred 5.0/28, el 4to servidor como dije tiene 3 interfaces
en dos de ellas tiene las ip que le corresponde a dicho Server en las
subredes 5 y 22 y la tercera interfaz tiene una ip es otra subred:
192.168.222.0/24 que es la subred que uso para la red local del centro de
trabajo. Esta tercera interfaz de RED esta conectada a otros Switch que es
donde están conectadas todas las estaciones de trabajo del edificio y que
todas están en la subred 222.
Bueno yo tengo 2 servidores DNS para mi red, uno master y el otro slave
(mis 4 servidores tienen Debian GNU Linux 5.0 (Lenny)) y mi DNS está
configurado con vistas, ya que los los clientes a los que yo le doy
servicio, no solo están en la red LAN dentro del edificio, sino que
también tengo una serie de oficinas (por decirlo de alguna manera) que
unas se conectan mediante un enlace dedicado FrameRelay de 64K o de 128K y
que acceden a los servicios de mi Nodo a través de router 192.168.5.1 (por
lo que esos usuarios ven a mis servidores por las IP de la subred
192.168.5.0/28) pero tengo otras oficinas que no tienen router y que se
conectan por MODEM a un proveedor de servicios (ETECSA) que esta
autorizado a brindar el servicio de acceso remoto a redes y dicho
proveedor los enruta hacia mi, pero solo contra la subred 192.168.22.0/29
esto quiere decir que esos clientes que se conectan por MODEM a ese
proveedor llamado ETECSA solamente puede ver la subred 192.168.22.0/29 la
subred 5 no es accesible para ellos. Por lo tanto yo tengo 2 vistas en mi
DNS, una vista para las consultas dns que provengan de las subredes:
10.20.45.0/24 y 10.20.46.0/24 que son las ip que ETECSA les asigna a mis
clientes que tienen conexión por MODEM, esta vista en mi dns les responde
a esos clientes empleando las ip de la subred 22 y la otra vista es para
el resto el mundo, que con esto me refiero a las subredes de las oficinas
que cuentan con routers, la propia subred 192.168.5.0/28 y las subredes de
mi Nodo Nacional.
Como dije anteriormente yo comencé a tratar de delegar un subdominio con
mis dns desde los tiempos en que Etch era la distro stable de Debian y
tampoco logre que me funcionara, ahora tengo Lenny y como muchos de
ustedes sabrán hay algunas diferencias en cuando a configurar un DNS con
vistas en Debian Etch y Debian Lenny, eso fue algo que cuando me pase a
Lenny me dio un poco de trabajo, pero que ya quedo resuelto hace rato,
pues bien. En mi estación de trabajo con Windows XP que que tiene una sola
interfaz de red la cual tiene una ip de la subred 192.168.5.0/28 instale
virtualbox y cree 3 maquinas virtuales con debian lenny las 3, solo en
modo texto (al igual que en mis servidores) desde luego esas 3 máquinas
virtuales tuve que ponerles a las 3 direcciones ip de la red 5 por suerte
me quedaban 3 disponibles en esa subred. A la primera PC virtual la llame:
mx1.pri.gredes.cu (un dominio inventado por mi y que no coincide con nadie
en internet) y a las otras 2 PC virtuales les llame:
delta.mail.pri.gredes.cu y correo.info.pri.gredes.cu respectivamente. La
idea era en la 1ra configurar un DNS master para el dominio: pri.gredes.cu
y en la configuración de este delegar los subdominios: mail.pri.gredes.cu
e info.pri.gredes.cu en los servidores llamados: delta y correo. También
para poder acceder a dichas PC virtuales por la red desde mi estación
Windows y empleando los nombres en el DNS, fui a mi DNS master, y añadí la
zona pri.gredes.cu de tipo forward y le dije que el dns master para esa
zona era la ip de mx1.pri.gredes.cu (que tiene una ip de la subred 5)
haciendo esto, ya lograba que el DNS de mi red (pri.jovenclub.cu) supiera
a que servidor DNS tenia que preguntar cuando recibiera una consulta para
el dominio: pri.gredes.cu
Pues bien, como les comente todo esto que he hecho en las PC virtuales me
ha funcionado de maravillas, el DNS que esta en mx1.pri.gredes.cu delega
los subdominios mail.pri.gredes.cu e info.pri.gredes.cu en sus respectivos
servidores y yo desde mi estación de trabajo Windows puedo hacer consultas
DNS y preguntar por nombres y ALAS que estan puestos en los DNS que están
configurados en las PC virtuales: correo.info.pri.gredes.cu y
delta.mail.pri.gredes.cu respectivamente. A continuación les pongo las
configuraciones:
Configuración del servidor: mx1.pri.gredes.cu
Contenido del fichero /etc/bind/named.conf.local
// Zona pri.gredes.cu
zone "pri.gredes.cu" {
type master;
file "/var/cache/bind/pri.gredes.cu";
};
Contenido del fichero de la zona directa:
$ORIGIN pri.gredes.cu.
$TTL 86400
@ 21600 IN SOA mx1.pri.gredes.cu. root.pri.gredes.cu. (
2009121802
3600
3600
3600000
86400 )
21600 IN NS mx1.pri.gredes.cu.
info.pri.gredes.cu. 21600 IN NS correo.info.pri.gredes.cu.
mail.pri.gredes.cu. 21600 IN NS delta.mail.pri.gredes.cu.
21600 IN MX 5 mx1.pri.gredes.cu.
mx1 21600 IN A 192.168.5.9
delta.mail.pri.gredes.cu. 21600 IN A 192.168.5.10
correo.info.pri.gredes.cu. 21600 IN A 192.168.5.11
mx 21600 IN CNAME mx1
ns 21600 IN CNAME mx1
Configuración del servidor: delta.mail.pri.gredes.cu
Contenido del fichero /etc/bind/named.conf.local
//Zona mail.pri.gredes.cu
zone "mail.pri.gredes.cu" {
type master;
file "/var/cache/bind/mail.pri.gredes.cu";
};
Contenido del fichero de la zona directa:
$ORIGIN mail.pri.gredes.cu.
$TTL 86400
@ 21600 IN SOA delta.mail.pri.gredes.cu. root.mail.pri.gredes.cu. (
2009060601
3600
3600
3600000
86400 )
21600 IN NS delta.mail.pri.gredes.cu.
21600 IN MX 5 delta.mail.pri.gredes.cu.
delta 21600 IN A 192.168.5.10
pop3 21600 IN CNAME delta
smtp 21600 IN CNAME delta
Configuración del servidor: correo.info.pri.gredes.cu
Contenido del fichero /etc/bind/named.conf.local
//Zona info.pri.gredes.cu
zone "info.pri.gredes.cu" {
type master;
file "/var/cache/bind/info.pri.gredes.cu";
};
Contenido del fichero de la zona directa:
$ORIGIN info.pri.gredes.cu.
$TTL 86400
@ 21600 IN SOA correo.info.pri.gredes.cu. root.info.pri.gredes.cu. (
2009121703
3600
3600
3600000
86400 )
21600 IN NS correo.info.pri.gredes.cu.
21600 IN MX 5 correo.info.pri.gredes.cu.
correo 21600 IN A 192.168.5.11
pop3 21600 IN CNAME correo
smtp 21600 IN CNAME correo
webmail 21600 IN CNAME correo
gosa-admin 21600 IN CNAME correo
ldap-admin 21600 IN CNAME correo
correoweb 21600 IN CNAME correo
webmail 21600 IN CNAME correo
listas 21600 IN CNAME correo
Ahora, como dije, en estas configuraciones que he realizado en cada una de
las PC virtuales todo funciona de maravillas, por ejemplo:
Estando conectado por ssh a mx1.pri.gredes.cu para hacer consultas DNS con
el comando dig y con nslookup:
mx1:/etc# dig @localhost NS mail.pri.gredes.cu
; <<>> DiG 9.5.1-P3 <<>> @localhost NS mail.pri.gredes.cu
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28837
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;mail.pri.gredes.cu. IN NS
;; ANSWER SECTION:
mail.pri.gredes.cu. 21192 IN NS delta.mail.pri.gredes.cu.
;; ADDITIONAL SECTION:
delta.mail.pri.gredes.cu. 21192 IN A 192.168.5.10
;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 30 11:31:01 2009
;; MSG SIZE rcvd: 72
Aquí pregunte por el registro NS para el dominio info.pri.gredes.cu
mx1:/etc# dig @localhost NS info.pri.gredes.cu
; <<>> DiG 9.5.1-P3 <<>> @localhost NS info.pri.gredes.cu
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47412
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; QUESTION SECTION:
;info.pri.gredes.cu. IN NS
;; ANSWER SECTION:
info.pri.gredes.cu. 21600 IN NS correo.info.pri.gredes.cu.
;; ADDITIONAL SECTION:
correo.info.pri.gredes.cu. 21600 IN A 192.168.5.11
;; Query time: 1669 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 30 11:32:19 2009
;; MSG SIZE rcvd: 73
Ahora hago esto mismo, pero con nslookup:
mx1:/etc# nslookup
> set type=NS
> mail.pri.gredes.cu
Server: 192.168.5.9
Address: 192.168.5.9#53
Non-authoritative answer:
mail.pri.gredes.cu nameserver = delta.mail.pri.gredes.cu.
Authoritative answers can be found from:
delta.mail.pri.gredes.cu internet address = 192.168.5.10
mx1:/etc# nslookup
> set type=NS
> info.pri.gredes.cu
Server: 192.168.5.9
Address: 192.168.5.9#53
Non-authoritative answer:
info.pri.gredes.cu nameserver = correo.info.pri.gredes.cu.
Authoritative answers can be found from:
correo.info.pri.gredes.cu internet address = 192.168.5.11
Ahora hare consultas DNS a nombres a alias usando dig y nslookup
mx1:/etc# dig @localhost pop3.info.pri.gredes.cu
; <<>> DiG 9.5.1-P3 <<>> @localhost pop3.info.pri.gredes.cu
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31595
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;pop3.info.pri.gredes.cu. IN A
;; ANSWER SECTION:
pop3.info.pri.gredes.cu. 21600 IN CNAME correo.info.pri.gredes.cu.
correo.info.pri.gredes.cu. 21359 IN A 192.168.5.11
;; AUTHORITY SECTION:
info.pri.gredes.cu. 21359 IN NS correo.info.pri.gredes.cu.
;; Query time: 1971 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 30 11:36:20 2009
;; MSG SIZE rcvd: 92
mx1:/etc# dig @localhost pop3.mail.pri.gredes.cu
; <<>> DiG 9.5.1-P3 <<>> @localhost pop3.mail.pri.gredes.cu
; (2 servers found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6455
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;pop3.mail.pri.gredes.cu. IN A
;; ANSWER SECTION:
pop3.mail.pri.gredes.cu. 21600 IN CNAME delta.mail.pri.gredes.cu.
delta.mail.pri.gredes.cu. 20704 IN A 192.168.5.10
;; AUTHORITY SECTION:
mail.pri.gredes.cu. 20704 IN NS delta.mail.pri.gredes.cu.
;; Query time: 2216 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Dec 30 11:39:09 2009
;; MSG SIZE rcvd: 91
Ahora lo mismo con nslookup
mx1:/etc# nslookup
> smtp.info.pri.gredes.cu
Server: 192.168.5.9
Address: 192.168.5.9#53
Non-authoritative answer:
smtp.info.pri.gredes.cu canonical name = correo.info.pri.gredes.cu.
Name: correo.info.pri.gredes.cu
Address: 192.168.5.11
mx1:/etc# nslookup
> smtp.mail.pri.gredes.cu
Server: 192.168.5.9
Address: 192.168.5.9#53
Non-authoritative answer:
smtp.mail.pri.gredes.cu canonical name = delta.mail.pri.gredes.cu.
Name: delta.mail.pri.gredes.cu
Address: 192.168.5.10
Como ven todo funciona, todas estas consultas las realice desde la consola
de mx1.pri.gredes.cu que es el servidor que delega en los otros dos, pero
si hago todo esto desde mi estación de trabajo Windows que los dns que usa
en su configuración de red son los de mi red (pri.jovenclub.cu) también
funciona perfecto. Ahora, si hago estas configuraciones exactamente igual
que como las he hecho en estas máquinas virtuales en los servidores DNS de
mi RED que también son Debian Lenny , que usan la misma versión del bind9
no me funciona! Con único subdominio digamos con csur.pri.jovenclub.cu
sabiendo yo que el servidor para ese dominio está bien configurado ya que
lo hice yo mismo y que también tiene Debian Lenny y la configuración del
DNS está igual que en los míos, aun así no me funciona. La únicas
diferencias que veo entre los que hice en los servidores virtuales y los
que nuestra RED son:
- Mis servidores DNS están configurados con vistas y los DNS en las PC
virtuales ninguno esta con vistas.
- Mis servidores DNS están en al subred 192.168.5.0/28 y el servidor que
tome para hacer la prueba que gestiona el dominio csur.pri.jovenclub.cu
esta en la subred 192.168.2.44/30
Desde luego que en mis DNS a la hora de querer delegar el subdominio
csur.pri.jovenclub.cu en el servidor responsable de dicho dominio, eso lo
hice en la zona que tiene las IP de la subred 192.168.5.0/28 en la otra
no, ya que la otra vista es para los clientes que se conectan por MODEM a
ETECSA y para ellos las redes 192.168.5.0/28, 192.168.2.0/24 y
192.168.222.0/24 no son alcanzables.
Lo que hice en mis dns fue agregar a la zona lo siguiente:
$ORIGIN pri.jovenclub.cu.
$TTL 86400
@ 21600 IN SOA ns.pri.jovenclub.cu. root.pri.jovenclub.cu. (
2009122903
3600
3600
3600000
86400 )
21600 IN NS ns.pri.jovenclub.cu.
21600 IN NS mx1.pri.jovenclub.cu.
csur.pri.jovenclub.cu. 21600 IN NS alpha.csur.pri.jovenclub.cu.
21600 IN MX 5 mx1.pri.jovenclub.cu.
router 21600 IN A 192.168.5.1
mx1 21600 IN A 192.168.5.2
ns 21600 IN A 192.168.5.3
ns2 21600 IN A 192.168.5.4
nsi 21600 IN A 192.168.5.5
alpha.csur.pri.jovenclub.cu 21600 IN A 192.168.2.46
correo 21600 IN CNAME mx1
php-admin 21600 IN CNAME mx1
gosa-admin 21600 IN CNAME mx1
pop3 21600 IN CNAME mx1
ldap 21600 IN CNAME mx1
Alguien que haya hecho esto antes, me podría dar una idea de que puede
estar pasando, seria de gran ayuda.
Gracias desde ya!
_______________________________________
Eduardo R. Barrera Pérez
Administrador Nodo Jovenclub
Pinar del Río
Web-Site: http://www.pri.jovenclub.cu
Email: ebarrera@pri.jovenclub.cu
Jabber: ebarrera@softwarelibre.cu
ebarrera@jabber.pri.jovenclub.cu
Phone: 0148-755805
_
___| |__ __ _ _ __ _ __ ___ _ __ __ _
/ _ \ '_ \ / _` | '__| '__/ _ \ '__/ _` |
| __/ |_) | (_| | | | | | __/ | | (_| |
\___|_.__/ \__,_|_| |_| \___|_| \__,_|
Reply to: