J'ai:
- serveur DNS interne
ns1.internal
avec IP192.168.0.4
. - serveur DNS externe avec un TLD externe
mydns.example.com
et une IP interne192.168.0.5
. Il est accessible à la fois depuis Internet (via une règle NAT statique) et depuis le réseau local.
J'essaie de configurer mon serveur DNS externe pour transférer la zone subzone.mydns.example.com
vers le serveur DNS interne. Le serveur DNS interne fait autorité pour cette zone.
Important: je ne peux pas modifier la configuration du serveur DNS interne. Je peux le lire, cependant, si cela est nécessaire pour diagnostiquer le problème.
Fichier /etc/named.conf
sur le serveur DNS externe:
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; };
};
Fichier /var/named/mydns.example.com.zone
sur le serveur DNS externe:
$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.
Donc, maintenant j'essaie de résoudre certains enregistrements DNS. La zone du serveur externe semble fonctionner.
workstation$ dig mydns.example.com NS +tcp +short
mydns.example.com.
Mais la zone redirigée ne fonctionne pas:
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
Les résultats sont identiques lorsque ces commandes sont exécutées sur un hôte Internet distant et sur un hôte interne.
Si j'essaie de résoudre à subzone.mydns.example.com.
partir du serveur de noms externe ET de spécifier le serveur interne explicitement, j'obtiens:
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'est-ce qui ne va pas? Comment configurer la zone DNS de transfert pour qu'elle fonctionne comme prévu?
subzone IN NS mydns.example.com.
(je suppose que le fichier de zone a quelque part également l'enregistrement A pour @ = mydns.example.com, correct?)