DNS的分離解析,是指根據不同的客戶端提供不同的域名解析記錄。來自不同地址的客戶機請求解析同一域名時,爲其提供不同的解析結果。也就是內外網客戶請求訪問相同的域名時,能解析出不同的IP地址,實現負載均衡。
實驗環境:
DNS服務器:Redhat 6.5系統
外網IP地址是12.0.0.1
內網IP地址是192.168.10.1
內網客戶機:Windows 7系統 IP地址是192.168.10.10
外網客戶機:Windows 7系統 IP地址是12.0.0.10
實驗前提:DNS服務器需要有雙網卡,安裝bind軟件
- 系統默認安裝一個網卡,再添加一個網卡,用ifconfig命令查看
-
添加外網eth1外網的網絡配置文件
[root@RedHat6-2 ~]# cd /etc/sysconfig/network-scripts/ [root@RedHat6-2 network-scripts]# cp ifcfg-eth0 ifcfg-eth1 [root@RedHat6-2 network-scripts]# vim ifcfg-eth1
DEVICE=eth1 #設備名稱eth1
HWADDR=00:0C:29:AD:B6:15 #eth1的MAC地址
TYPE=Ethernet
ONBOOT=yes #激活網絡接口
NM_CONTROLLED=yes
BOOTPROTO=static #靜態配置IP
IPADDR=12.0.0.1 #網絡IP地址
NETMASK=255.255.255.0 #網絡子網掩碼 - 重啓網絡服務
service network restart
- ifconfig命令查看內外網IP的設置
- Yum安裝bind軟件
yum install bind -y
實驗步驟:
第1步: 修改bind服務程序的主配置文件(/etc/named.conf)
將監聽端口和允許查詢主機參數設置爲any。由於配置的DNS分離解析功能與DNS根服務器配置參數有衝突,需要將根域信息刪除。
vim /etc/named.conf #編輯主配置文件
options {
listen-on port 53 { any; };
#設置監聽的地址和端口
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
#允許使用DNS服務的地址
recursion yes;
-
zone "." IN {
#刪除根域信息
type hint;
file "named.ca";
};
第2步:編輯區域配置文件(/etc/named.rfc1912.zone)
- 由於區域配置文件是爲不同的客戶機地址啓用不同的zone區域設置,各自使用獨立的數據文件,所以要把配置文件中原有的數據清空。
- 主要使用“view”配置語句和“machine-clients”配置選項,根據不同的客戶端地址對“benet.com”域的查詢對應到不同的數據文件,從而得到不同的解析結果。
view /etc/named.rfc1912.zone #編輯區域配置文件
view "lan" {
#設置面向內網用戶的視圖
match-clients { 192.168.10.0/24; }; #匹配條件爲內網的客戶端地址
zone "benet.com" IN {
type master;
file "benet.com.zone.lan"; #指定面向內網用戶的數據配置文件
};
zone "." IN {
type hint;
file "named.ca"; #指向根域數據文件
};
};
view "wan" {
#設置面向外網用戶的視圖
match-clients { any; }; #匹配條件爲“any”任意地址
zone "benet.com" IN {
type master;
file "benet.com.zone.wan"; #指定面向外網用戶的數據配置文件
};
};
第3步:建立區域數據配置文件(/var/named)
分別通過模板文件創建出兩個不同的區域數據文件,對應內外網的客戶端域名請求,名稱應與上面的區域配置文件指定的名稱一致。
cd /var/named #切換目錄
cp -p named.localhost benet.com.zone.lan #保留文件的屬性,建立內網用戶數據文件
cp -p named.localhost benet.com.zone.wan #保留文件的屬性,建立外網用戶數據文件
vim /var/named/benet.com.zone.lan #編輯內網用戶數據文件
$TTL 1D
@ IN SOA benet.com. admin.benet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS benet.com.
A 192.168.10.1 #服務器內網IP地址
www IN A 192.168.10.80 #內網地址記錄(www.benet.com)
mail IN A 192.168.10.25 #內網地址記錄(mail.benet.com)
vim benet.com.zone.wan #編輯外網用戶數據文件
$TTL 1D
@ IN SOA benet.com. admin.benet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS benet.com.
A 12.0.0.1 #服務器外網IP地址
www IN A 12.0.0.20 #外網地址記錄(www.benet.com)
mail IN A 12.0.0.45 #外網地址記錄(mail.benet.com)
第4步:啓動named服務
service named start
第5步:關掉防火牆
service iptables stop
第6步:驗證結果
內網客戶機將DNS地址設置爲服務器的內網IP,外網客戶機將DNS地址設置爲服務器的外網IP,然後使用nslookup命令解析域名。