2013-03-11 30 views
5

Używam Bind9 jako serwera DNS dla mojego biura.Jak przesłać podstrefę

Mamy strefę: example.com. który musi zostać rozstrzygnięty z naszego serwera DNS jako autorytatywny.

Z drugiej strony mamy sub.example.com. strefa, która musi zostać przekazana do innego serwera DNS.

Wiąż się z odpowiedziami, gdy pytamy o dowolny rekord na stronie example.com. strefa. Ale kończy się niepowodzeniem w przypadku zapytań dotyczących sub.example.com. ponieważ nie wykonuje spedycji. Ciągle szuka odpowiedzi na miejscu.

Jest to plik 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"; 
}; 

To jest zawartość pliku 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 

Jest to wyjście dla zapytania bdred.example.com za pomocą klienta kopania (co jest 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 

I to jest odpowiedź na zapytania kopać, który nie działa 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 

Proszę, co robimy źle?

+0

Czy to jest nawet pytanie programistyczne? – Dave

+0

Wygląda na to, że brakuje Ci delegacji (zestaw RR RR) dla "sub.example.com" w strefie 'example.com'. Również nie rozumiem, dlaczego powinieneś tu potrzebować strefy 'naprzód'. W każdym razie, jak wspomniał @DaveRook, nie dotyczy to SO. – Celada

Odpowiedz

7

Rozwiązaniem nie jest utworzenie strefy w pliku named.conf. Rozwiązaniem jest użycie delegacji strefy następująco:

$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

Jest to problem subdomeny delegacja:

Dodaj rekordy NS do pliku danych swoją strefę za delegowanie subdomenę do serwera nazw.

Przykład:

domeny: one.domain subdomeny: sub.one.domain

muszę rozwiązać sub.one.domain tylko z dns publicznej google.

Aby delegować sub.one.domain do externalns.one.domain serwera nazw, można dodać ten rekord NS do one.domain pliku danych strefa:

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

Będziesz również musiał dodać rekord A dla externalns.one.domain:

externalns.one.domain IN A 8.8.8.8