? ? 為了簡化運維人員的負擔,使用Master/Slave DNS架構的情況比較好,現在我們來簡單敘述一下Master/Slaver DNS的特點

? ? ? ? ? ? ?主DNS服務器:維護所負責解析的域內解析庫服務器;解析庫由管理員維護;

? ? ? ? ? ? ?從DNS服務器:從主DNS服務器或其它的從DNS服務器那里“復制”(區域傳遞)一份解析庫;

?? ??? ??? ??? ??? ?? ? 序列號:解析庫的版本號;前提:主服務器解析庫內容發生變化;其序列號遞增;

?? ??? ??? ??? ??? ?? ? 刷新時間:從服務器從主服務器請求同步解析庫的時間間隔;

?? ??? ??? ??? ??? ?? ? 重試時長:從服務器從主服務器請求同步解析庫失敗時,再次嘗試請求的時間間隔;

?? ??? ??? ??? ??? ?? ? 過期時長:從服務器時鐘聯系不到服務器時,多久以后放棄從服務器角度,停止提供服務

?? ??? ??? ??? ??? ?? ??

?? ??? ??? ??? ??? ??? ?區域傳送:

?? ??? ??? ??? ??? ??? ??? ?? ? 全量傳送:傳遞整個解析庫

?? ??? ??? ??? ??? ??? ??? ?? ? 增量傳送:傳遞解析庫變化的那部分內容


????????????

????環境準備

????????centso 6.5主機兩臺

????????master主機IP地址192.168.1.1,主機名為master.test.com

????????slave主機IP地址為192.165.1.2,主機名為slave.test.com? ? ????? ?



?1.master DNS權限的開放

? ? ? ? ? ? (1)提供Slave DNS服務器進行zone transfer的服務器為master.test.com.

????????????????? (2) test.com及 1.1.168.in-addr-arpa兩個Zone提供給Slave DNS使用。(正解反解都要提供)

????????????????? (3) master.tst.com的named僅提供給slave.test.com這臺主機進行zone transfer。

????????????????(4)Slave DNS假設在192.168.1.2這臺服務器上面。

????????????? ? ? 我們在master.test.com這臺服務器中除了named.conf需要調整之外,兩個zone file也需要調整,在named.conf當中,需要設置哪個IP可以對我的zone進行傳輸(allow-yransfer),而在zone file中,只要加入一項NS記錄即可。

???????????? ? ? 進入到/etc/named.conf,或者是/etc/named.rfc1912.zones文件中。

?????????????????備注:這兩個配置文件一個為根域的解析配置文件,一個為用戶自定義區域解析文件,二者都可以讓用戶添加新的區域解析信息。看個人使用習慣,決定在哪個文件中定義新的區域信息。在這里我們使用named.rfc1912.zones文件進行zone記錄的添加

? ? ? ? ? ? ? ? ?在named.rfc1912.zones文件中創建兩條zone記錄test.com以及1.168.192.in-addr.arpa并為其指定配置文件路徑

????????????????blob.png??

???????????? ?備注:其中allow-transfer后面括號中的地址要填寫為slave服務器的ip地址,有過個地址的話,中間用分號隔開。

????????????????blob.png? ??

?2.?然后我們創建兩個zone file文件,在/var/named/目錄下面創建兩個zone file文件

????????????????編輯第一個文件test.com.zone

????????????blob.png

? ? ? ? ? ? ? 備注:其中@表示當前區域主機名稱即master.test.com

? ? ? ? ? ? 編輯反解的192.168.1.zone文件

? ? ? ? ? ? ?blob.png


3.設置完master服務器的配置后,我們來設置slaver服務器的配置文件

? ? ? ? ? ? ? ?編輯/etc/named.rfc1912.zones文件

? ? ? ? ? ? ? ?在文件中創建兩條zone記錄test.com以及1.168.192.in-addr.arpa

????????????? ?備注:這里因為是從DNS服務器所以type類型要設置為 slave;同時指名masters的正確IP地址。slave DNS的zone filename部分,由于zone file都是從Master取得的,通過named這個程序來主動建立起需要的zone file,因此這個zone file的路徑只要設置為slaves/zone name即可。

????

? ? ? ? ??blob.png


? ? ? ? ??blob.png

????????如此一來Slave DNS就建立起來了,未來如果Master DNS要跟新數據庫時,只需要修改過序號,并重新啟動named后,這臺Slave DNS就會跟著更新。

????????

??

? ? DNS的高級特性

1.?bind中基礎的安全相關配置:

????? ? ? ? ?acl:把一個或多個地址歸并為一個集合,并通過一個同一的名稱調用;

? ? ? ? ? ? ?示例:

?? ??? ??? ??? ?? ? acl mynet{

?? ??? ??? ??? ??? ?? ? 172.16.0.0/16;

?? ??? ??? ??? ??? ??? ?};


? ? ? ? ? ? blob.png

? ? ? ? ? ?(1) 訪問控制的指令:

?? ??? ??? ??? ??? ?? ? allow-query {};允許查詢的主機;白名單

????????????blob.png??

????????????備注:只允許定義的這幾個IP地址進行查詢。一般來說為any,因為DNS主機應該允許所有人查看其解析的主機,注意將allow-query定義在zone中只能對一個zone生效,定義在/etc/named.conf的options中則對所有的zone都生效

? ? ? ? ? ?(2)只允許slaves中定義的主機進行區域傳送;

? ? ? ? ? ??blob.png

? ? ? ? ? ?(3)allow-recursion{}:允許遞歸的主機;通常定義在options全局配置中;示例:自己定義mynet訪問控制列表

? ? ? ? ? ?spacer.gifblob.png

? ? ? ? ? 備注: allow-update{}:允許更新區域數據庫中的內容;通常設置為none,不允許任何人更新,zone中定義為 allow-update { none; };用YUM下載BIND安裝包,默認會啟用dnssec,配置文件中dnssec-enable不能注釋掉;將后面的yes改為no,父域子域都要做更改。

? ? ? ? ? dnssec-enable no;

? ? ? ? ? dnssec-validation no;

????????

2.view視圖

? ? ? ? ? ? ? ? ? 視圖:

?? ??? ??? ??? ??? ?? ? 一個bind服務器可定義多個view,每個view可以有一個或多個zone;

?? ??? ??? ??? ??? ??? ?每個view用來匹配一組客戶端;

?? ??? ??? ??? ??? ?? ? 多個view內可能需要對同一區域進行解析,但使用不同的區域解析文件;

?? ??? ??? ??? ??? ?? ? view VIEW_NAME {

?? ??? ??? ??? ??? ??? ??? ?? ? match-clients {};? //匹配的客戶端

?? ??? ??? ??? ??? ??? ?};

?? ??? ??? ??? ??? ?? ? 注意:

?? ??? ??? ??? ??? ?? ? (1)一旦啟用了viwe,所有的zone都定義在view中;

?? ??? ??? ??? ??? ?? ? (2)僅有必要在匹配到允許遞歸請求的客戶所在viwe中定義根區域;

?? ??? ??? ??? ??? ??? ?(3)客戶端請求到達時,是自下而上檢查每個view所服務的客戶端列表;

????????????????????示例:

? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? 第一步:將named.conf中根區域的定義刪除將它定義到named.rfc1926.zones

? ? ? ? ? ? ?????????????options定義一個acl

? ? ? ?image.png

? ? ? ? ? ? ? ?第二步:在named.rfc1925.zones定義view

? ? ? ? ??image.png

? ? ? ? ? ? ? 上圖定義的文件表示對匹配到的客戶端同時對這些客戶端進行遞歸查詢

? ? ? ? ? ? ? ? ? 添加一個新的view


? ? ? ? ??image.png

? ? ? ? ? ? ? 配置文件不同,在/var/named/中從新定義一個區域資源文件

? ? ? ? ? ? ??vim external.zone

? ? ? ? ??image.png??????

? ? ? ? ? ? ?這樣通過BIND組件的view功能可以根據不同網段的IP請求轉發給不同的服務器進行處理