web-dev-qa-db-fra.com

Comment configurer correctement la zone de transfert BIND pour un serveur DNS interne?

J'ai:

  1. serveur DNS interne ns1.internal avec IP 192.168.0.4.
  2. serveur DNS externe avec un TLD externe mydns.example.com et IP interne 192.168.0.5. Il est accessible à la fois depuis Internet (via une règle statique NAT) et depuis le réseau local.

J'essaie de configurer mon serveur DNS externe pour transférer la zone subzone.mydns.example.com au 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 transmise 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. du serveur de noms externe ET spécifiez 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?

15
vadipp

Ajoutez un "transfert uniquement"; déclaration à la zone transmise:

zone "subzone.mydns.example.com" {
    type forward;
    forward only;
    forwarders { 192.168.0.4; };
};
14
Brandon Xavier

Vous devez configurer le RR A pour le NS "subzone.mydns.example.com." Sur votre DNS externe. Il s'appelle "glue record" et correspondra à l'IP de votre DNS interne Actuellement, votre DNS externe n'est pas capable de connaître l'IP du DNS interne.

0
Fabaxx

J'ai fait et une autre étape plus, la première mentionnée par @ brandon-xavier:

zone "subzone.mydns.example.com" {
    type forward;
    forward only;
    forwarders { 192.168.0.4; };
};

et le nouveau:

$Origin subzone.mydns.example.com.
@             IN      NS      ns1.subzone.mydns.example.com.

Mais je ne sais pas pourquoi c'est nécessaire ...

0
Rfraile