1、DNS服务器视图功能的实现
web
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"; }; };
须要注意的是:dom
(1)、若是使用了视图的功能,那么配置文件中的全部zone区域都要必须写在视图里面,如,配置文件里默认要配置的三个区域,根、127.0.0.一、1.0.0.127.in-addr.arpa都要写入视图。ide
(2)、在acl中定义IP地址,IP地址的写法能够是单个IP地址也能够是一个IP地址段加掩码,如:192.168.0.0/24。工具
(3)、视图是根据配置文件从上往下匹配的,因此但愿优先访问的资源记录文件,区域应该尽可能写前面。oop
(4)、若是定义的若干个视图的IP地址不全的话,那么能够在最后定义一个默认视图,match-clients选项中的IP地址写上any,表明若是这次访问的IP地址上面没有一个能匹配到,则在此处归类。测试
实例:虚拟两台IP地址不一样的主机,实现DNS服务器视图功能。网站
一、本地电脑只有一个IP地址段,故使用两个IP地址分别表明两个不一样的路线。首先,咱们配置一个区域wubinary.com的DNS服务器,ip地址为,192.168.0.6。打开/etc/named.rfc1912.zones文件,编辑以下:.net
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这个文件的资源记录文件。
二、分别编辑这两个文件
编辑文件/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开头的。配置完成后,记得修改文件所属组及文件权限。
三、测试一下配置文件语法。
四、好的,从新载入配置文件,在分别在两台机器上测试一下吧。
重载配置文件:
192.168.0.6的机器,也就是咱们DNS所属的这台机器,结果以下:
192.168.0.12的机器,结果以下:
两台机器请求DNS服务器时域名解析达到了预期的效果,测试成功。
2、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:
一、生成密钥文件
命令:
rndc-confgen > /etc/rndc.conf 或者 rndc-confgen -r /dev/urandom > /etc/rndc.conf
生成的配置文件以下:
二、复制上面配置文件中下面一块被注释的区域至/etc/named.conf文件中,并把注释关闭。
三、从新加载bind后就能够使用rndc管理bind了。
四、使用rndc从新加载bind的配置文件。
注意:若是在使用rndc时,出现如上警告时,能够删除/etc/rndc.key文件,或者重命名该文件。
五、DNS服务器的debug功能默认是关闭的,使用rndc trace能够开启该功能,执行一次该命令 debug 级别加一级,也能够在命令后面加一个数字做为参数,指定debug级别,当数字为0时,表示关闭debug功能。
开启debug:
关闭debug:
六、其它命令具体操做相差不大,不在此讨论。