1、辅助dns
- DNS辅助服务器是一种容错设计,考虑的是一旦DNS主服务器出现故障或因负载太重无法及时响应客户机请求,辅助服务器将挺身而出为主服务器排忧解难。辅助服务器的区域数据都是从主服务器复制而来
- DNS服务器一般在用的时候,为了缓解服务器的压力,多使用一个主DNS服务器,多个副DNS服务器,这些DNS服务器就组成了一个 DNS集群 。
- 实验使用一个主dns以及一个副dns进行实验说明,一般需要多个副dns服务器
主dns配置:
vim /etc/named.conf
#编辑修改主配置文件
vim /etc/named.rfc1912.zones
#编辑修改域定义文件
vim /var/named/toto.com.zone
#编辑修改解析数据文件
systemctl restart named.service
#重新启动服务
systemctl stop firewalld.service
#关闭防火墙
副dns配置
yum install bind.x86_64 -y
#安装bind软件
systemctl start named.service
#启动服务
systemctl enable named.service
#设置服务开机自动启动
systemctl stop firewalld.service
#关闭防火墙
vim /etc/named.conf
#修改编辑主配置文件
vim /etc/named.rfc1912.zones
#编辑修改解析数据文件
systemctl restart named.service
# 重新启动服务
测试:客户端主机将其dns解析服务器的ip设置成副dns的ip,依然可以成功进行域名解析。
vim /etc/resolv.conf
dig www.toto.com
当主dns的数据发生改变的时候,会自动同步数据到副dns,但是在改变主dns的解析数据的时候,需要同时改变/var/named/toto.com.zone
文件中serial
的值,只有当serial的值发生改变,数据才会同步到副dns。
只修改主dns解析数据,不修改serial的值 数据不会同步
修改主dns解析数据同时修改serial的值, 数据同步。
2、dns远程更新
使用远程对主dns中的解析数据进行更新
对主dns进行设置:
vim /etc/named.rfc1912.zones
#编辑域名指定文件 指定该域名解析可以由谁来更新
chmod 777 /var/named/
#解析数据所在的目录需要权限 更新会生成新的文进
getenforce
#查看selinux状态 如果为强制 若是disabled 这不用下面设置
getsebool -a | grep named
#查看selinux对named服务的功能限制
named_tcp_bind_http_port --> off
named_write_master_zones --> off #修改主dns解析数据功能被关闭
setsebool -P named_write_master_zones on
#开启解析数据修改功能
systemctl stop firewalld.service
#关闭防火墙
systemctl restart named.service
#重新启动服务
使用指定可以更新解析数据的主机对主dns解析数据进行更新:
添加新的域名解析:
[root@localhost ~]# nsupdate #更新命令
> server 172.25.47.104 #指定需要更新的服务器ip
> update add ccc.toto.com 86400 A 111.111.111.115 #添加域名解析
> send #发送
> quit #退出
删除存在的域名解析:
[root@localhost ~]# nsupdate
> server 172.25.47.104
> update delete www.toto.com #删除该域名的解析
> send
> quit
在使用远程更新之后,主dns服务器中回生成 /var/named/toto.com.zone.jnl
文件,记录更新数据。同时接续数据文件内容在重启服务后也会改变
测试:
使用客户端主机 dig ccc.toto.com 显示解析出ip 更新添加成功
使用客户端主机 dig www.toto.com 显示不能解析到ip地址 更新删除成功。
3、远程加密更新
使用指定ip更新的方式,虽然可以对dns解析数据进行跟新,但是由于别的主机也可以将其ip设置成允许更新的ip,导致数据不安全,可以采用加密的方式进行远程更新。
dns服务器设置:
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST toto
#生成加密文件,过程中可能出现卡顿,需要在主服务器中晃动鼠标或者敲击键盘生成加密字符。
-a 加密方式 -b 加密字符长度 -n 加密用途
生成加密文件
cp -p /etc/rndc.key /etc/toto.key
#复制第一次启动服务时候生成的加密文件为加密更新要使用的加密文件
并将Ktoto.+157+01767.key 文件中的加密字符 写入到生成的加密文加secret中
vim /etc/named.conf #编辑主配置文件,包含生成的/etc/toto.key 文件
vim /etc/named.rfc1912.zones # 指定该域可以由拥有加密文件的主机进行更新
systemctl restart named.service #重新启动服务
将生成的加密文件 Ktoto.+157+01767.key
和 Ktoto.+157+01767.private
传送给对该dns集进行更新的主机。
scp Ktoto.+157+01767.* root@172.25.47.204:/mnt
远程主机中存在加密文件的时候可以对该dns数据进行更新。
[root@localhost mnt]# nsupdate -k Ktoto.+157+01767.private
> server 172.25.47.104
> update add ccc.toto.com 86400 A 111.111.111.115
> send
> quit
[root@localhost mnt]# nsupdate -k Ktoto.+157+01767.private
> server 172.25.47.104
> update delete www.toto.com
> send
> quit
[root@localhost mnt]# ls
Ktoto.+157+01767.key Ktoto.+157+01767.private
[root@localhost mnt]#
当远程主机中不存在加密文件的时候b不可以对该dns数据进行更新。