您的位置:首页 > 其它

DNS服务器(四):DNS视图及bind中rndc的使用

2014-03-18 00:46 435 查看
一、DNS服务器视图功能的实现

DNS服务器有一个高级的功能,能够实现不同的用户访问同一个域名,把域名解析成不同的IP地址,使用户能够访问离他最近的服务器上的数据,这就是DNS服务器的视图功能。使用DNS服务器的视图功能可以增加网站的响应速度。例如,当我们网站的数据同步在两台web服务器上时,一台是电信服务器,一台是网通服务器,那么我们肯定希望全国访问我们网站的用户在打开网站的时候,能够自动实现,电信用户访问电信服务器,网通用户访问网通服务器。配置这种情况的前提是,web服务器必须要有一个电信的IP地址和一个网通的IP地址。DNS服务器的这种解析功能通常也被称之为智能解析。

DNS服务器的视图通常在配置文件中是使用view实现的。把要使用某些IP地址作单独访问的zone区域,统一放在一个命名的view段落中,并且在view中定义请求的IP地址或IP地址段,把IP地址写入match-clients选项中。如果像上面说的,区分电信和网通路线的话,那么可以使用两个acl访问控制列表写上电信或网通IP地址,定义电信网通路线,把acl名字写入view段落match-clients选项中。如下所示:

acl telecomip{ tele_IP; ... };
acl netcomip{ net_IP; ... };
view telecom {
match-clients { telecomip; };
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.telecom";
};
};
view netcom {
match-clients { netcomip; };
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.netcom";
};
};
view default {
match-clients { any; };
zone "ZONE_NAME" IN {
type master;
file "ZONE_NAME.netcom";
};
};


需要注意的是:
(1)、如果使用了视图的功能,那么配置文件中的所有zone区域都要必须写在视图里面,如,配置文件里默认要配置的三个区域,根、127.0.0.1、1.0.0.127.in-addr.arpa都要写入视图。
(2)、在acl中定义IP地址,IP地址的写法可以是单个IP地址也可以是一个IP地址段加掩码,如:192.168.0.0/24。
(3)、视图是根据配置文件从上往下匹配的,所以希望优先访问的资源记录文件,区域应该尽量写前面。
(4)、如果定义的若干个视图的IP地址不全的话,那么可以在最后定义一个默认视图,match-clients选项中的IP地址写上any,代表如果此次访问的IP地址上面没有一个能匹配到,则在此处归类。

实例:虚拟两台IP地址不同的主机,实现DNS服务器视图功能。
1、本地电脑只有一个IP地址段,故使用两个IP地址分别代表两个不同的路线。首先,我们配置一个区域wubinary.com的DNS服务器,ip地址为,192.168.0.6。打开/etc/named.rfc1912.zones文件,编辑如下:
acl net { 192.168.0.6; };
acl local { 192.168.0.12; };
view netcom {
match-clients { net; };
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "wubinary.com" IN {
type master;
file "wubinary.com.net";
};
};
view localcom {
match-clients { local; };
zone "wubinary.com" IN {
type master;
file "wubinary.com.local";
};
};
view default {
match-clients { any; };
zone "wubinary.com" IN {
type master;
file "wubinary.com.local";
};
};


说明:我们分别定义两个acl,用于代表两个不同路线,IP地址为192.168.0.6的机器访问的资源记录文件是 wubinary.com.net文件,IP地址为192.168.0.12和其它的机器则访问wubinary.com.local这个文件的资源记录文件。

2、分别编辑这两个文件
编辑文件/var/named/wubinary.com.net




编辑文件/var/named/wubinary.com.local




这里IP地址分别改了,192.168.0.6的机器请求时对应解析的IP是192.168开头的,192.168.0.12请求时对应解析的IP是172.16开头的。配置完成后,记得修改文件所属组及文件权限。

3、测试一下配置文件语法。




4、好的,重新载入配置文件,在分别在两台机器上测试一下吧。
重载配置文件:




192.168.0.6的机器,也就是我们DNS所属的这台机器,结果如下:




192.168.0.12的机器,结果如下:




两台机器请求DNS服务器时域名解析达到了预期的效果,测试成功。

二、bind中rndc的使用
rndc是Remote Name Domain Controllerr的简写,它是一个远程管理bind的工具。在使用rndc管理bind前需要使用rndc生成一对密钥文件,一半保存于rndc的配置文件中,另一半保存于bind主配置文件中。rndc的配置文件为/etc/rndc.conf,在CentOS或者RHEL中,rndc的密钥保存在/etc/rndc.key文件中。rndc默认监听在953号端口,其实在bind9中rndc默认就是可以使用可,不需要配置密钥文件。
rndc常用命令:
status #查看DNS状态
reload #重新加载配置文件
reload zone_name #重新加载指定区域
reconfig  #重读配置文件并加载新增的区域
querylog  #关闭或开启查询日志
flush  #清空服务器的缓存
flushname name  #清空指定名称相关的缓存
trace  #打开debug, debug有级别的概念,每执行一次提升一次级别
trace LEVEL  #指定 debug 的级别, trace 0 表示关闭debug


使用rndc:
1、生成密钥文件
命令:
rndc-confgen  > /etc/rndc.conf
或者
rndc-confgen -r /dev/urandom  > /etc/rndc.conf


生成的配置文件如下:




2、复制上面配置文件中下面一块被注释的区域至/etc/named.conf文件中,并把注释关闭。




3、重新加载bind后就可以使用rndc管理bind了。




4、使用rndc重新加载bind的配置文件。




注意:如果在使用rndc时,出现如上警告时,可以删除/etc/rndc.key文件,或者重命名该文件。

5、DNS服务器的debug功能默认是关闭的,使用rndc trace可以开启该功能,执行一次该命令 debug 级别加一级,也可以在命令后面加一个数字作为参数,指定debug级别,当数字为0时,表示关闭debug功能。
开启debug:




关闭debug:




6、其它命令具体操作相差不大,不在此讨论。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息