在CentOS/RedHat中使用bind搭建主域名服务器

在CentOS/RedHat中使用bind搭建主域名服务器,记录一下。

1,安装必要软件

yum install bind bind-utils bind-chroot caching-nameserver -y

其中,bind是主程序,bind-utils提供测试工具(如nslookup等),bind-chroot提供伪装目录增强安全性,caching-nameserver是作为缓存域名服务器的。
安装完成以后,bind在系统中的服务名为named,可以通过以下方式来启动服务:

service named start
或者 /etc/init.d/named start

2,配置
因为安装了bind-chroot,故named的主配置文件位于/var/named/chroot/etc/,但目前没有配置文件,需要手动创建一个

[[email protected] etc]# cd /var/named/chroot/etc/   //进入配置目录
[[email protected] etc]# cp -p named.caching-nameserver.conf named.conf
                                 //手动创建配置文件,参数p表示复制过来以后属主不会变化
[[email protected] etc]# vi named.conf          //编辑named.conf文件

去掉注释,去掉ipv6,甚至可以去掉日志那一段,把127.0.0.1/localhost均改为any,然后添加域名记录,指定区域数据库文件(包含了正向解析和反向解析的数据库),最后的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";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        allow-query-cache { any; };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};
zone "baidu.com" IN {
        type master;
        file "baidu.com.zone";
        allow-update { none;};
};
zone "8.8.8.in-addr.arpa" IN {
        type master;
        file "8.8.8.arpa";
        allow-update { none;};
};

编辑完成以后,可以用下面的命令测试语法正确与否:

[[email protected] etc]# named-checkconf named.conf
[[email protected] etc]#                   //没有任何返回值表明测试成功

3,编辑区域数据库文件
域名的区域数据库文件不在named.conf目录,而是位于/var/named/chroot/var/named/目录下
区域数据库文件有两个,根据第2步named.conf中的配置,一个是提供正向解析的baidu.com.zone文件,一个是反向解析的8.8.8.arpa文件。

首先是正向解析文件。如果你不知道文件的写法,也不用着急,named提供了一个样例。

[[email protected] named]# cd /var/named/chroot/var/named/    //进入目录
[[email protected] named]# cp -p localdomain.zone baidu.com.zone   
                                          //从样例复制一个正向解析文件
[[email protected] named]# vi baidu.com.zone       //编辑正向解析文件

我们可以试着为baidu.com添加几个二级域名,形成如下所示的格式:
$TTL    86400
@               IN SOA  localhost root (
                                        42              ; serial (d. adams)
                                        3H              ; refresh
                                        15M             ; retry
                                        1W              ; expiry
                                        1D )            ; minimum
                IN NS           localhost
www             IN A            8.8.8.10
ftp             IN A            8.8.8.20
mail            IN A            8.8.8.30

编辑完成以后,可以用如下named-checkzone命令检验语法的正确性:
[[email protected] named]# named-checkzone baidu.com baidu.com.zone
zone baidu.com/IN: loaded serial 42
OK

然后是反向解析文件,named同样提供了一个反向解析的样例:

[[email protected] named]# cp -p named.zero 8.8.8.arpa
[[email protected] named]# vi 8.8.8.arpa
向其中填写IP与域名的对应关系,注意每一个域名最后都有一个点,最终的反向解析文件内容:
$TTL    86400
@       IN      SOA     localhost. root.localhost.  (
                                      1997022700 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
        IN      NS      localhost.
1       IN      PTR     localhost.
10      IN      PTR     www.baidu.com.
20      IN      PTR     ftp.baidu.com.
30      IN      PTR     mail.baidu.com.

编辑完成同样可以用如下命令测试语法是否正确:
[[email protected] named]# named-checkzone baidu.com 8.8.8.arpa
zone baidu.com/IN: loaded serial 1997022700
OK

4,测试
经过前3步的设置,主域名服务器已搭建完成,接下来我们来测试一下

[[email protected] named]# service named restart    //重启服务
[[email protected] named]# vi /etc/resolv.conf      //把本机DNS设置为本机IP

[[email protected] named]# nslookup www.baidu.com    //测试正向解析
Server:         172.16.104.21
Address:        172.16.104.21#53

Name:   www.baidu.com
Address: 8.8.8.10
[[email protected] named]# nslookup 8.8.8.20        //测试反向解析
Server:         172.16.104.21
Address:        172.16.104.21#53

20.8.8.8.in-addr.arpa   name = ftp.baidu.com.

至此,主域名服务器已经搭建成功。

发表评论

您的电子邮箱地址不会被公开。