建立 Slave DNS

相關文件

在建立 Master DNS 後,已經可以完整的管理一個網域的設定,當然為了分散流量與減少伺服器的負擔,可以使用 Slave DNS 來做管理,而 Slave DNS 只要在固定時間內和 Master DNS 同步就可以了。

以下所討論的設定檔根目錄位置均在 /var/named/chroot 目錄之下,若您已開啟 chroot 功能,則可直接套用;若您沒有開啟 chroot 功能,則目錄是在 / 的相對路徑之下。

設定 Master DNS

bind - DNS 設定 (new window)的例子,我們使用 abc.com.tw 這個網域做說明。

預設 Master DNS 是不允許任何主機跟他做同步的交換,若要啟用此功能,需設定所性任的範圍,其表示方式可以是 CIDR、class、IP 或是由 acl 所定議的群組,且不限定只有一筆。

設定的方式是在該 zone 下加入 allow-transfer 的指令,範例是允許 11.22.33.88/29 的 CIDR 區段可以做 DNS 更新(非修改 DNS 記錄)。

修改 /etc/named.conf

0001
0002
0003
0004
0005
0006
0007
0008
zone "abc.com.tw" IN {
     type master;
     file "db.abc.com.tw";
     allow-update { none; };
     //讓 Slave DNS 11.22.33.101 可以向 Master DNS 做資料更新動作。
     allow-transfer { 11.22.33.101; };
};

若您要加入一筆區段或 IP 的話,可以在分號(;)後面加入來源,並再以分號結束。

編輯 /var/named/db.abc.com.tw 檔案

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
$TTL          86400
$ORIGIN abc.com.tw.
@          1D IN SOA                    @ steven.abc.com.tw. (
                                        2008011601          ; Zone 資料序號 (每次修改請累加數字,此為 Slave DNS 同步的關鍵。)
                                        3H                  ; refresh
                                        15M                 ; retry
                                        1W                  ; expiry
                                        1D )                ; minimum

@                   IN NS         dns.abc.com.tw.
@                   IN NS         ns2.abc.com.tw.
dns.abc.com.tw.     IN A          11.22.33.100
ns2.abc.com.tw.     IN A          211.23.29.101

重新啟動 Master DNS

0001
root # service named restart

以上設定後,可以使用 host 指令查看是否設定正確,使用 host 指令查尋後應得到兩筆資料。

0001
0002
0003
0004
0005
0006
0007
0008
root # host -t ns abc.com.tw
abc.com.tw name server ns2.abc.com.tw.
abc.com.tw name server dns.abc.com.tw.
root # host ns2.abc.com.tw; host dns.abc.com.tw
ns2.abc.com.tw has address 11.22.33.101
dns.abc.com.tw has address 11.22.33.100
root #
廣 告

設定 Slave DNS

編輯好 Master DNS 的相關設定後,即可開始設定 Slave DNS。

編輯設定檔

增加 abc.eic.com.tw 的區段

0001
0002
0003
0004
0005
0006
0007
zone "abc.com.tw" IN {
     //設定為 slave 型態
     type slave;
     file "db.eic.com.tw";
     //設定 master DNS
     masters { 211.23.29.92; };
};

設定資料夾權限

0001
0002
root # chgrp -Rf named /var/named/chroot/var/named
root # chmod -Rf g+w /var/named/chroot/var/named

啟動 named

0001
root # service named start

開啟 log 檔案,查看 slave DNS 啟動的情況。

0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
root # less /var/log/messages
Jan 13 12:08:38 ns2 named[29423]: starting BIND 9.3.3rc2 -u named -t /var/named/chroot
Jan 13 12:08:38 ns2 named[29423]: found 1 CPU, using 1 worker thread
Jan 13 12:08:38 ns2 named[29423]: loading configuration from '/etc/named.conf'
Jan 13 12:08:38 ns2 named[29423]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 13 12:08:38 ns2 named[29423]: listening on IPv4 interface eth0, 11.22.33.101#53
Jan 13 12:08:38 ns2 named[29423]: command channel listening on 127.0.0.1#953
Jan 13 12:08:38 ns2 named[29423]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700
Jan 13 12:08:38 ns2 named[29423]: zone localhost/IN: loaded serial 42
Jan 13 12:08:38 ns2 named[29423]: running
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: Transfer started.
Jan 13 12:08:38 ns2 named[29423]: transfer of 'abc.com.tw/IN' from 211.23.29.92#53: connected using 11.22.33.100#56348
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: transferred serial 2008011601 <- 指的是 Master DNS 對 abc.com.tw Zone 的序號。
Jan 13 12:08:38 ns2 named[29423]: transfer of 'abc.com.tw/IN' from 11.22.33.100#53: end of transfer
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: sending notifies (serial 2008011601)
Jan 13 12:08:38 ns2 named[29423]: client 11.22.33.101#33208: received notify for zone 'abc.com.tw'
Jan 13 12:08:38 ns2 named[29423]: zone abc.com.tw/IN: refused notify from non-master: 11.22.33.101#33208

查看 db.abc.com.tw

設定完成後,會在 name.conf 所指定的 zone 檔記錄位置看到一筆 db.abc.com.tw,這個檔案是自動產生,且在 Master DNS 更改過後,下次的同步就會生效。

0001
0002
0003
0004
root # ls -l db.abc.com.tw
-rw-r--r-- 1 named named 497 Jan  13 12:08 db.abc.com.tw
root #

上層 DNS 設定

若您新增了 Slave DNS,則請向您的上層 DNS 做新增 Slave DNS 的記錄,此以 Hinet 網域代管服務說明。

在 DNS 型態選擇 DNS,然後再新增一筆資料既可。

測試

最方便的測試方法,就是直接把 Master DNS 的服務關閉,然後再看看使用者可否查尋到資料即可。

Last modified: 02/04/2008

首頁