核心思想:
- 基於客戶端發出起解析請求的源IP地址判斷客戶端所在的地理區域決定如何返回解析結果,從而實現業務流量就近調度。
- DNS主配置文件/etc/named.conf 文件中定義acl匹配客戶端IP
- 不同ACL匹配的客戶端讀取不同的區域數據庫文件
- DNS視圖技術將ACL與區域數據庫文件映射,注意一旦啓用DNS的視圖技術則所有的區域必須都包含在定義的視圖內。
一、網絡拓撲介紹
二、服務器配置
1. 定義解析請求流量分類
編輯bind主配置文件/etc/named.conf,定義acl將請求流量進行分類,如:定義三個ACL分別匹配來自聯通、電信、移動三家ISP的域名解析請求。
acl cmnet {
192.168.39.0/24;
192.168.10.0/24;
};
acl cunet {
192.168.38.0/24;
192.168.20.0/24
};
acl ctnet {
192.168.37.0/24;
192.168.30.0/24
};
allow-query { 192.168.39.0/24;192.168.10.0/24;192.168.20.0/24;192.168.30.0/24;};
2. 定義解析視圖
DNS視圖技術將ACL與區域庫文件映射,include 引用區域名文件。注意一旦啓用視圖則所有的區域必須被包括在視圖內,因此需要將/etc/named.conf文件的zone、和最後includ區域文件語句註釋掉,或刪除,然後定義在視圖引用的文件之內。
view cmcc {
match-clients { cmnet;};
include "/etc/named.rfc1912.zones.cmcc";
};
view cucc {
match-clients {cunet;};
include "/etc/named.rfc1912.zones.cucc";
};
view ctcc {
match-clients {ctnet;};
include "/etc/named.rfc1912.zones.ctcc";
};
執行named-checkconf 檢查配置文件是否存在語法錯誤
3. 創建區域文件
針對每個視圖分別定義區域文件,DNS收到來自三個ISP客戶的域名解析請求時,分別讀取三個ISP對應區域文件,本個區域分別映射三個解析庫文件,根據域名解析請求數據包的源IP地址返回各ISP的網內節點A記錄資源。
定義cmnet網絡的區域文件文件/etc/named.rfc1912.zones.cmcc
zone "magedu.com" IN {
type master;
file "magedu.com.zone.cmcc";
};
定義cunet網絡的區域文件文件/etc/named.rfc1912.zones.cucc
zone "magedu.com" IN {
type master;
file "magedu.com.zone.cucc";
};
定義ctnet網絡的區域文件文件/etc/named.rfc1912.zones.ctcc
zone "magedu.com" IN {
type master;
file "magedu.com.zone.ctcc";
};
4. 定義解析庫文件
定義對應cmnet用戶解析庫文件 /var/named/magedu.com.zone.cmcc
定義對應cunet用戶解析庫文件 /var/named/magedu.com.zone.cucc
定義對應ctnet用戶解析庫文件 /var/named/magedu.com.zone.ctcc
5.檢查解析庫文件是否存在語法錯誤
chgrp named /var/named/magedu.com.zone.cmcc
chgrp named /var/named/magedu.com.zone.cucc
chgrp named /var/named/magedu.com.zone.ctcc
6.更改區域文件、解析庫文件的屬組爲named
chgrp named /etc/named.rfc1912.zones.c
chgrp named /var/named/magedu.com.zone.c
7.執行rndc reload重新加載區域
三、客戶端測試
- 移動網測試
- 聯通網測試
- 電信網測試