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

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

上一篇文章中介绍了Ubuntu系统缓存转发DNS服务器的配置,不过有时可能还需要我们自己搭建一个私有DNS服务器。例如一个或多个项目的多台服务器之间,通信地址可能需要配置成统一的域名地址,解析记录可能需要私有IP地址等。使用域名而不是IP的方式,可以很好的管理服务器和项目中的配置,减少维护成本和风险。

Ubuntu系统试了下,12.04,14.04和16.04应该都没什么问题,配置一样。

准备

准备两台server,一台主DNS服务器,一台备份DNS服务器。

ns1:192.168.140.129

ns2:192.168.140.135

步骤

安装和配置步骤参考前面缓存和转发DNS服务器的配置。

主DNS服务器

1、安装

登录server服务器,运行apt-get命令安装。

apt-get update
apt-get install bind9 bind9utils bind9-doc

进程named,配置文件目录为/etc/bind ,监听在TCP和UDP的53端口。

2、关闭IPv6

一般现在bind工作在ipv4环境居多,所以先把ipv6监听的地址关了。

vi /etc/default/bind9

OPTIONS中增加-4选项,例如:OPTIONS=”-u bind -4″。

3、配置缓存转发

打开/etc/bind/named.conf.options目录,修改后如下。

acl goodclients {
        192.168.140.0/24;
        localhost;
        localnets;
};

options {
        directory "/var/cache/bind";
        listen-on { 192.168.140.129;};
        listen-on-v6 { none; };

        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035

        recursion yes ;
        allow-query { goodclients;};
        allow-transfer { none; }; # disable zone transfers by default

        forwarders {
                223.5.5.5;
                223.6.6.6;
        };
        forward only ;

};

4、配置local文件

named.conf.local 文件默认是空的。本文在配置文件中分别定义一条正向解析和一条反向解析。配置文件修改后类似如下。

root@ubuntu:/etc/bind# less named.conf.local 
zone "sijitao.net" {
        type master;
        file "/etc/bind/zones/zone.sijitao.net";
        allow-transfer { 192.168.140.135; };
};

zone "1.1.1.in-addr.arpa" {
        type master;
        file "/etc/bind/zones/zone.1.1.1";
        allow-transfer { 192.168.140.135; };
};

这里我们把zone解析数据文件放在了/etc/bind/zones目录中,如果没有该目录需要手工创建。

5、定义区域配置文件

配置文件定义后类似如下,分别是正向和反向两个解析记录。按照自己需求修改相应的区域和区域解析记录,IP等信息。
正向记录

root@ubuntu:/etc/bind# cat /etc/bind/zones/zone.sijitao.net 
$TTL    600
@       IN      SOA     ns1.sijitao.net. admin.sijitao.net. (
                        4               ; Serial
                        1H              ; Refresh
                        5M              ; Retry
                        1D              ; Expire
                        6H )            ; Negative Cache TTL
;name servers
@       IN      NS      ns1.sijitao.net.
@       IN      NS      ns2.sijitao.net.

;ns records
ns1.sijitao.net.  IN      A       192.168.140.129
ns2.sijitao.net.  IN      A       192.168.140.135

;host records
blog.nbhao.org.  IN      A       1.1.1.1

反向记录

root@ubuntu:/etc/bind# cat /etc/bind/zones/zone.1.1.1
$TTL    600
@       IN      SOA     ns1.sijitao.net. admin.sijitao.net. (
                        4               ; Serial
                        1H              ; Refresh
                        5M              ; Retry
                        1D              ; Expire
                        6H )            ; Negative Cache TTL

@       IN      NS      ns1.sijitao.net.
@       IN      NS      ns2.sijitao.net.


1       IN      PTR     blog.nbhao.org.

6、检查配置、重启

root@ubuntu:/etc/bind# named-checkconf
root@ubuntu:/etc/bind# named-checkzone sijitao.net /etc/bind/zones/zone.sijitao.net 
zone sijitao.net/IN: loaded serial 4
OK
root@ubuntu:/etc/bind# named-checkzone 1.1.1.in-addr.arpa /etc/bind/zones/zone.1.1.1 
zone 1.1.1.in-addr.arpa/IN: loaded serial 4
OK

分别检查了语法和区域配置文件,没有报错。重启bind服务。

service bind9 restart

到这里主DNS服务器的配置就完成了,可以使用dig命令测试。

备DNS服务器

1、安装

备份服务器的安装配置和主DNS步骤中的1、2、3一样,具体步骤参考上面即可。唯一需要修改的是/etc/bind/named.conf.options中listen-on为备份服务器的IP 。

2、配置local文件

local中指定区域数据文件一样需要配置,不过和主区别的是不需要手动创建,配置时指定类型为slave即可。

root@ubuntu:/var/cache/bind/slaves# less /etc/bind/named.conf.local 
zone "sijitao.net" {
        type slave;
        file "slaves/zone.sijitao.net";
        masters { 192.168.140.129; };
};

zone "1.1.1.in-addr.arpa" {
        type slave;
        file "slaves/zone.1.1.1";
        masters { 192.168.140.129; };
};

数据会在bind启动后从主DNS服务器上同步过来,同步目录为/var/cache/bind/slaves,如果没有该目录需要手动创建,注意目录的属主和属组必须都为bind 。/var/cache/bind目录在named.conf.options的directory中定义。

3、检查重启

named-checkconf
service bind9 restart

重启后可以看到zone文件都已经在/var/cache/bind/slaves自动创建。这样备份DNS服务器就配置好了。

DNS维护

主备DNS服务器配置好后,只需要修改客户端服务器上的resolv.conf配置为以上两个地址就可以正常解析。

如果DNS解析记录需要修改,在主DNS服务器上修改类似如上的zone.sijitao.net和zone.1.1.1配置文件。重要的还需要修改其中SOA记录中Serial的值,一般修改一次增加1。不然主的DNS记录不会同步到备份服务器上。

20161118145820

让记录生效重新bind服务,不需要重启服务。

service bind9 reload

总结,生产环境上建议至少需要两台DNS服务器,不然域名解析出问题麻烦就大了。

DNS服务器相关

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

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

联系我们

0574-55011290

QQ:248687950

邮件:admin@nbhao.org

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

QR code