架构二:bind 9

参考:故障处理:http://mba.shengwushibie.com/itbook/BookChapter.asp?id=4154

 

版本:bind-9.6-ESV-R5

1、编译安装

先下载解压软件包,再编译安装

./configure --prefix=/usr/local/named --with-openssl=/usr/local/openssl/ --disable-openssl-version-check

选项 --with-openssl=/usr/local/openssl/  是指定ssl的安装路径,按照自己主机的实际情况而定,若openssl的版本太低,可以使用选项--disable-openssl-version-check来消除告警信息

make  && make install  (不要使用并行编译的方式,make -j  3)

2、安装完了以后,我们准备去配置bind服务,但是进入/usr/local/named/etc 下没有任何目录和文件供我们配置。也许可以先运行一些named进程,于是执行/usr/local/named/sbin/named  还是不行,服务并没有运行起来。

查看一些系统日志 ,tail -f /var/log/messages 就会发现这样一条Sep 15 15:00:56 localhost named[16536]: none:0: open: /usr/local/named/etc/named.conf: file not found

     原因清楚了,就是缺少配置文件。

3、下面就大刀阔斧的干

      第一步:rndc配置 

       什么是rndc? rndc是用来控制bind行为的工具,如修改了某个区文件,重新加载这个区文件,命令为rndc zone 。这样就不用重启bind服务。

      创建rndc.conf  ,利用命令

       /usr/local/named/sbin/rndc-confgen >/usr/local/named/etc/rndc.conf

      第二步:named.conf 配置

      dns的基本功能的实现都是通过这个named.conf文件,文件分为4个大块:选项文本块、安全认证文本块、查询日志记录文本块和区域文本块

      话说,这个文件需要我们自己去写,傻子才会一个一个字去敲呢,去google呗,

      推荐一个网站:http://www.zytrax.com/books/dns/ch7/

       好了,我把我的named.conf文件给大家看看,完了以后把该文件放在/usr/local/named/etc目录

options {

    directory "/var/named";   //数据存放路径,查询日志,pid文件等

    allow-query-cache {any;};

    pid-file "named.pid";                 

};  // OPTIONS选项用来定义一些影响整个DNS服务器的环境,如这里的DI RECTORY用来指定在本文件指定的文件的路径,如这里的是将其指定到 /var/named 下,在这里你还可以指定端口等等。不指定则端口是53


key "rndc-key" {

    algorithm hmac-md5;

    secret "Up6SyTYQGYQBech+w4cneA==";

}; //如果需要同步主从DNS,需要这个key选项块

 

controls {

    inet 127.0.0.1 port 953

    allow { 127.0.0.1; } keys { "rndc-key"; };

 };//从rndc.conf中复制即可


logging{

        channel query_log {

        file "/var/log/named/query.log" versions 5 size 10m;   

        severity info;

        print-time yes;

        print-severity yes;

        print-category yes;

  };

    category queries {

        query_log;

  };

}; //定义了查询日志的文件名称为query.log ,每个日志大小为10MB,达到这个容量后,自动轮询


zone "." IN {

        type hint;

        file "named.ca";

};


zone "localhost" IN {

        type master;

        file "localhost.zone";

        allow-update { none; };

};


zone "0.0.127.in-addr.arpa" IN {

        type master;

        file "named.local";

        allow-update { none; };

};


zone "test.cn" IN {

        type master;

        file "test.cn.zone";

        allow-update { none; };

};

//区纪录模块

       第三步:写区数据文件
     根域区数据文件:通过dig >/var/named/named.ca产生
     区数据文件:localhost.zone  named.local  test.cn.zone
   示例:

 

正解zone文件---------------------------------------------------------------------------------------
$TTL     1D   //表示缓存时间为1天 (其他单位:周W、小时H、分钟M、不写表示秒、设0表示不缓存)
@           IN  SOA   ns2.bindns.cn.    webmaster.bindns.cn.(  
        //因为@在文件中有特殊意义所以webmaster@bindns.cn改为webmaster.bindns.cn
                2008052620       //domain区文件信息版本号(文件修改后将其值加1)格式为20080526为年月日,20为版本号
                3600                   //辅助域名服务多长时间更新数据
                600                     //若辅助域名服务器更新失败后600s再试
                1209600             //从DNS可对外提供域名服务的有效期为1209600s
                600                     //若资源记录里没有设置TTL值,则以这里为准
                )
                3600         IN     NS           ns1.bindns.cn.
                3600         IN     NS           ns2.bindns.cn.  //表明我们有两个dns服务器可用
cdn         3600         IN     A              220.202.19.82  //地址记录
www      3600           IN     CNAME     cdn.bindns.cn.  //别名记录
mail        3600         IN     MX     5      sohu.com.     //邮件记录


反解zone文件---------------------------------------------------------------------------------------
$TTL     1D
@           IN  SOA   ns2.bindns.cn.    webmaster.bindns.cn.(
                2008051813
         3600
                600
                1209600
                600
                )
                3600         IN     NS           ns1.bindns.cn.
                3600         IN     NS           ns2.bindns.cn.
82         IN     PTR        ns1.bindns.cn.    //反向解析记录
87         IN     PTR        ns2.bindns.cn.
89         IN     PTR        ns3.bindns.cn.
91         IN     PTR        ns4.bindns.cn.

       注意:用的时候把注释都去掉,我担心会出错,一般注释都是以;开头
                  第一个字段前面不能有空格,否则会报错
       第四步:启动和测试
       先检查配置文件的语法错误:named-checkconf   可以检查named.conf文件
                                                     named-checkzone 可以检查区数据文件
       启动bind服务 /usr/local/named/sbin/named  如果named.conf 不在etc下,加-c选项即可
       测试: netstat -an | grep ":53"
                  查看在 /var/named/ 目录 下是否有query.log 文件
                  查看系统日志
                  检查防火墙是否关闭与dns服务相关的端口 iptables -L -n
                  然后在另外一台主机上,把域名服务器的地址指向本机,执行ping 域名的命令
                  具体测试根据配置文件来进行。
  完毕 !