CentOS系统上配置DNS服务器,首先安装DNS服务所需的软件包,我们通过yum来安装,先查询是否装了相应的软件包。
[root@localhost]# rpm -qa |grep bind
bind-libs-9.3.6-16.P1.el5
ypbind-1.19-12.el5
bind -utils-9.3.6-16.P1.el5
bind主程序没有安装, 我们安装他
[root@localhost]# yum -y install bind
[root@localhost]# yum -y install bind-chroot
[root@localhost]# yum -y install caching-nameserver
上面命令也可以写在一起:
[root@localhost]# yum -y install bind bind-chroot caching-nameserver
DNS的主配置文件为named.conf,路径默认在/etc下,但是我们装了chroot这个软件包,为了安全性他会把目录改到/var/named/chroot/etc下。我们进入到这个目录
[root@localhost]# cd /var/named/chroot/etc
这里没有配置文件,我们拷贝一份例子。
[root@localhost]#cp -p /usr/share/doc/bind-9.3.6/sample/etc/named.conf  /var/named/chroot/etc/named.conf
编辑named.conf主配置文件
[root@localhost etc]# vim named.conf
options
{
    listen-on port 53{any;};//服务器监听的端口和地址,any表示任意。
    directory "/var/named";//区域配置文件路径
    dump-file "/var/named/data/cache_dump.db";//指定暂存资料记录到哪个档案 。
    statistics-file "/var/named/data/named_stats.txt";// DNS的统计资料案   
    pid-file "/var/run/named/named.pid"; //这个程序的PID记录下来的一个档案
    memstatistics-file "/var/named/data/name_mem_stats.txt";//内存统计文件
    allow-query {any;};//允许任何主机的查询。
    notify yes;
    recursion yes;//允许递归查询。
};
include "/etc/rndc.key";
zone"."{
                  type hint;
                  file "named.ca";
            };
zone"fly.com"{
                  type master;
                  file "fly.com.zone";
                  allow-transfer{192.168.33.2;};
                  allow-update{none;};
               };
zone"33.168.192.in.addr.arpa"{
                  type master;
                  file "192.168.33.arpa.zone";
                  allow-transfer {192.168.33.2;};
                  allow-update{none;};
                 };
给予相关权限
[root@localhost etc]# chmod  755  named.conf
检查是否有语法错误
[root@localhost etc]# named-checkconf  /var/named/chroot/etc/named.conf
 
配置区域数据文件
[root@localhost named]#vim  /var/named/chroot/var/named/fly.com.zone
 
$TTL 86400
@      IN     SOA     ns1.fly.com.      admin .fly.com.(
2011052008 //Serial
4H                 //Refresh
15M              //Retry
1W                //Exprise
1D                 //Minimum TTL
)
@      IN      NS              ns1.fly.com.
@      IN      NS              ns2.fly.com.
@      IN      MX      10   mail
 
 
ns1    IN    A    192.168.33.1
ns2    IN    A    192.168.33.2
www    IN    A    192.168.33.1
mai    IN    A    192.168.33.1
ftp    IN    A    192.168.33.1
web    IN    CNAME    www
 
保存
设置相关权限
[root@localhost etc]#chown named.root fly.com.zone
[root@localhost etc]#chmod 755 fly.com.zone
 
新建反向解析文件
 
[root@localhost etc]#vim  /var/named/chroot/var/named/192.168.33.arpa.zone
$TTL 86400
@        IN       SOA       ns1.fly.com.        admin .fly.com.(
2011052008
4H
15M
1W
1D
)
@    IN    NS    ns1.fly.com.
1    IN    PTR     ns1.fly.com.
2    IN    PTR    ns2.fly.com.
 保存
设置相关权限
[root@localhost etc]#chown named.root 192.168.33.arpa.zone
[root@localhost etc]#chmod 755 fly.192.168.33.arpa.zone
设置本机IP为192.168.33.1/24,编辑/etc/resolv.conf文件添加DNS服务器
nameserver  192.168.33.1。一切ok,启动DNS服务
[root@localhost etc]# service named start
测试下结果:
[root@localhost etc]#ping  ns1.fly.com
DNS的基本配置就完成了
 
上面配的是主DNS服务器(Master),但一个域中通常有多个域名服务器负责解析,其他服务器为辅助域名服务器(Slave)。下面来做辅助DNS的配置。
配置辅助DNS服务器时并不需要创建区域数据文件,他会从主DNS获得区域数据文件,因此只需对named.conf做相应的配置即可。
 
[root@localhost etc]#vim  named.conf
options
{
    listen-on port 53{any;};
    directory "/var/named";
    dump-file "/var/named/data/cache_dump.db";
    statistics-file "/var/named/data/named_stats.txt";   
    pid-file "/var/run/named/named.pid"; 
    memstatistics-file "/var/named/data/name_mem_stats.txt";
    allow-query {any;};
    notify yes;
    recursion yes;
};
include "/etc/rndc.key";
zone"."{
                  type hint;
                  file "named.ca";
            };
zone"fly.com"{
                  type slave;//辅助
                  file "slave/fly.com.zone";
                  masters {192.168.33.1;};//主DNS服务器地址
               };
zone"33.168.192.in.addr.arpa"{
                   type slave;//辅助
          file "slave/192.168.33.arpa..zone";
          masters {192.168.33.1;};//主DNS服务器地址
                 };
给予相关权限
[root@localhost etc]# chmod  755  named.conf
我们启动DNS服务
[root@localhost etc]# service named start
修g改/etc/resolv.conf文件添加nameserver 192.168.33.2测试一下:[root@localhost etc]# ping ns1.fly.com
可以用[root@localhost etc]# tail /var/log/messages命令查看下DNS区域数据复制情况,如果失败很可能是主DNS的区域数据文件的权限问题。
可以修改:
[root@localhost etc]# chown named.root fly,com.zone
[root@localhost etc]# chmod 755 fly.com.zone
[root@localhost etc]# chown named.root 192.168.33.arpa.zone
[root@localhost etc]# chmod 755 192.168.33.arpa.zone
 
 
 区域委派,当一个域中有很多子域时可以把子域的解析委派给其他DNS服务器,称为DNS委派。我们接着上面的实验,把qin.fly.com子域委派出去。
主DNS的named.conf配置文件还是不变跟上面的一样,但是区域数据文件要做相应的修改。
 
$TTL 86400
@      IN     SOA     ns1.fly.com.      admin .fly.com.(
2011052008 //Serial
4H                 //Refresh
15M              //Retry
1W                //Exprise
1D                 //Minimum TTL
)
@      IN      NS              ns1.fly.com.
@      IN      NS              ns2.fly.com.
qin.fly.com.  NS              ns.qin.fly.com.  //负责委派的DNS主机
@      IN      MX      10   mail
 
ns.qin.fly.com.    IN      A     192.168.33.3  //委派DNS地址
ns1    IN    A    192.168.33.1
ns2    IN    A    192.168.33.2
www    IN    A    192.168.33.1
mai    IN    A    192.168.33.1
ftp    IN    A    192.168.33.1
web    IN    CNAME    www
 

反向配置文件:

$TTL 86400
@        IN       SOA       ns1.fly.com.        admin .fly.com.(
2011052008
4H
15M
1W
1D
)
@    IN    NS    ns1.fly.com.
1    IN    PTR     ns1.fly.com.
2    IN    PTR    ns2.fly.com.
3    IN    PTR    ns.qin.fly.com    //添加反向记录