部署正向从DNS服务器

只有一台主DNS服务器,存在单点失败的问题,可以建立主DNS服务器的备份服务器,即从服务器来实现DNS服务的容错机制。从服务器可以自动和主服务器进行单向的数据同步,从而和主DNS服务器一样,也可以对外提供查询服务,但从服务器不提供数据更新服务。

1、DNS从服务器

  • 应该为一台独立的名称服务器
  • 主服务器的区域解析库文件中必须有一条NS记录指向从服务器
  • 从服务器只需要定义区域,而无须提供解析库文件;解析库文件应该放置于/var/named/slaves/目
    录中
  • 主服务器得允许从服务器作区域传送
  • 主从服务器时间应该同步,可通过ntp进行
  • bind程序的版本应该保持一致;否则,应该从高,主低

2、定义从区域

zone "ZONE_NAME" IN {
 type slave;
 masters { MASTER_IP; };
 file "slaves/ZONE_NAME.zone";
};

3、部署从服务器

3.1、实现目的

搭建DNS主从服务器架构,实现DNS服务冗余

3.2、环境要求

web服务器:192.168.1.10
DNS客户端:192.168.1.11
DNS服务端01:192.168.1.12
DNS服务端02:192.168.1.13

3.3、前提准备

关闭SElinux
关闭防火墙
时间同步

3.4、部署步骤

# 主服务器配置
[root@dns01 ~]# yum install -y bind bind-utils

[root@dns01 ~]# vim /etc/named.conf
#注释掉下面两行
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
#只允许从服务器进行区域传输
allow-transfer { 192.168.1.13;};

[root@dns01 ~]# vim /etc/named.rfc1912.zones
#加上这段
zone "test.com" IN {
        type master;
        file "test.com.zone";
};

[root@dns01 ~]# cp -p /var/named/named.localhost /var/named/test.com.zone
[root@dns01 ~]# vim /var/named/test.com.zone
$TTL 1D
@       IN SOA  master admin.test.com. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
        NS      slave
master  A       192.168.1.12
slave   A       192.168.1.13
www     A       192.168.1.10

[root@dns01 ~]# systemctl enable --now named.service
[root@dns01 ~]# rndc reload
server reload successful
# 从服务器配置
[root@dns02 ~]# yum install -y bind bind-utils
[root@dns02 ~]# systemctl enable --now named.service


[root@dns02 ~]# vim /etc/named.conf
// listen-on port 53 { 127.0.0.1; };
// allow-query     { localhost; };
#不允许其它主机进行区域传输
   allow-transfer { none;};

[root@dns02 ~]# vim /etc/named.rfc1912.zones
zone "test.com" IN {
        type slave;
        masters { 192.168.1.12; };
        file "slaves/test.com.slave";
};

[root@dns02 ~]# rndc reload
server reload successful
# 测试dns是否正常
[root@client01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DNS1="192.168.1.12"
DNS2="192.168.1.13"
[root@client01 ~]# systemctl restart network
[root@client01 ~]# curl http://www.test.com
hello

[root@client01 ~]# nslookup www.test.com
Server:		192.168.1.12
Address:	192.168.1.12#53

Name:	www.test.com
Address: 192.168.1.10


# 测试是否冗余
# 在主DNS上停止服务
[root@dns01 ~]# systemctl stop named.service

# 再次测试
[root@client01 ~]# curl http://www.test.com
hello
[root@client01 ~]# nslookup www.test.com
Server:		192.168.1.13
Address:	192.168.1.13#53

Name:	www.test.com
Address: 192.168.1.10


# 测试是否实时同步
# 在主DNS上启用服务
[root@dns01 ~]# systemctl start named.service

# 修改zone配置文件
[root@dns01 ~]# vim /var/named/test.com.zone
$TTL 1D
@       IN SOA  master admin.test.com. (
                                        1       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      master
        NS      slave
master  A       192.168.1.12
slave   A       192.168.1.13
www     A       192.168.1.10
www1    A       192.168.1.10

[root@dns01 ~]# rndc reload
server reload successful

# 在从服务器上查看配置
[root@dns02 slaves]# cat test.com.slave
$ORIGIN .
$TTL 86400	; 1 day
test.com		IN SOA	master.test.com. admin.test.com. (
				1          ; serial
				86400      ; refresh (1 day)
				3600       ; retry (1 hour)
				604800     ; expire (1 week)
				10800      ; minimum (3 hours)
				)
			NS	master.test.com.
			NS	slave.test.com.
$ORIGIN test.com.
master			A	192.168.1.12
slave			A	192.168.1.13
www			A	192.168.1.10
www1			A	192.168.1.10

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享