在了解了一些基础概念之后,我们来说一下DNS服务器的具体配置。

          1. 搭建DNS所需要的软件:

DNS服务(2)缓存服务器的搭建_DNS服务器搭建

在这里我们可以看到:

                bind-utils-9.8.2-0.62.rc1.el6_9.5.x86_64:这个是客户端查找主机的相关命令

                bind-libs-9.8.2-0.62.rc1.el6_9.5.x86_64:给bind相关命令的函数库

                bind-9.8.2-0.62.rc1.el6_9.5.x86_64:bind程序所需要的软件

                bind-chroot-9.8.2-0.62.rc1.el6_9.5.x86_64:为bind主程序单独设置根目录

                其实在上述环境中还用该有一个bind-chroot文件,所谓的chroot代表的是”change to root(根目录)“的意思。因为早期的BIND默认将程序启动在/var/named当中,但是该程序会造成整个系统的危害。为了避免这个问题,我们将某个目录指定为BIND程序的根目录,由于已经是根目录,所以BIND只能在指定的目录下运行。

         2.BIND的默认路径设置与chroot

            BIND本身的配置文件:主要用于规范主机的设置、zone file的所在,权限设置等。

            正反解数据库文件(zone file):记录主机名与IP的与i应等。

            BIND的配置文件为/etc/named.conf,在这个文件里面可以规范zone file的完整名。也就是说,zone file其实是由/etc/named.conf所指定的。

             /etc/named.conf:主配置文件。

            /etc/sysconfig/named:是否启动chroot及额外的参数,就有这个文件控制。

            /var/namd/:数据库文件默认放置在这个目录。

            /var/run/named:named这个程序执行时默认放置pid-file在此目录内。

            备注:一般来说为了系统安全考虑,个主要的distributions都已经自动的将BIND相关的程序给放到chroot中了。而chroot的目录所在地记录在/etc/sysconfig/named中的ROOTDIR=/var/named/chroot.BIND的相关程序在运行的时候需要的/etc,/var/named/,/var/run等目录Centos 6以后的系列都通过mount --bind的功能自动进行目录链接。所以我们再修改配置文件时只需要修改/etc/named.conf即可。

        下面我们来配置一个单纯的DNS缓存服务器,这台服务器只提供DNS解析缓存功能,不提供区域文件解析。

        我们只需要编辑配置文件/etc/named.conf做一些修改即可

DNS服务(2)缓存服务器的搭建_DNS服务器搭建_02

     上图中,我将大部分数据都注释掉,只将少部分数据进行修改。在/etc/named.conf的结构中,与服务器环境有关的是由options这个项目内容设置的

 listen-on port 53 { 127.0.0.1; };

     监听在这台主机上面的那个网络接口,默认是监听在localhost,意思是只有本机可以对DNS服务进行查询,所以要将大括号里面的内容改为any或者是将这一行注释掉,表示监听本机所有IP地址。

directory       "/var/named";

   如果此文件下面有规范的正,反解的zone file文件,该文件名默认应该存储在那个目录下面。默认放置在/var/named下面

allow-query     { localhost; };

   这个是针对客户端做的设置,表示有哪些人可以对我的DNS服务提出查询请求的意思。默认是只对本机开放,我们这里的当然要对所有的用户可开放,所以我将它注释掉。当然如果企业为了安全也可指定能够使用本服务器的用户,将IP地址定义在打括号内,中间用分号分隔。

recursion  yes

   这个表示允许为发起查询请求的机器进行递归查询

DNS服务(2)缓存服务器的搭建_DNS服务器搭建_03

    此时options中的数据定义完毕,还需要定义一个很重要的资源记录,那就是hint根服务器。因为这个资源记录很重要所有BIND已自动将这条记录定义在/etc/named.conf中。它的区域配置文件则定义在/var/name.d/name.ca中。

   此时一台缓存DNS服务器就算配置好了。

注意事项:防火墙要放行53号端口,在测试时使用digwww.baidu.com 这个基本命令。如果查到www.baidu.com的IP并且输出数据的最下面显示”SERVER:IP#53(IP)“的字样,那就表示成功了,其中IP指的是你可以跟互联网通信同时用于BIND程序监听的地址。