只有一台主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