通过使用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