CentOS部署主从DNS服务器

几个概念:

域名解析为IP地址:正向解析

IP地址解析为域名:反向解析

主DNS服务器:在特定区域内具有唯一性,负责维护该区域内的域名和IP地址之间的对应关系。

从DNS服务器:从服务器中获得域名和IP地址对应关系并进行维护,以防主服务器宕机的情况。

BIND(Berkeley Internet Name Domain,伯克利因特网名称域)服务是全球范围内使用最广泛、最安全可靠且高效的域名解析服务程序。

主机名称主机IP地址备注
bind1192.168.17.117DNS主服务器
bind2192.168.17.118DNS从服务器

主DNS服务器的配置:

1、安装bind服务程序:

yum install -y bind bind-utils

2、修改主配置文件/etc/named.conf:

[root@bind1 named]# cat /etc/named.conf
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

options {
        listen-on port 53 { any; };
        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";
        recursing-file  "/var/named/data/named.recursing";
        secroots-file   "/var/named/data/named.secroots";
        allow-query     { any; };

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.root.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";
};

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";

也就是修改两个any的位置: 

 3、然后我们再修改区域配置文件/etc/named.rfc1912.zones:  该文件是用来保存域名和IP地址对应关系的所在位置。

我这边更改了这两个地方。

4、然后使用cp -p命令复制named.localhost模板文件生成chang.com文件:

cp -p /var/named/named.localhost /var/named/chang.com

-p参数或者-a参数是保留文件权限,这是为了让bind服务程序顺利读取到文件内容。

5、编辑chang.com数据配置文件中:

 这是正向解析的配置内容。

6、我们再cp -p命令复制named.loopbackup模板文件生成117文件。

为什么是117文件呢?我们参考下上面的区域配置文件。

cp -p /var/named/named.loopbackup /var/named/117

7、我们修改反向解析的117数据配置文件:

说明:这个时候需要注意的是:域名后面有一个点。

8、然后执行启动named命令和开机自启动。

systemctl restart named
systemctl enable named

配置正确,启动正常。如果启动不了,需要检查配置是否正确,遇到问题也不要慌,通过百度或者CSDN可以查到问题排查的方法的。

9、测试:

这样,就说明我们的主服务器配置成功。

从DNS服务器的配置:

1、安装Bind服务:

yum install -y bind bind-utils

2、修改主配置文件/etc/named.conf:

这边的配置跟主服务器一样。

3、修改区域配置文件/etc/named.rfc1912.zones:

注意点:从服务器,所以是slave,同时需要增加masters的IP地址的配置,注意形式不要写错。

数据配置文件,其实配置了masters了信息之后,应该同步过来了。

4、然后执行启动named命令和开机自启动。

systemctl restart named.service
systemctl enable named.service

5、然后我们使用nslookup进行下测试,就是使用从DNS服务器作为域名解析服务器: