對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2014/3/14 6:23:48
協同工作的 DNS: Slave DNS 及子網域授權設定
我們在本章一開始就曾談過,DNS 大概是未來最重要的網路服務之一,因為所有的主機名稱需求都得要 DNS 提供才行。 因此,ISP 在提供 domain name 註冊時,就強調得要有兩部以上的 DNS 伺服器才行。而為了簡化 DNS 管理人員的負擔, 使用 Master/Slave DNS 架構的情況會比較好!為什麼呢?讓我們再回憶一下 Slave DNS 的特色:
為了不間斷的提供 DNS 服務,你的領域至少需要有兩部 DNS 伺服器來提供查詢的功能;
承上,這幾部 DNS 伺服器應該要分散在兩個以上的不同 IP 網域才好;
為方便管理,通常除了一部主要 Master DNS 之外,其他的 DNS 會使用 slave 的模式;
slave DNS 伺服器本身並沒有資料庫,他的資料庫是由 master DNS 所提供的;
master/slave DNS 必需要可以相互傳輸 zone file 的相關資訊才行,這部份需要 /etc/named.conf 之設定輔助。
除此之外,如果你有朋友或者是學生想要跟你要一個子網域,那又該如何設定另一部 DNS 伺服器呢?就讓我們依序來談談囉~
master DNS 權限的開放
我們使用 19.4.3 的案例,繼續來架設一部支援該案例的 slave DNS 吧!基本的假設為:
提供 slave DNS 伺服器進行 zone transfer 的伺服器為 master.centos.vbird
centos.vbird 及 100.168.192.in-addr.arpa 兩個 zone 都提供給 slave DNS 使用
master.centos.vbird 的 named 僅提供給 slave.centos.vbird 這部主機進行 zone transfer
Slave DNS server 架設在 192.168.100.10 這部伺服器上面 (所以 zone file 要修訂)
如上所示,我們的 master.centos.vbird 這部伺服器除了 named.conf 需要調整之外,兩個 zone file 也都需要調整! 在 named.conf 當中,需要設定哪個 IP 可以對我的 zone 進行傳輸 (allow-transfer),而在 zone file 當中,就是各加入一筆 NS 的記錄即可!增加的部分如下所示:
在上頭所列示的那兩個資料庫檔案當中,你必須要新增所需要的 NS 標誌才行!NS 對應的主機名稱為 slave.centos.vbird, IP 則是 192.168.100.10 呦!結果如下:
反正重新啟動過 named 後,直覺記得就是要查閱 messages 登錄資訊就對了。從上表的輸出來看,會多一個 sending notifies (傳送注意事項) 關鍵字的資料,那就是提醒 slave DNS 來比對序號大小了!所以,你說,序號有沒有很重要呢?當然很重要啊! 連登錄訊息都會告知序號的大小哩!這樣 master DNS 就設定妥當囉!接下來玩玩 Slave 的設定吧!
Slave DNS 的設定與資料庫權限問題
既然 Slave DNS 也是 DNS 伺服器嘛!所以,當然也是需要安裝 bind, bind-chroot 等等的軟體! 這部份回去 19.3.1 裡面瞧瞧即可,反正記得使用 yum 安裝就對了。 接下來得要設定 named.conf 吧?而既然 Master/Slave 的資料庫是相同的,所以,理論上, named.conf 內容就是大同小異囉~ 唯一要注意的就是 zone type 類型的差異,以及宣告 master 在哪裡就是了。 至於 zone filename 部分,由於 zone file 都是從 master 取得的,透過 named 這個程式來主動建立起需要的 zone file,因此這個 zone file 放置的目錄權限就很重要!讓我們直接來處理看看:
為了方便使用者設定,CentOS 預設在 /var/named/slaves/ 處理好了相關權限~所以你可以輕鬆的處理權限問題~ 我們就建議你的 slave zone file 放置在該目錄下!所以上表當中的 file 參數才會這麼寫~此外,那個 masters 結尾有個 s 喔!這裡最容易寫錯~那麼要不要處理 zone file 呢?除了 named.ca 這個 . 需要主動存在之外, 另外兩個 type slave 的資料庫檔案,當然不必存在啊!因為會從 master 處取得嘛!接下來,就讓我們來啟動 named 並進行觀察吧!
你瞧!如此一來你的 zone file 就會主動的被建立起來喔!未來如果你的 master DNS 要更新資料庫時, 只要修改過序號,並重新啟動 named 後,這部 slave DNS 就會跟著更新啦!啊!真是『福氣啦!』!! 不過,如果你發現到啟動 slave DNS 時,你的登錄資訊竟然是這樣:
如果出現類似這樣的訊息時,不必懷疑啦!肯定是權限錯誤啦!請再次檢查你的資料庫檔案所放置的目錄權限是否可以讓 named 寫入啊!處理處理就好了!現在,你的 DNS 會變的更加強壯囉!因為有類似的備援系統囉~不過仍然要注意的是, 網路查詢 centos.vbird 時,master 與 slave 的地位是相同的,並不是 master 掛點才使用 slave 來查詢喔!所以,這兩部伺服器的相同 domain 的資料庫內容要完全一致才行!
原文出處:鳥哥的 Linux 私房菜 -- DNS Server
我們在本章一開始就曾談過,DNS 大概是未來最重要的網路服務之一,因為所有的主機名稱需求都得要 DNS 提供才行。 因此,ISP 在提供 domain name 註冊時,就強調得要有兩部以上的 DNS 伺服器才行。而為了簡化 DNS 管理人員的負擔, 使用 Master/Slave DNS 架構的情況會比較好!為什麼呢?讓我們再回憶一下 Slave DNS 的特色:
為了不間斷的提供 DNS 服務,你的領域至少需要有兩部 DNS 伺服器來提供查詢的功能;
承上,這幾部 DNS 伺服器應該要分散在兩個以上的不同 IP 網域才好;
為方便管理,通常除了一部主要 Master DNS 之外,其他的 DNS 會使用 slave 的模式;
slave DNS 伺服器本身並沒有資料庫,他的資料庫是由 master DNS 所提供的;
master/slave DNS 必需要可以相互傳輸 zone file 的相關資訊才行,這部份需要 /etc/named.conf 之設定輔助。
除此之外,如果你有朋友或者是學生想要跟你要一個子網域,那又該如何設定另一部 DNS 伺服器呢?就讓我們依序來談談囉~
master DNS 權限的開放
我們使用 19.4.3 的案例,繼續來架設一部支援該案例的 slave DNS 吧!基本的假設為:
提供 slave DNS 伺服器進行 zone transfer 的伺服器為 master.centos.vbird
centos.vbird 及 100.168.192.in-addr.arpa 兩個 zone 都提供給 slave DNS 使用
master.centos.vbird 的 named 僅提供給 slave.centos.vbird 這部主機進行 zone transfer
Slave DNS server 架設在 192.168.100.10 這部伺服器上面 (所以 zone file 要修訂)
如上所示,我們的 master.centos.vbird 這部伺服器除了 named.conf 需要調整之外,兩個 zone file 也都需要調整! 在 named.conf 當中,需要設定哪個 IP 可以對我的 zone 進行傳輸 (allow-transfer),而在 zone file 當中,就是各加入一筆 NS 的記錄即可!增加的部分如下所示:
# 1. 修訂 named.conf,主要修改 zone 參數內的 allow-transfer 項目
[root@www ~]# vim /etc/named.conf
....前面省略....
zone "centos.vbird" IN {
type master;
file "named.centos.vbird";
allow-transfer { 192.168.100.10; }; // 在這裡新增 slave 的 IP
};
zone "100.168.192.in-addr.arpa" IN {
type master;
file "named.192.168.100";
allow-transfer { 192.168.100.10; }; // 在這裡新增 slave 的 IP
};
在上頭所列示的那兩個資料庫檔案當中,你必須要新增所需要的 NS 標誌才行!NS 對應的主機名稱為 slave.centos.vbird, IP 則是 192.168.100.10 呦!結果如下:
# 2. 在 zone file 裡面新增 NS 標誌,要注意需要有 A(正解) 及 PTR(反解) 的設定
[root@www ~]# vim /var/named/named.centos.vbird
$TTL 600
@ IN SOA master.centos.vbird. vbird.www.centos.vbird. (
2011080402 3H 15M 1W 1D )
@ IN NS master.centos.vbird.
@ IN NS slave.centos.vbird.
master.centos.vbird. IN A 192.168.100.254
slave.centos.vbird. IN A 192.168.100.10
@ IN MX 10 www.centos.vbird.
....(底下省略)....
[root@www ~]# vim /var/named/named.192.168.100
$TTL 600
@ IN SOA master.centos.vbird. vbird.www.centos.vbird. (
2011080402 3H 15M 1W 1D )
@ IN NS master.centos.vbird.
@ IN NS slave.centos.vbird.
254 IN PTR master.centos.vbird.
10 IN PTR slave.centos.vbird.
....(底下省略)....
# 要特別注意一件事,那就是,你的 zone file 內的序號要增加!鳥哥測試日期是 8/4,
# 第 2 次進行,所以序號就以該天的日期為準來設計的!最後記得 restart 一下啦!
[root@www ~]# /etc/init.d/named restart
[root@www ~]# tail -n 30 /var/log/messages | grep named
starting BIND 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 -u named -t /var/named/chroot
....(中間省略)....
zone 100.168.192.in-addr.arpa/IN: loaded serial 2011080402
zone centos.vbird/IN: loaded serial 2011080402
zone 100.168.192.in-addr.arpa/IN: sending notifies (serial 2011080402)
zone centos.vbird/IN: sending notifies (serial 2011080402)
反正重新啟動過 named 後,直覺記得就是要查閱 messages 登錄資訊就對了。從上表的輸出來看,會多一個 sending notifies (傳送注意事項) 關鍵字的資料,那就是提醒 slave DNS 來比對序號大小了!所以,你說,序號有沒有很重要呢?當然很重要啊! 連登錄訊息都會告知序號的大小哩!這樣 master DNS 就設定妥當囉!接下來玩玩 Slave 的設定吧!
Slave DNS 的設定與資料庫權限問題
既然 Slave DNS 也是 DNS 伺服器嘛!所以,當然也是需要安裝 bind, bind-chroot 等等的軟體! 這部份回去 19.3.1 裡面瞧瞧即可,反正記得使用 yum 安裝就對了。 接下來得要設定 named.conf 吧?而既然 Master/Slave 的資料庫是相同的,所以,理論上, named.conf 內容就是大同小異囉~ 唯一要注意的就是 zone type 類型的差異,以及宣告 master 在哪裡就是了。 至於 zone filename 部分,由於 zone file 都是從 master 取得的,透過 named 這個程式來主動建立起需要的 zone file,因此這個 zone file 放置的目錄權限就很重要!讓我們直接來處理看看:
# 1. 準備 named.conf 的內容:
[root@clientlinux ~]# vim /etc/named.conf
....(前面的部分完全與 master.centos.vbird 相同,故省略)....
zone "centos.vbird" IN {
type slave;
file "slaves/named.centos.vbird";
masters { 192.168.100.254; };
};
zone "100.168.192.in-addr.arpa" IN {
type slave;
file "slaves/named.192.168.100";
masters { 192.168.100.254; };
};
# 2. 檢查 zone file 預計建立的目錄權限是否正確!底下目錄為系統預設值:
[root@clientlinux ~]# ll -d /var/named/slaves
drwxrwx---. 2 named named 4096 2011-06-25 11:48 /var/named/slaves
# 注意權限、使用者以及群組三個欄位的資料!需要與 named 這個用戶及群組有關!
[root@clientlinux ~]# ll -dZ /var/named/slaves
drwxrwx---. named named system_u:object_r:named_cache_t:s0 /var/named/slaves
# 也不要忘記與 SELinux 有關的事情!
為了方便使用者設定,CentOS 預設在 /var/named/slaves/ 處理好了相關權限~所以你可以輕鬆的處理權限問題~ 我們就建議你的 slave zone file 放置在該目錄下!所以上表當中的 file 參數才會這麼寫~此外,那個 masters 結尾有個 s 喔!這裡最容易寫錯~那麼要不要處理 zone file 呢?除了 named.ca 這個 . 需要主動存在之外, 另外兩個 type slave 的資料庫檔案,當然不必存在啊!因為會從 master 處取得嘛!接下來,就讓我們來啟動 named 並進行觀察吧!
[root@clientlinux ~]# /etc/init.d/named start
[root@clientlinux ~]# chkconfig named on
[root@clientlinux ~]# tail -n 30 /var/log/messages | grep named
starting BIND 9.7.0-P2-RedHat-9.7.0-5.P2.el6_0.1 -u named -t /var/named/chroot
loading configuration from '/etc/named.conf'
....(中間省略)....
running
zone 100.168.192.in-addr.arpa/IN: Transfer started.
zone 100.168.192.in-addr.arpa/IN: transferred serial 2011080402
zone centos.vbird/IN: Transfer started.
zone centos.vbird/IN: transferred serial 2011080402 <==注意序號正確否
# 你會看到如上的訊息,重點是還有告知序號喔!非常重要!
[root@clientlinux ~]# ll /var/named/slaves
-rw-r--r--. 1 named named 3707 2011-08-05 14:12 named.192.168.100
-rw-r--r--. 1 named named 605 2011-08-05 14:12 named.centos.vbird
# 這兩個 zone file 會主動被建立起來呢!
[root@clientlinux ~]# dig master.centos.vbird @127.0.0.1
[root@clientlinux ~]# dig -x 192.168.100.254 @127.0.0.1
# 上述兩個檢測的指令如果是正確的顯示出 A 與 PTR 的話,那就完成了!
你瞧!如此一來你的 zone file 就會主動的被建立起來喔!未來如果你的 master DNS 要更新資料庫時, 只要修改過序號,並重新啟動 named 後,這部 slave DNS 就會跟著更新啦!啊!真是『福氣啦!』!! 不過,如果你發現到啟動 slave DNS 時,你的登錄資訊竟然是這樣:
zone centos.vbird/IN: Transfer started.
transfer of 'centos.vbird/IN' from 192.168.100.254#53: connected using
192.168.100.10#58187
dumping master file: tmp-a1bYfCd3i3: open: permission denied
transfer of 'centos.vbird/IN' from 192.168.100.254#53: failed while receiving
responses: permission denied
transfer of 'centos.vbird/IN' from 192.168.100.254#53: end of transfer
如果出現類似這樣的訊息時,不必懷疑啦!肯定是權限錯誤啦!請再次檢查你的資料庫檔案所放置的目錄權限是否可以讓 named 寫入啊!處理處理就好了!現在,你的 DNS 會變的更加強壯囉!因為有類似的備援系統囉~不過仍然要注意的是, 網路查詢 centos.vbird 時,master 與 slave 的地位是相同的,並不是 master 掛點才使用 slave 來查詢喔!所以,這兩部伺服器的相同 domain 的資料庫內容要完全一致才行!
原文出處:鳥哥的 Linux 私房菜 -- DNS Server