通過使用view使不同區域的用戶看的試圖不一樣,不同區域的用戶對應的數據庫文件不一樣,爲每一種不同的客戶來源定義一條個性化的DNS解析記錄。 使他們之間訪問的IP地址不同。
需要安裝的包
[root@www chroot]# rpm -qa |grep bind
bind-chroot--4.P1.el5_4.2
bind-libs--4.P1.el5_4.2
bind-utils--4.P1.el5_4.2
ypbind-1.19-12.el5
bind--4.P1.el5_4.2
[root@www chroot]# rpm -qa |grep caching-nameserver
caching-nameserver--4.P1.el5_4.2
[root@www chroot]#
[root@www chroot]# hostname
www.abc.com
[root@www chroot]# vim /etc/hosts
127.0.0.1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
192.168.101.100 www.abc.com
192.168.10.10 www.abc.com
[root@www chroot]# vim /etc/sysconfig/network
HOSTNAME=www.abc.com
配置文件:
[root@www chroot]# pwd
/var/named/chroot
[root@www chroot]# 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; };
allow-query-cache { localhost; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
--配置不同的區域訪問不同的數據庫文件
view cache1 {
match-clients { 192.168.10.0/24; };
recursion yes;
match-destinations { any; };
include "/etc/named.rfc1912.zones";
};
view cache2 {
match-clients { 192.168.40.0/24; };
recursion yes;
match-destinations { any; };
zone "abc.com" IN {
type master;
file "cache2.db";
};
};
[root@www chroot]# vim etc/named.rfc1912.zones
zone "abc.com" IN {
type master;
file "cache1.db";
allow-update { none; };
};
[root@www chroot]# vim var/named/cache1.db
$TTL 86400
@ IN SOA ns.abc.com. root (
42 ; serial (d. )
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.abc.com.
ns IN A 192.168.101.100
www IN A 222.1.1.2 --可以是訪問服務器的地址,不同區域的客戶端解析到的是不同的,我爲了測試簡單,把所有的解析到一臺web server上了。
[root@www chroot]# vim var/named/cache2.db
$TTL 86400
@ IN SOA ns.abc.com. root (
42 ; serial (d. )
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ns.abc.com.
ns IN A 192.168.101.100
www IN A 222.1.1.2
[root@www chroot]#
[root@www named]# service named restart
Stopping named: . [ OK ]
Starting named: [ OK ]
[root@www named]# chkconfig named on
[root@www chroot]# vim /etc/resolv.conf --dns指向
nameserver 192.168.101.100
也可以只在named.conf文件裏定義倆個區域
[root@www etc]# vim named.conf
view cache1 {
match-clients { 192.168.10.0/24; };
recursion yes;
match-destinations { any; };
zone "abc.com" IN {
type master;
file "cache1.db";
};
#include "/etc/named.rfc1912.zones";
};
view cache2 {
match-clients { 192.168.40.0/24; };
recursion yes;
match-destinations { any; };
zone "abc.com" IN {
type master;
file "cache2.db";
};
[root@www etc]# vim named.rfc1912.zones –文件裏不用再聲明區域
[root@www etc]# service named restart
[root@www etc]# rndc flush
[root@www etc]# nslookup www.abc.com
Server: 192.168.10.10
Address: 192.168.10.10#53
Name: www.abc.com
Address: 222.1.1.2