首先安装bind ,使用Yum或者rpm包安装。我使用Yum的安装办法,将DNS需要的组件一次性全部装好。安装好之后,使用rpm -ql |grep bind 查看都装了哪些文件。

 

找到bind的配置文件,/etc/named.conf,在修改配置文件值钱,有一些选项参数需要先了解清楚。

    //           后面接的都是注释语句,类似于普通配置文件中的  #

options    后面接的是全局配置选项,dns全局参数都在这里配置。

logging    定义日志的记录范围,一般默认不修改。

zone        定义一个区域声明,比如区域文件名,类型等。

 

好,了解这些之后,我们根据自己的需求来修改named.conf配置文件。

//
// named.conf
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
        listen-on port 53 { any; }; // 开启侦听端口53,接受任意IP连接
        listen-on-v6 port 53 { ::1; };
        directory       "/var/named";//这里是目录正向反向区域都创建在这个目录下
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { 0.0.0.0/0; };   允许任意IP查询这里也可以修改为any如果不修改会在nslookup出现错误refused被拒绝

 recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN { 
        type hint;
        file "named.ca";
};

 

zone “jxcia.com”    IN {                                    // 添加正向解析区域信息

        type master ;

        file  "jxcia.com.zone";

};

zone "1.168.192.in-addr.arpa"  IN {                 //  添加反向解析区域信息

         type master;

         file  "192.168.1.zone";

};

这样添加好了之后,保存退出。

注意:在named.conf中,每一行最后都要有;(冒号结尾),如果没有,启动的时候会有提示信息的。启动会失败。

 

下面到/var/named/目录下面添加正向和反向区域解析文件。在添加区域文件的前提,同样有一些参数需要理解下。

在这里,这个分号是注释符,相当于前面的 // 号,后面跟的都是注释语句。

 表示是在当前域,就是区域文件定义的那个域。

() 表示允许数据跨行,一般用的不多。

  用在name字段的通配符。

资源管理器  简称RR :

基本格式 : [ name ]  [ ttl ]  [ class ]   type  data 

1、name 字段,可以是相对域名或者全域名,也可以是单独某台主机的名字。

2、ttl  timed to live,生命值,一般忽略不写。

3、class  字段,用于指定网络类型,可选的值有IN、CH和HS,其中IN (intelnet)是广泛使用的一种

4、type  字段 , 用来指定RR资源的类型,常用的有如下几种:

       区记录:    SOA (start  of  authority )  SOA标记,一个授权区定义的开始。

                            NS (name server )标记区域的域名服务器以及授权子域

       基本记录: A  ( address )  A记录,将主机名转换成IP地址,一个主机只有一个A记录

                            PTR (poin teR )与A记录相反,将IP转换成主机名,反向解析操作

                              MX  (mail  exchanger) 邮件交换记录,定义邮件服务器的域名

了解这些,现在开始建立正常和反向解析区域文件了。首先我们根据上面named.conf配置里知道,区域配置文件都在/var/named/目录下面。进入到该目录之后:

新建区域文件  vim jxcia.com.zone                                 //文件的名字一定要和你前面配置文件里一样

 

$TTL  600

@      IN   SOA   mail.jxcia.com.        root.mail.jxcia.com. (

                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

@          IN      NS     mail.jxcia.com.                   //根据上面开始的提示,这个是定义区的域名服务器。    

 

mail       IN        A      192.168.1.210                          //设置A记录,mail主机对应的IP地址   

www      IN       CNAME     mail                               // 设置一个别名,方便以后搭建www服务器

 

OK。正向解析区域文件就建好了,保存退出,下面同样的办法建立反向解析文件。

 vim 192.168.1.zone  

$TTL 600

@     IN     SOA     mail.jxcia.com.       root.mail.jxcia.com.  (

                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum

@       IN  NS   mail.jxcia.com.

 

210     IN   PTR   mail.jxcia.com.              //做一个反向解析指针

 

OK。同样,一个简单的反向解析文件也做好了,需要其他信息就让里面加就可以了。这样之后,所有的配置文件都配置好了,启动DNS服务,

[root @ mail  ~] # service named restart                                             //我习惯用restart

如果正常没问题的话,会出现如下信息。

Stopping named :                                           [ OK ]

Starting  named :                                            [ OK ]

这样我们的DNS服务器就正常启动起来了,如果有问题,则根据提示语句找到相应的问题。

 

服务器搭建好了,下面进行的就是测试咯,啦啦啦,终于搭建完了。下面开始测试DNS服务器。测试服务器之前有个地方别忘记设置了,那就是客户端的DNS,也就是把/etc/resolv.conf下面的name server改成自己这服务器的IP了。然后重启网络服务。

测试DNS最简单的命令就是   nslookup了,下面使用我们的nslookup测试我们的DNS服务器看是否能正常解析。

[root @mail ~]# nslookup mail.jxcia.com

server :                        192.168.1.210

address:                        192.168.1.210#53

 

Name:    mail.jxcia.com

address :  192.168.1.210

 

如果出现这个,那说明我们的服务器正常运行了,但是事实并不是这么美好的,你在测试的时候,很有可能会得到这样的结果:

server can't find mail.jxcia.com.jxcia.com :SERVFAIL

根据提示是无法找到对应的区域。遇到问题了,那就去解决,首先看错误提示,然后再看日志,发现问题应该是在找不到配置文件,但是明明都配置好了的啊。来回对照了好几遍都没发现问题啊,百思不得其解,最后根据提示不停的百度谷歌,最后,黄天不负有心人,终于让我找到了,原来是/var/named/目录下面的配置文件的所属组的问题,根据ll,可以看出系统自动生成的文件所有者是root,但是所属组是named。而我们自己创建的文件,所有者和所属组都是属于root,所以named服务无法读取我们的配置文件,造成无法正常访问。把权限和宿主改过来重启服务就OK了。

到目前为止已经可以正常运行了。