DNS服務器(四):DNS視圖及bind中rndc的使用

一、DNS服務器視圖功能的實現

   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";
    };
};


需要注意的是:

(1)、如果使用了視圖的功能,那麼配置文件中的所有zone區域都要必須寫在視圖裏面,如,配置文件裏默認要配置的三個區域,根、127.0.0.1、1.0.0.127.in-addr.arpa都要寫入視圖。

(2)、在acl中定義IP地址,IP地址的寫法可以是單個IP地址也可以是一個IP地址段加掩碼,如:192.168.0.0/24。

(3)、視圖是根據配置文件從上往下匹配的,所以希望優先訪問的資源記錄文件,區域應該儘量寫前面。

(4)、如果定義的若干個視圖的IP地址不全的話,那麼可以在最後定義一個默認視圖,match-clients選項中的IP地址寫上any,代表如果此次訪問的IP地址上面沒有一個能匹配到,則在此處歸類。


實例:虛擬兩臺IP地址不同的主機,實現DNS服務器視圖功能。

1、本地電腦只有一個IP地址段,故使用兩個IP地址分別代表兩個不同的路線。首先,我們配置一個區域wubinary.com的DNS服務器,ip地址爲,192.168.0.6。打開/etc/named.rfc1912.zones文件,編輯如下:

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這個文件的資源記錄文件。


2、分別編輯這兩個文件

編輯文件/var/named/wubinary.com.net

wKiom1MnGvGD5sL-AAC9vcbqmQA914.jpg


編輯文件/var/named/wubinary.com.local

wKiom1MnG57iasDFAAC_ox-IWK4682.jpg


這裏IP地址分別改了,192.168.0.6的機器請求時對應解析的IP是192.168開頭的,192.168.0.12請求時對應解析的IP是172.16開頭的。配置完成後,記得修改文件所屬組及文件權限。


3、測試一下配置文件語法。

wKiom1MnHHrgKhs0AAE4D51wVdk395.jpg


4、好的,重新載入配置文件,在分別在兩臺機器上測試一下吧。

重載配置文件:

wKioL1MnHL2xKSZxAABny_nHMYQ165.jpg


192.168.0.6的機器,也就是我們DNS所屬的這臺機器,結果如下:

wKiom1MnHSXgHN2zAAK3B_FDbco325.jpg


192.168.0.12的機器,結果如下:

wKiom1MnHWfyiW9QAAKzcW_E68s979.jpg


兩臺機器請求DNS服務器時域名解析達到了預期的效果,測試成功。


二、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:

1、生成密鑰文件

命令:

rndc-confgen  > /etc/rndc.conf
或者
rndc-confgen -r /dev/urandom  > /etc/rndc.conf


生成的配置文件如下:

wKioL1MnIj7y7oP1AAGp4p88DJc495.jpg


2、複製上面配置文件中下面一塊被註釋的區域至/etc/named.conf文件中,並把註釋關閉。

wKioL1MnIpbSUsssAAFoRBV_xm0221.jpg


3、重新加載bind後就可以使用rndc管理bind了。

wKioL1MnIzSQCSodAAHZF8HPAfo247.jpg


4、使用rndc重新加載bind的配置文件。

wKiom1MnI62z1GMuAAC-gUfR6RY093.jpg


注意:如果在使用rndc時,出現如上警告時,可以刪除/etc/rndc.key文件,或者重命名該文件。


5、DNS服務器的debug功能默認是關閉的,使用rndc trace可以開啓該功能,執行一次該命令 debug 級別加一級,也可以在命令後面加一個數字作爲參數,指定debug級別,當數字爲0時,表示關閉debug功能。

開啓debug:

wKiom1MnJTqC8GSJAAGY0X_XkC8464.jpg


關閉debug:

wKiom1MnJW_wp19hAAFm_zMdjY4127.jpg


6、其它命令具體操作相差不大,不在此討論。







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章