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

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

wKiom1MnGvGD5sL-AAC9vcbqmQA914.jpg


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

wKiom1MnG57iasDFAAC_ox-IWK4682.jpg


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


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

wKiom1MnHHrgKhs0AAE4D51wVdk395.jpg


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

重载配置文件:

wKioL1MnHL2xKSZxAABny_nHMYQ165.jpg


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

wKiom1MnHSXgHN2zAAK3B_FDbco325.jpg


192.168.0.12的机器,结果以下:

wKiom1MnHWfyiW9QAAKzcW_E68s979.jpg


两台机器请求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


生成的配置文件以下:

wKioL1MnIj7y7oP1AAGp4p88DJc495.jpg


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

wKioL1MnIpbSUsssAAFoRBV_xm0221.jpg


三、从新加载bind后就能够使用rndc管理bind了。

wKioL1MnIzSQCSodAAHZF8HPAfo247.jpg


四、使用rndc从新加载bind的配置文件。

wKiom1MnI62z1GMuAAC-gUfR6RY093.jpg


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


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

开启debug:

wKiom1MnJTqC8GSJAAGY0X_XkC8464.jpg


关闭debug:

wKiom1MnJW_wp19hAAFm_zMdjY4127.jpg


六、其它命令具体操做相差不大,不在此讨论。

相关文章
相关标签/搜索