天天看點

DNS的主從架構、子域委派、轉發器

為了保證服務能夠穩定的進行,避免隻有一台伺服器的時候發生當機而無法提供dns服務;所有會有dns主從伺服器架構

主從dns伺服器:(主輔)

需要注意的細節:

1.主伺服器和輔助伺服器都是域級别的概念;

2.必須保證主輔伺服器之間的網絡通信的順暢以及時間同步;

3.為了確定所有的名稱伺服器都能被識别和使用,需要在區域資料庫中為所有的名稱伺服器添加ns資源記錄;

4.區域資料庫中每條ns資源記錄都必須有a記錄與之對應;

5.從伺服器上可以預設将複制而來的資料庫檔案儲存至/var/name/slaves目錄中;

6.在主伺服器上應該通過通路控制指令允許從伺服器進行區域傳送;同時從伺服器要指定主伺服器;

在架構之前先保證主從伺服器的時間同步:

1.兩台伺服器可向網絡中的時間伺服器進行同步;

示例;

~]# ntpdate cn.pool.ntp.org

主從伺服器的架構示例:

1.編輯:在主伺服器(172.16.72.1)中的bind程式的主配置檔案(/etc/named.conf)

zone "qhdlink.com" in {

type master;

file "qhdlink.zone";

allow-update { none; };

allow-transfer { 172.16.69.1; };

//允許從伺服器(172.16.69.1)能夠從目前伺服器進行區域傳送

};

心得體會:

a、b兩台伺服器都能對同一個ip/fqdn進行dns解析

1.假如a伺服器的bind程式的主配置檔案(/etc/named.conf)中的區域配置段(zone)和其對應據庫檔案(xxx.zone)能夠進行dns解析;

2.那麼b伺服器(b作為a的從伺服器)的bind程式的主配置檔案(/etc/named.conf)中必須要有比對的區域配置段(zone)才能進行dns解析;

3.保證a伺服器中的bind程式的主配置檔案(/etc/named.conf)的區域配置段(zone)的"allow-transfer { xxx.xxx.xxx.xxx; }" 對b伺服器開啟區域傳送許可;

4.同時保證b伺服器中的bind程式的主配置檔案(/etc/named.conf)的全局配置段(options)中的"listen-on port 53"監聽b伺服器的位址,"allow-query"允許b(本地伺服器)處理a伺服器發送來的解析查詢請求

dns轉發器:

全局轉發:

1.定義:對于凡是不能由本伺服器管理(處理)的域的請求,全部以轉發的方式由指定的伺服器進行遞歸查詢;

2.配置位置:在bind的主配置檔案(/etc/named.conf)的全局配置段(options)

為什麼需要dns轉發器:

1.假設有a、b兩台ns(名稱伺服器),a為master(主名稱伺服器),b為slave(從名稱伺服器),還有一台c用戶端

2.在a上配備解析www.test.com這個fqdn的區域配置段(zone)和區域資料庫檔案(test.zone),c能夠指定a來進行dns解析擷取得到肯定答案;

3.雖然b作為a的從伺服器,但卻在b的/etc/named.conf中沒有關于www.test.com這個fqdn的區域配置段(zone),則在/var/named/slaves中沒有關于此區域資料庫檔案(test.zone),可能是由于b還沒來得及從a上進行區域傳送,更新配置檔案和資料庫中的内容;

4.此時若c指定b來進行dns解析時,即使b的/etc/named.conf中的option(全局配置段)中的"allow-query"為"{ any; }"(允許b處理任何主機發送來的解析查詢請求),c用戶端也擷取不了肯定答案,b隻能傳回一個否定答案(dns解析不了)給c

5.為了實作伺服器的高效可用性,b解析不了的時候把這個dns解析請求傳給a去處理,這其中就可以利用dns轉發器來實作;

給定三台虛拟機進行測試:

a:伺服器端(172.16.72.1)

b:轉發器端(172.16.69.1)

c:用戶端(172.16.69.2)

子域委派授權:

将子域的管理權授權給子域中的名稱伺服器;父域中不儲存任何子域資料庫中資源記錄;但為了能夠成功授權,需要添加一條ns記錄,指向子域的名稱伺服器;

子域委派授權與轉發器的比較:

1.子域委派授權實際上是為用戶端提供疊代查詢機制;

2.轉發器實際上是為用戶端提供遞歸查詢機制;

3.因為兩者都不是直接給用戶端傳回dns的解析結果,都是通過第三方來"輔助"完成解析,是以得到的答案都是非權威的;

給定三台伺服器進行測試:

子域委派授權示例:

1.在a上做qhdlink.org這個域的配置,不做bj.qhdlink.org這個域的配置

named]# vim /etc/named.conf

zone "qhdlink.org" in {

file "qhdlink.org.zone";

allow-transfer { none; };

從子域授權委派示例可以看出:

1.a隻配置了qhdlink.org這個域的解析内容;

2.b隻配置bj.qhdlink.org這個域的解析内容;

3.但隻需要在a的qhdlink.org這個域對應的資料庫中檔案中添加這兩句rr:

bj.qhdlink.org. in ns ns1.bj.qhdlink.org.

ns1.bj.qhdlink.org. in a 172.16.69.1

4.就能把a與b聯系起來;對于c用戶端發過來的dns解析查詢請求,雖然a在自己本地的伺服器上無法給c傳回dns解析查詢資訊,但可以委派給b,讓b來對c進行dns解析服務,并把結果傳回給c

繼續閱讀