歡迎您光臨本站 註冊首頁

在BIND DNS伺服器中,怎樣創建及委派一個DNS子域?

←手機掃碼閱讀     火星人 @ 2014-03-05 , reply:0

在BIND DNS伺服器中,怎樣創建及委派一個DNS子域?

解決方法:

在BIND DNS伺服器中創建一個DNS子域是相當簡單的,步驟分為三個部分:

1.命名子域

2.將子域委派給一個或者多個域名伺服器

3.提供「域名伺服器黏結記錄」(nameserver glue records)和子域的命名空間(namespace)內部的主機名給任意一個委派的域名伺服器,以便子域外部的機器可以解析這個域名伺服器。


事實上,第一和第二步已經實現了每個子域名伺服器的單一記錄,當你將子域名委派給在DNS子域裡面有主機名的伺服器時,需要第三步,但並不是必需的。

創建子域

為了創建子域,你需要以root進入到父域名的主DNS伺服器,編輯父域名的zone文件,完成編輯之後重新載入zone(reload zone)。

在BIND的配置文件/etc/named.conf中zone聲明了你的父域,定義了zone文件名和你想要修改的域。

記住,zone文件將會存放在/etc/named.conf中全局選項所聲明的directory下(默認是/var/named)。

這裡是named.conf文件zone生命的一個例子,zone文件名是testdomain.bogus.zone:

zone "testdomain.bogus" {
        type master;
        file "testdomain.bogus.zone";
        allow-update { none; };
};
      

在修改zone文件之前先做個備份,然後用你喜歡的文本編輯器打開zone文件:


      # cd /var/named

      # cp testdomain.bogus.zone testdomain.bogus.zone.backup

      # vim testdomain.bogus.zone
      

下面是域名testdomain.bogus的zone文件的一個例子,在那裡,我們將創建子域subdomain1.testdomain.bogus。

假設已存在的testdomain.bogus的zone文件已經包含所有下面顯示的記錄,到"EXISTING RECORDS STOP HERE"這行。

下面黑體的記錄("EXISTING RECORDS STOP HERE"行之後)是我們要創建DNS子域的新記錄,委派給三個域名伺服器,並且添加了一條NS glue記錄給子域里的一個域名伺服器。

$TTL 3D
@        IN        SOA        ns1.testdomain.bogus. root.testdomain.bogus. (
                                2004080203        ; zone file serial #
                                8H                ; refresh
                                2H                ; retry
                                1W                ; expire
                                1D )                ; SOA minimum
; NS'S AUTHORITATIVE FOR PARENT DOMAIN:
testdomain.bogus.                NS        ns1.testdomain.bogus.
testdomain.bogus.                NS        ns2.testdomain.bogus.
;
; A RECORDS FOR THE PARENT DOMAIN'S AUTHORITATIVE NS'S:
ns1.testdomain.bogus.                A        10.1.2.3
ns2.testdomain.bogus.                A        10.1.2.4
;
; ORDINARY HOSTS IN TESTDOMAIN.BOGUS:
host01                                A        10.1.2.11
host02                                A        10.2.2.12
;
; EXISTING RECORDS STOP HERE
;
; HERE WE CREATE OUR DNS SUBDOMAIN BY ADDING THESE RECORDS:
; Name the subdomain:                Now delegate it to these nameservers (MUST be an FQDN hostname, NOT AN IP):
subdomain1.testdomain.bogus.        NS        ns1.subdomain1.testdomain.bogus. ; inside the subdomain - needs NS glue record
subdomain1.testdomain.bogus.        NS        ns1.testdomain.bogus.                 ; not in subdomain - no glue required
subdomain1.testdomain.bogus.        NS        ns.myisp.bogus.                         ; not in subdomain - no glue required
;
; GLUE RECORD FOR ns1.subdomain1.testdomain.bogus -
; NEEDED SINCE IT IS INSIDE THE SUBDOMAIN
ns1.subdomain1.testdomain.bogus.        A        10.4.5.6


注意:在保存文件,重新載入(reloading)之前,別忘了增加zone文件的序號(serial number)!

上面例子中,子域委派權威給其中一個父域名伺服器ns1.testdoamin.bogus。並不需要父域名的NS也是子域名的NS,是DNS管理員有許可權管理的任意一個就行。

你需要創建子域的zone文件,將子域添加到將成為子域的權威的伺服器的/etc/named.conf配置文件。以下是主伺服器上基本的子域的zone聲明部分:

zone "subdomain1.testdomain.bogus" {
        type master;
        file "subdomain1.testdomain.bogus.zone";
        allow-update { none; };
};
      

子域zone文件的基本部分:

$TTL 3D
@        IN        SOA        ns1.subdomain1.testdomain.bogus. root.subdomain1.testdomain.bogus. (
                                2004080203      ; zone file serial#
                                8H              ; refresh
                                2H              ; retry
                                1W              ; expire
                                1D )            ; SOA minimum
;
subdomain1.testdomain.bogus.                NS        ns1.subdomain1.testdomain.bogus.
;
; A RECORDS FOR THIS SUBDOMAIN
ns1.subdomain1.testdomain.bogus.        A        10.4.5.6
host01                                        A        10.4.5.6
      

在父域名伺服器reload父域的zone文件之前,建議你正確配置了子域的域名伺服器,並且能正確提供子域的記錄。

當你覺得子域名伺服器已經正常工作,以root身份執行下面命令,reload父域的zone文件:

# rndc reload

現在,你就擁有了子域DNS。

關於BIND DNS伺服器配置的文檔,DNS原理,請參考下面資源:

*BIND Administrator's Reference Manual, HTML格式(在安裝了bind RPM包的紅帽企業版Linux 系統上可以得到)

/usr/share/doc/bind-/arm/Bv9ARM.html

*Linux Documentation Project Website中的DNS HOW-TO

http://www.tldp.org/HOWTO/DNS-HOWTO.html

[火星人 ] 在BIND DNS伺服器中,怎樣創建及委派一個DNS子域?已經有1432次圍觀

http://coctec.com/docs/service/show-post-42898.html