1、DNS服務器視圖功能的實現
web
DNS服務器有一個高級的功能,可以實現不一樣的用戶訪問同一個域名,把域名解析成不一樣的IP地址,使用戶可以訪問離他最近的服務器上的數據,這就是DNS服務器的視圖功能。使用DNS服務器的視圖功能能夠增長網站的響應速度。例如,當咱們網站的數據同步在兩臺web服務器上時,一臺是電信服務器,一臺是網通服務器,那麼咱們確定但願全國訪問咱們網站的用戶在打開網站的時候,可以自動實現,電信用戶訪問電信服務器,網通用戶訪問網通服務器。配置這種狀況的前提是,web服務器必需要有一個電信的IP地址和一個網通的IP地址。DNS服務器的這種解析功能一般也被稱之爲智能解析。
緩存
DNS服務器的視圖一般在配置文件中是使用view實現的。把要使用某些IP地址做單獨訪問的zone區域,統一放在一個命名的view段落中,而且在view中定義請求的IP地址或IP地址段,把IP地址寫入match-clients選項中。若是像上面說的,區分電信和網通路線的話,那麼能夠使用兩個acl訪問控制列表寫上電信或網通IP地址,定義電信網通路線,把acl名字寫入view段落match-clients選項中。以下所示:
服務器
acl telecomip{ tele_IP; ... }; acl netcomip{ net_IP; ... }; view telecom { match-clients { telecomip; }; zone "ZONE_NAME" IN { type master; file "ZONE_NAME.telecom"; }; }; view netcom { match-clients { netcomip; }; zone "ZONE_NAME" IN { type master; file "ZONE_NAME.netcom"; }; }; view default { match-clients { any; }; zone "ZONE_NAME" IN { type master; file "ZONE_NAME.netcom"; }; };
須要注意的是:dom
(1)、若是使用了視圖的功能,那麼配置文件中的全部zone區域都要必須寫在視圖裏面,如,配置文件裏默認要配置的三個區域,根、127.0.0.一、1.0.0.127.in-addr.arpa都要寫入視圖。ide
(2)、在acl中定義IP地址,IP地址的寫法能夠是單個IP地址也能夠是一個IP地址段加掩碼,如:192.168.0.0/24。工具
(3)、視圖是根據配置文件從上往下匹配的,因此但願優先訪問的資源記錄文件,區域應該儘可能寫前面。oop
(4)、若是定義的若干個視圖的IP地址不全的話,那麼能夠在最後定義一個默認視圖,match-clients選項中的IP地址寫上any,表明若是這次訪問的IP地址上面沒有一個能匹配到,則在此處歸類。測試
實例:虛擬兩臺IP地址不一樣的主機,實現DNS服務器視圖功能。網站
一、本地電腦只有一個IP地址段,故使用兩個IP地址分別表明兩個不一樣的路線。首先,咱們配置一個區域wubinary.com的DNS服務器,ip地址爲,192.168.0.6。打開/etc/named.rfc1912.zones文件,編輯以下:.net
acl net { 192.168.0.6; }; acl local { 192.168.0.12; }; view netcom { match-clients { net; }; zone "." IN { type hint; file "named.ca"; }; zone "localhost.localdomain" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "localhost" IN { type master; file "named.localhost"; allow-update { none; }; }; zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "1.0.0.127.in-addr.arpa" IN { type master; file "named.loopback"; allow-update { none; }; }; zone "0.in-addr.arpa" IN { type master; file "named.empty"; allow-update { none; }; }; zone "wubinary.com" IN { type master; file "wubinary.com.net"; }; }; view localcom { match-clients { local; }; zone "wubinary.com" IN { type master; file "wubinary.com.local"; }; }; view default { match-clients { any; }; zone "wubinary.com" IN { type master; file "wubinary.com.local"; }; };
說明:咱們分別定義兩個acl,用於表明兩個不一樣路線,IP地址爲192.168.0.6的機器訪問的資源記錄文件是 wubinary.com.net文件,IP地址爲192.168.0.12和其它的機器則訪問wubinary.com.local這個文件的資源記錄文件。
二、分別編輯這兩個文件
編輯文件/var/named/wubinary.com.net
編輯文件/var/named/wubinary.com.local
這裏IP地址分別改了,192.168.0.6的機器請求時對應解析的IP是192.168開頭的,192.168.0.12請求時對應解析的IP是172.16開頭的。配置完成後,記得修改文件所屬組及文件權限。
三、測試一下配置文件語法。
四、好的,從新載入配置文件,在分別在兩臺機器上測試一下吧。
重載配置文件:
192.168.0.6的機器,也就是咱們DNS所屬的這臺機器,結果以下:
192.168.0.12的機器,結果以下:
兩臺機器請求DNS服務器時域名解析達到了預期的效果,測試成功。
2、bind中rndc的使用
rndc是Remote Name Domain Controllerr的簡寫,它是一個遠程管理bind的工具。在使用rndc管理bind前須要使用rndc生成一對密鑰文件,一半保存於rndc的配置文件中,另外一半保存於bind主配置文件中。rndc的配置文件爲/etc/rndc.conf,在CentOS或者RHEL中,rndc的密鑰保存在/etc/rndc.key文件中。rndc默認監聽在953號端口,其實在bind9中rndc默認就是能夠使用可,不須要配置密鑰文件。
rndc經常使用命令:
status #查看DNS狀態 reload #從新加載配置文件 reload zone_name #從新加載指定區域 reconfig #重讀配置文件並加載新增的區域 querylog #關閉或開啓查詢日誌 flush #清空服務器的緩存 flushname name #清空指定名稱相關的緩存 trace #打開debug, debug有級別的概念,每執行一次提高一次級別 trace LEVEL #指定 debug 的級別, trace 0 表示關閉debug
使用rndc:
一、生成密鑰文件
命令:
rndc-confgen > /etc/rndc.conf 或者 rndc-confgen -r /dev/urandom > /etc/rndc.conf
生成的配置文件以下:
二、複製上面配置文件中下面一塊被註釋的區域至/etc/named.conf文件中,並把註釋關閉。
三、從新加載bind後就能夠使用rndc管理bind了。
四、使用rndc從新加載bind的配置文件。
注意:若是在使用rndc時,出現如上警告時,能夠刪除/etc/rndc.key文件,或者重命名該文件。
五、DNS服務器的debug功能默認是關閉的,使用rndc trace能夠開啓該功能,執行一次該命令 debug 級別加一級,也能夠在命令後面加一個數字做爲參數,指定debug級別,當數字爲0時,表示關閉debug功能。
開啓debug:
關閉debug:
六、其它命令具體操做相差不大,不在此討論。