以百度百科中的DNS开篇:DNS 是域名系统 (Domain Name Service) 的缩写,是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。

     提供DNS服务的软件叫Bind,要搭建DNS服务首先得安装Bind,将本地光盘挂载好并用其提供yum源,直接yum -y install bind,bind-utils和bind-libs一般系统自带。

     在主DNS Server[192.168.12.13]上的配置:

1. 主配置文件的修改:

[root@Domain01 ~]# vim /etc/named.conf  #DNS的主配置文件
options {
//      listen-on port 53 { 127.0.0.1; };  #用//注释掉此行
//      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     { localhost; };    #用//注释掉此行
        recursion yes;
        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
        managed-keys-directory "/var/named/dynamic";
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "." IN {
        type hint;
        file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";


2.添加zone信息:

用vim打开/etc/named.rfc1912.zones(也可以直接在主配置文件添加,依个人喜好),然后在后面添加自己zone信息,

vim /etc/named.rfc1912.zones
zone "anoldboy.com" IN {
        type master;
        file "anoldboy.com.zone";
        allow-transfer { 192.168.12.14; }; #限制只有辅助DNS可以同步区域文件
};
zone "12.168.192.in-addr.arpa" IN {
        type master;
        file "192.168.12.zone";
        allow-transfer { 192.168.12.14; }; #限制只有辅助DNS可以同步区域文件
};

建议配置完成后用:named-checkconf测试,如果没有报错证明配置正确.    


3.zone文件配置:

正向解析区域配置:

[root@Domain01 ~]# vim /var/named/anoldboy.com.zone
$TTL    600  #定义TTL
@       IN      SOA     anoldboy.com.  root.anoldboy.com. (
                2014022101;#serial number
                2H;        #刷新时间
                2M;        #无响应状态等待时间
                2D;        #放弃解析时间
                7D;        #否定回答缓存时间
)
        IN      NS      dns
        IN      MX  10  mail  #一定要记得加优先级
        IN      NS      ns2
dns     IN      A       192.168.12.13
mail    IN      A       192.168.12.6
ns2     IN      A       192.168.12.14
www     IN      A       192.168.12.3
ftp     IN      CNAME   www

建议配置完成后用:named-checkzone "区域名称" 区域配置文件[绝对路径]

   如:named-checkzone "anoldboy.com" /var/named/anoldboy.com.zone 进行测试,返回Ok则表明配置正确。


反向解析区域配置:


$TTL    600
@       IN      SOA     anoldboy.com.   root.anoldboy.com. (
                2014022101;
                2H;
                2M;
                2D;
                7D;
)
        IN      NS      dns.anoldboy.com. #不可省略anoldboy.com.
        IN      NS      ns2.anoldboy.com. #否则系统会默认添加成
13      IN      PTR     dns.anoldboy.com. #12.168.192.in-addr.arpa
6       IN      PTR     mail.anoldboy.com.
14      IN      PTR     ns2.anoldboy.com.
3       IN      PTR     www.anoldboy.com.
3       IN      PTR     ftp.anoldboy.com.
~


建议配置完成后用:named-checkzone "区域名称" 区域配置文件[绝对路径]

   如:named-checkzone "12.168.192.in-addr.arpa" /var/named/192.168.12.zone 进行测试,返回Ok则表明配置正确。

   PS:所有的配置文件属主为root,属组为named。

4.启动named服务,并将其加入开机启动:

root@Domain01 ~]# service named start
[root@Domain01 ~]# chkconfig named on

第一次启动时可能会卡在Generating /etc/rndc.key:上很长时间,因系统随机数不够导致,等待一会即可。

或者可以执行:rndc-confgen -r /dev/urandom -a

然后再重启DNS服务。


至此一个简单的DNS服务已经搭建完成。