2013-03-11 15 views
5

我使用Bind9作爲我的辦公室的DNS服務器。如何轉發分區

我們有一個區域:example.com。必須從我們的DNS服務器以權威的方式解決。

另一方面,我們有一個sub.example.com。區域,該區域必須被轉發到其他DNS服務器。

當我們查詢example.com上的任何記錄時,綁定答案就是這樣。區。但是對於關於sub.example.com的查詢失敗。因爲它不做轉發。它一直在本地尋找答案。

這是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"; 
}; 

這是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 

這是使用挖客戶端輸出bdred.example.com查詢(這是確定):

; <<>> 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 

這是爲挖查詢,這是行不通的屬性格式答案:

; <<>> 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 

請問我們做錯了什麼?

+0

這是一個編程問題嗎? – Dave 2013-03-11 12:11:07

+0

看起來你錯過了'example.com'區域中'sub.example.com'的委託(NS RRset)。另外我不明白爲什麼你應該在這裏需要'type forward'區域。無論如何,正如@DaveRook所說,這不是SO的話題。 – Celada 2013-03-11 13:27:11

回答

7

解決方法是在named.conf中創建一個區域。該解決方案是使用區域委派如下:

$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

這是一個子域委派問題:

添加NS記錄到你的區域的數據文件委派子域的名稱服務器。

例子:

域:one.domain 子域:sub.one.domain

我需要解決只能用谷歌公共DNS sub.one.domain。

委派sub.one.domain名稱服務器externalns.one.domain,你可以在這個NS記錄添加到one.domain區域數據文件:

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

您還需要爲externalns.one.domain添加A記錄:

externalns.one.domain IN A 8.8.8.8