Pregunta:
Yo tengo:
- servidor DNS interno
ns1.internal
con IP192.168.0.4
. - servidor DNS externo con un TLD externo
mydns.example.com
e IP interna192.168.0.5
. Es accesible tanto desde Internet (a través de una regla NAT estática) como desde la red local.
Estoy intentando configurar mi servidor DNS externo para reenviar la zona subzone.mydns.example.com
al servidor DNS interno. El servidor DNS interno tiene autoridad para esta zona.
Importante: no puedo modificar la configuración del servidor DNS interno. Sin embargo, puedo leerlo si es necesario para diagnosticar el problema.
Archivo /etc/named.conf
en el servidor DNS externo:
options {
directory "/var/named";
version "get lost";
recursion yes;
allow-transfer {"none";};
allow-query { any; };
allow-recursion { any; };
};
logging{
channel example_log{
file "/var/log/named/named.log" versions 3 size 2m;
severity info;
print-severity yes;
print-time yes;
print-category yes;
};
category default{
example_log;
};
};
// Zones:
zone "mydns.example.com" {
type master;
file "mydns.example.com.zone";
allow-update{none;};
};
zone "subzone.mydns.example.com" {
type forward;
forwarders { 192.168.0.4; };
};
Archivo /var/named/mydns.example.com.zone
en el servidor DNS externo:
$TTL 1
$ORIGIN mydns.example.com.
@ IN SOA mydns.example.com. root.mydns.example.com. (
2003080800 ; se = serial number
60 ; ref = refresh
60 ; ret = update retry
60 ; ex = expiry
60 ; min = minimum
)
@ IN NS mydns.example.com.
Entonces, ahora trato de resolver algunos registros DNS. La zona del servidor externo parece funcionar.
workstation$ dig mydns.example.com NS +tcp +short
mydns.example.com.
Pero la zona reenviada no funciona:
workstation$ dig subzone.mydns.example.com NS +tcp
; <<>> DiG 9.8.1-P1 <<>> subzone.mydns.example.com NS +tcp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 36887
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;subzone.mydns.example.com. IN NS
;; AUTHORITY SECTION:
mydns.example.com. 1 IN SOA mydns.example.com. root.mydns.example.com. 2003080800 60 60 60 60
;; Query time: 3 msec
;; SERVER: 91.144.182.3#53(91.144.182.3)
;; WHEN: Thu Jul 19 17:27:54 2012
;; MSG SIZE rcvd: 108
Los resultados son idénticos cuando estos comandos se ejecutan en un host de Internet remoto y en un host interno.
Si trato de resolver subzone.mydns.example.com.
desde el servidor de nombres externo Y especificar el servidor interno explícitamente, obtengo:
mydns$ dig @192.168.0.4 subzone.mydns.example.com NS
; <<>> DiG 9.3.6-P1-RedHat-9.3.6-16.P1.el5 <<>> @192.168.0.4 subzone.mydns.example.com NS
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 87
;; flags: qr aa rd; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 3
;; QUESTION SECTION:
;subzone.mydns.example.com. IN NS
;; ANSWER SECTION:
subzone.mydns.example.com. 3600 IN NS ns1.internal.
;; ADDITIONAL SECTION:
ns1.internal. 3600 IN A 192.168.0.4
;; Query time: 613 msec
;; SERVER: 192.168.0.4#53(192.168.0.4)
;; WHEN: Thu Jul 19 18:20:55 2012
;; MSG SIZE rcvd: 163
¿Qué ocurre? ¿Cómo configuro la zona DNS de reenvío para que funcione como espero?
Respuesta:
Agregue un 'solo reenvío'; declaración a la zona reenviada:
zone "subzone.mydns.example.com" {
type forward;
forward only;
forwarders { 192.168.0.4; };
};