建立 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