参考文档: https://www.cnblogs.com/sandshell/p/11673658.html#autoid-7-3-0

要求

  1. 使用内部解析
  2. 内部解析如果失败,使用公网解析
  3. dns 集群使用

环境

  • 系统版本:Centos 7.3
  • 192.168.112.231(主DNS)
  • 192.168.112.9(从DNS)
  • 192.168.112.58(测试客户端)

安装配置

安装

yum install bind bind-utils -y

服务程序的配置文件

  • 主程序 /usr/sbin/named
  • 主配置文件 /etc/named.conf
  • 区域配置文件 /etc/named.rfc1912.zones

修改主配置文件

listen-on port 53 { 127.0.0.1; }; #IP地址修改为本机内网地址,如果要监听全部ip,可以修改为any
allow-query { localhost; };       #localhost修改为any,表示允许任何主机查询,

正向解析

  1. 在配置文件/etc/named.rfc1912.zones最下面追加如下内容(linuxkai.com是你自己的域名,当然别的名字也可以,要和下一步的名称对应即可)
zone "linuxkai.com" IN {
        type master;
        file "linuxkai.com.zone";
        allow-update { none; };
};
  1. 复制/var/named/named.localhostlinuxkai.com.zone
 cd /var/named/
cp named.localhost linuxkai.com.zone
chown root.named linuxkai.com.zone

linuxkai.com.zone内容如下,最下面可以根据自己需求添加解析记录

$TTL 1D
@	IN SOA	@ linuxkai.com. (
					0	; serial
					1D	; refresh
					1H	; retry
					1W	; expire
					3H )	; minimum
        NS      ns.linuxkai.com.
ns      IN A	192.168.112.231
ns1     IN A 	192.168.112.9
ci      IN A 	192.168.112.142
  1. 重启named
systemctl restart named
  1. 测试解析 修改测试机的dns,把我们自己的dns server放在最前面
# Generated by NetworkManager
nameserver 192.168.112.231
nameserver 223.6.6.6
search localdomain

使用nslookup查看解析结果

[root@test-prometheus-server ~]# nslookup ci.linuxkai.com
Server:		192.168.112.231
Address:	192.168.112.231#53

Name:	ci.linuxkai.com
Address: 192.168.112.142

配置转发服务器(经测试还有些疑问,暂时放一下,往下走)

/etc/named.conf配置如下参数

allow-query     { any; };
forwarders      {114.114.114.114;180.76.76.76;};

主从复制配置(除了zone部分,其它部分参考上面的配置)

  1. 主配置文件
zone "linuxkai.com" IN {
        type master;
        file "linuxkai.com.zone";
        masterfile-format text;
        allow-update {none;};
        allow-transfer {192.168.112.9;};
        notify yes;
        also-notify {192.168.112.9;};
};
  1. 从配置文件
zone "linuxkai.com" IN {
        type slave;
        masters { 192.168.112.231; };
        file "linuxkai.com.zone";
        masterfile-format text;
};

注:从DNS不需要配置域名解析/var/named/linuxkai.com.zone为主域名更新后,执行修改serial +1后,在执行命令rndc reload后,从DNS对应域名配置文件/var/named/linuxkai.com.zone就会自动同步。 3. 验证主从复制 编辑文件/var/named/lakala.com.zone a. serial 号+1 b. 添加一条新的解析记录

cd      IN A    192.168.111.65

c. 主DNS执行同步命令,如下代表成功

[root@192-168-112-231 etc]# rndc reload
server reload successful

d. 查看从的配置上已经有了新记录了

增加域名配置

a. 主配置文件添加域名区域配置

zone "chk.com" IN {
        type master;
        file "chk.com.zone";
        masterfile-format text;
        allow-update {none;};
        allow-transfer {192.168.112.9;};
        notify yes;
        also-notify {192.168.112.9;};
};

b. 添加域名解析/var/named/chk.com.zone

[root@szxlkl01-dns-98 ~]# cat /var/named/chk.com.zone 
$TTL 1D
$ORIGIN chk.com.
@       IN SOA  ns.linuxkai.com. root.localhost. (
11       ; serial
1D      ; refresh
1H      ; retry
1W      ; expire
3H     ; minimum
)
@                       IN      NS              ns1.linuxkai.com.
@                       IN      NS              ns2.linuxkai.com.
ns1                     IN      A               192.168.112.231
ns2                     IN      A               192.168.112.9

; vuat environment
test1    IN A    192.168.111.77

c. 给文件/var/named/chk.com.zone授权,让named用户有读权限

chown root.named /var/named/chk.com.zone

d. 从DNS配置添加域名区域

zone "chk.com" IN {
        type slave;
        masters { 192.168.112.231; };
        file "chk.com.zone";
        masterfile-format text;
};

e. 从dns不需要配置域名解析(不需要添加文件/var/named/chk.com.zone) f. 主DNS机器上重启named

systemctl restart named

注:新添加域名区域配置,主从必须重启,不然配置文件不生效,无法同步