2013-03-11 17 views
5

Sto usando Bind9 come server DNS per il mio ufficio.Come inoltrare una sottozona

Abbiamo una zona: example.com. che deve essere risolto dal nostro server DNS come autorevole.

D'altra parte, abbiamo un sub.example.com. zona, che deve essere inoltrata ad altri server DNS.

Bind risponde correttamente quando si esegue una query per qualsiasi record su example.com. zona. Ma fallisce per le domande su sub.example.com. come non fa l'inoltro. Continua a cercare la risposta localmente.

Questo è il file named.conf

zone "sub.example.com" IN { type forward; 
     forwarders {172.21.238.229;172.21.238.230;}; 
     forward only; 
}; 


zone "example.com" { 
     type master; 
     forwarders {}; 
     file "/etc/named/example.com.db"; 
}; 

Questo è il contenuto del file example.com.db:

$ORIGIN example.com. 
$TTL 1W 
@ IN SOA  dnsldes.example.com. postmaster.example.com. (
           6   ; serial number 
           3600   ; refresh [1h] 
           600   ; retry  [10m] 
           86400  ; expire [1d] 
           3600)  ; min TTL [1h] 
; 


     IN  NS  dnsldes.example.com. 

bdred   IN  A  172.22.2.150 
dnsldes IN  A  172.21.229.159 

Questa è l'uscita per la query utilizzando il client bdred.example.com dig (che è ok):

; <<>> DiG 9.8.1-P1 <<>> bdred.sub.example.com 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 9764 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 

;; QUESTION SECTION: 
;bdred.sub.example.com.   IN  A 

;; AUTHORITY SECTION: 
example.com.   3600 IN  SOA  dnsldes.example.com. postmaster.example.com. 6 3600 600 86400 3600 

;; Query time: 4 msec 
;; SERVER: 172.21.229.159#53(172.21.229.159) 
;; WHEN: Mon Mar 11 12:55:02 2013 
;; MSG SIZE rcvd: 94 

E questa è la risposta per la query scavo, che non sta funzionando propery:

; <<>> DiG 9.8.1-P1 <<>> bdred.sub.example.com 
;; global options: +cmd 
;; Got answer: 
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 26555 
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0 

;; QUESTION SECTION: 
;bdred.sub.example.com.   IN  A 

;; AUTHORITY SECTION: 
example.com.   3600 IN  SOA  dnsldes.example.com. postmaster.example.com. 6 3600 600 86400 3600 

;; Query time: 4 msec 
;; SERVER: 172.21.229.159#53(172.21.229.159) 
;; WHEN: Mon Mar 11 13:09:07 2013 
;; MSG SIZE rcvd: 94 

Per favore, cosa stiamo sbagliando?

+0

Questa è anche una domanda di programmazione? – Dave

+0

Sembra che manchi la delega (NS RRset) per 'sub.example.com' nella zona' example.com'. Inoltre non vedo perché dovresti aver bisogno di una zona 'type forward' qui. Comunque, come citato @DaveRook, questo non è in tema per SO. – Celada

risposta

7

La soluzione è no per creare una zona in named.conf. La soluzione è quella di utilizzare la delega di zona come segue:

$ORIGIN example.com. 
$TTL 1W 
@ IN SOA  dnsldes.example.com. postmaster.example.com. (
           6   ; serial number 
           3600   ; refresh [1h] 
           600   ; retry  [10m] 
           86400  ; expire [1d] 
           3600)  ; min TTL [1h] 
; 


     IN  NS  dnsldes.example.com. 


dnsldes IN A XXX.XXX.XXX.XXX 
bahamas IN CNAME bdred 



; Delegations and Glue 
$ORIGIN sub.example.com. 
@  IN  NS  lmzdns1.sub.example.com. 

     IN  NS  lmzdns2.sub.example.com. 

lmzdns1 IN  A  XXX.XXX.XXX.XXX 
lmzdns2 IN  A  XXX.XXX.XXX.XXX 
2

Questo è un problema sottodominio delegazione:

aggiungere record NS di file di dati di vostra zona delegando il sottodominio al server dei nomi.

Esempio:

Domain: one.domain sottodominio: sub.one.domain

ho bisogno di risolvere sub.one.domain solo con il DNS pubblico di Google.

delegare la sub.one.domain al externalns.one.domain nome del server, è possibile aggiungere questo record NS per il file di dati di zona one.domain:

sub.one.domain. IN NS externalns.one.domain. 

Avrete anche bisogno di aggiungi un record A per externalns.one.domain:

externalns.one.domain IN A 8.8.8.8