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 tratando de 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 interna del servidor DNS. 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 intento resolver subzone.mydns.example.com.
desde un 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
Que pasa ¿Cómo configuro la zona DNS de reenvío para que funcione como esperaba?
subzone IN NS mydns.example.com.
(supongo que el archivo de zona tiene en algún lugar también el registro A para @ = mydns.example.com, ¿correcto?)