Io ho:
- server DNS interno
ns1.internal
con IP192.168.0.4
. - server DNS esterno con un TLD esterno
mydns.example.com
e un IP interno192.168.0.5
. È accessibile sia da Internet (tramite una regola NAT statica) sia dalla rete locale.
Sto cercando di configurare il mio server DNS esterno per inoltrare la zona subzone.mydns.example.com
al server DNS interno. Il server DNS interno è autorevole per questa zona.
Importante: non riesco a modificare la configurazione del server DNS interno. Posso leggerlo, tuttavia, se è necessario per diagnosticare il problema.
File /etc/named.conf
sul server DNS esterno:
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; };
};
File /var/named/mydns.example.com.zone
sul server DNS esterno:
$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.
Quindi, ora provo a risolvere alcuni record DNS. La zona del server esterno sembra funzionare.
workstation$ dig mydns.example.com NS +tcp +short
mydns.example.com.
Ma la zona inoltrata non funziona:
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
I risultati sono identici quando questi comandi vengono eseguiti sull'host Internet remoto e su un host interno.
Se provo a risolvere subzone.mydns.example.com.
da un server dei nomi esterno E specifica esplicitamente il server interno, ottengo:
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
Cosa c'è che non va? Come configuro la zona DNS di inoltro per funzionare come mi aspetto?
subzone IN NS mydns.example.com.
(suppongo che il file di zona abbia da qualche parte anche il record A per @ = mydns.example.com, giusto?)