Linux基本知识点总结——DNS视图的实现
DNS视图能够智能地自动判断访问者的IP地址,然后根据不同的访问者把域名分别解析成不同的IP地址,从而让不同的IP指向在不不同网络上的主机,例如使网通用户会访问到网通服务器,电信用户会访问到电信服务器。
DNS视图的实现,主要用到acl和view两个字段。以下实验平台为CentOS 6.2,环境为:
DNS服务器
主机名:itpro IP地址:192.168.56.53
客户端测试机A
主机名:pca IP地址:192.168.56.101
客户端测试机B
主机名:pcb IP地址:192.168.56.202
注:这是在内网做的实验,用的是同一网段的IP;不过,这里假设成三个网段里的三台设备:itpro是公网里的dns服务器,pca是连接电信网络的客户机,pcb是连接联通网络的客户机。
一、DNS服务器的配置
有关bind和bind-chroot的安装及使用,前一篇《RHCE培训笔记——DNS基础》已经介绍,这里不再详述。
为避免路径过长或因切换路径等而作多余的啰嗦,本文是在root目录下进行的,请注意。实际操作建议在伪目录中进行。
1.修改主配文件
内容修改后,如下:
[root@itpro ~]# cat /etc/named.conf
// named.conf
options {
listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
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; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
acl cncnet { 192.168.56.101; }; #注,定义联通网段,这里只指定一个IP地址
acl telecomnet { 192.168.56.202; }; #注,定义电信网段,这里只指定一个IP地址
view telecom {
zone "." IN {
type hint;
file "named.ca";
};
//注,这个zone在named.conf里默认是有的,使用view语句后,
//要把它删掉(删掉后好像没影响,不过这是一个hint类型的zone,保留了),
//或放进view里,否则在重启named时会有如下报错,
//“when using 'view' statements, all zones must be in views”
match-clients { telecomnet; };
recursion yes;
include "/etc/named.rfc1912.zones";
};
view cnc {
match-clients { cncnet; };
recursion yes;
zone "sq.com" IN {
type master;
file "cnc.sq.com.zone";
allow-update { none; };
};
zone "100.40.125.in-addr.arpa" IN {
type master;
file "cnc.sq.com.local";
allow-update { none; };
};
};
include "/etc/named.root.key";