在上篇博文中介绍了BIND服务的一些基础知识,下面我们先来配置一台最简单的缓存域名服务器,即不在服务器里创建查找区域。

主配置文件/etc/named.conf中需要修改的地方:
        1. 将listen-on port 53 { 127.0.0.1; };改为listen-on port 53 { 192.168.11.61; };
        2. 将allow-query { localhost; };改为allow-query { any; };
        3. 将dnssec-validation yes;改为dnssec-validation no;
修改后的结果:
RHEL6.3配置DNS服务器(2) 配置缓存域名服务器和转发_第1张图片

重启DNS服务:
[root@desktop3 ~]# service named restart

下面我们来验证一下DNS服务器是否生效。这里需要2台虚拟机:linux1(IP 192.168.11.61)和linux2(IP 192.168.11.62),linux1作为DNS服务器,linux2作为客户端,并要保证linux1能够接入互联网。
修改配置文件/etc/resolv.conf,将linux1和linux2的DNS服务器都设为192.168.11.61。
首先我们在linux1上进行测试,ping www.baidu.com,此时linux1能够正确地将地址解析出来,解析的方法是展开了迭代查询,仔细观察可以看到ping命令在发送第一个数据包之前会稍有停顿,这就是在进行迭代查询。
然后我们在linux2上也同样执行ping www.baidu.com,应该能看到没有任何停顿马上就开始发送数据包,这是因为linux2从linux1的缓存中直接获得了解析结果。


如果所有的解析都要展开迭代查询,那势必会影响解析效率,所以对于我们在内部网络中架设的DNS服务器,一般都要配置转发,将无法解析出来的域名请求转发给公网上的DNS服务器。
配置转发只需在全局配置options中添加一行,指向要转发到的DNS服务器的IP(注意格式):

保存退出后,重启服务生效:
# service named restart
然后在linux2中进行测试,ping一些其它的网址,如ping www.ytvc.com.cn,可以发现没有任何停顿马上解析出了结果。
转发的优先级要高于迭代查询,只要在配置文件中增加了forwarders项,服务器就不会再去找根服务器进行迭代查询了。