1. 首页
  2. 系统运维
  3. Linux

CentOS 7 安装bind和配置私有主备DNS服务器步骤

DNS服务器的作用不多说,是计算机网络中的基础服务。如果我们的局域网内设备比较多,那么可以配置私有DNS,使用设备名或域名代替IP地址,方便记忆和定制。

之前博主有介绍过Ubuntu系统中的DNS安装配置,需要的可以参考这两篇文章。

1、使用Bind在Ubuntu上搭建缓存或转发DNS服务器

2、Ubuntu系统Bind搭建配置私有、主备DNS服务器

下面就在CentOS 7下做安装和测试,配置其实都差不多。

环境

ns1:172.16.10.128

ns2:172.16.10.129

client:172.16.10.130

安装

在ns1和ns2中分别安装bind,使用yum方式安装即可。

yum install bind bind-utils
systemctl enable named

配置

定义ns1为主DNS服务,也就是master,ns2为slave备份。

主DNS

centos中的bind配置文件基本都是named。Bind配置文件的结构:

主程序 /usr/sbin/named
主配置文件 /etc/named.conf
区域配置文件 /etc/named.rfc1912.zones
zone文件的默认路径 /var/named

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

1、关闭ipv6
在 options 块中修改ipv6配置:

listen-on-v6 { none; };

在 /etc/sysconfig/named 文件末尾添加如下内容:

OPTIONS="-4"

2、创建ACL

在 options 块前面,创建一个 ACL(Access Control List) 块,名称为 “trusted”。我们使用这个控制局域网内哪些计算机可以使用我们这个域名服务进行递归域名查询。

例如:

acl "trusted" {
        172.16.10.0/24;
        192.168.10.0/24;
        192.168.1.0/24;
        localhost;
        localnets;
};

修改 options 块中的allow-query为:

allow-query     { trusted; };

3、配置可信任的slave地址

allow-transfer { 172.16.10.129; };

最后 /etc/named.conf 类似如下:

acl "trusted" {
        172.16.10.0/24;
        192.168.10.0/24;
        192.168.1.0/24;
        localhost;
        localnets;
};

options {
        listen-on port 53 { 192.168.10.244; 172.16.10.128; };  //定义bind的监听IP地址(IPv4)
        listen-on-v6 { none; };  //定义bind的监听IP地址(IPv6)
        directory       "/var/named";  //zone文件的默认路径
        dump-file       "/var/named/data/cache_dump.db";  //cache的备份
        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-transfer { 172.16.10.129; };
        allow-query     { trusted; };  //允许谁向此DNS进行查询

        recursion yes;  //允许递归查询

        dnssec-enable yes;
        dnssec-validation yes;

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

4、添加本地zone配置

我们将本地配置都放到 /etc/named 文件夹下,在这个配置中指定正向和反向的域。然后在 /etc/named.conf 末尾增加这样一行。

include "/etc/named/named.conf.local";

创建 /etc/named/named.conf.local 文件,内容类似如下:

[root@master named]# cat /etc/named/named.conf.local
zone "local.blog.nbqykj.cn" {
        type master;
        file "/etc/named/zones/db.local.blog.nbqykj.cn"; // 正向域配置
};

zone "10.16.172.in-addr.arpa" {
        type master;
        file "/etc/named/zones/zone.172.16.10";  //反向域配置
};

这个配置创建了一个 local.blog.nbqykj.cn 的网络,如果有多个域,那么按照这个格式创建多个就可以。

5、正向域

这个配置文件定义正常查找,例如我们输入 blog.nbqykj.cn 域名,dns服务器就会帮忙找到对应的IP地址。

mkdir /etc/named/zones
chown -R named.named /etc/named/zones

配置举例:

[root@master named]# cat /etc/named/zones/db.local.blog.nbqykj.cn      
$TTL    60
@       IN      SOA     ns1.local.blog.nbqykj.cn. admin.local.blog.nbqykj.cn. (
                        4               ; Serial
                        1H              ; Refresh
                        5M              ; Retry
                        1D              ; Expire
                        6H )            ; Negative Cache TTL
;name servers
@       IN      NS      ns1.local.blog.nbqykj.cn.
@       IN      NS      ns2.local.blog.nbqykj.cn.

;ns records
ns1.local.blog.nbqykj.cn.  IN      A       172.16.10.128
ns2.local.blog.nbqykj.cn.  IN      A       172.16.10.129

;host records
blog.local.blog.nbqykj.cn.  IN      A      172.16.10.130

6、反向域

反向域主要是DNS中的PTR记录的查找,也就是通过IP查询域名。

配置举例:

$TTL    60
@       IN      SOA     ns1.local.blog.nbqykj.cn. admin.local.blog.nbqykj.cn. (
                        4               ; Serial
                        1H              ; Refresh
                        5M              ; Retry
                        1D              ; Expire
                        6H )            ; Negative Cache TTL

@       IN      NS      ns1.local.blog.nbqykj.cn.
@       IN      NS      ns2.local.blog.nbqykj.cn.


130       IN      PTR     blog.local.blog.nbqykj.cn.

注意修改正向域和反向域中soa中的域名为自己的域名。

7、启动测试

systemctl start named

centos_bind_test_blog.local.blog.nbqykj.cn

备DNS

备DNS配置相对来说比主的简单,当主DNS无法提供服务的时候,备DNS也可以提供响应。所以一般我们的客户端上都会配置至少2个NS服务器。

备DNS服务的安装和主配置文件基本一样,只需要修改本地zone配置文件。例如:

[root@slave1 ~]# cat /etc/named/named.conf.local 
zone "local.blog.nbqykj.cn" {
        type slave;
        file "slaves/db.local.blog.nbqykj.cn";
        masters { 172.16.10.128; };
};

zone "10.16.172.in-addr.arpa" {
        type slave;
        file "slaves/zone.172.16.10";
        masters { 172.16.10.128; };
};

启动测试

如果没有报错启动正常后可以看到 /var/named/slaves 目录中已经有我们上面定义的域配置文件,解析正常。

centos_bind_test_slave

centos_bind_test_slave_blog.local.blog.nbqykj.cn

最后如果需要更改记录,在主的DNS服务器中修改完域配置文件后,还需要记录修改soa中的serial,否则备dns服务器不会生效。

参考:

http://blog.nbqykj.cn/?p=2524.html

http://blog.nbqykj.cn/?p=2520.html

2 评论
内联反馈
查看所有评论
夏日博客
4 年 前

一直在用 CentOS 6 版本。

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

工作时间:周一至周五,9:00-18:00,节假日休息

QR code