此实验是在上一篇博客的集群功能成功实现后的基础上进行的
修改主机名
将desktop主机修改为dns-master
hostnamectl set-hostname dns-master
将server主机修改为dns-slave
hostnamectl set-hostname dns-slave
分为两种
1.master向slave更新配置
在dns-master中手动修改配置文件
vim /etc/named/nelws.rfc1912.zones ##如下图,添加test域名
此时重启named服务,不会对dns-master上的dns文件信息更新,这时候就需要注意到上图中的serial了
serial最高可以十位数,一般格式为年-月-日-次数,例如2018112000,这表示2018年11月20号第0次修改,也就是说这个配置文件一天之内可以修改99次,而我们又不会频繁的更改dns,所以这99次时肯定够用的
这里只更改serial为1来进行实验
更改后重启服务
测试dns-master
测试dns-slave
总结:此种由master向slave的更新方法,只需要更改serial的值,然后重新启动named服务,若dns-slave没有收到更新,可以检查一下防火墙,一般是火墙开着,阻断了更新
2.slave向master更新配置
nsupdate
>server 172.25.254.155 ##要更新的主机
>update delete test.nelws.com ##delete为删除,若添加为 add + 域名 + 重新加载的时间(s为单位) + A +ip
>send
被拒绝了,这时候需要在dns-master修改配置,然后重新启动named服务
再次进行更新测试
服务失败,是因为我的selinux处于开启的状态
getsebool -a |grep named ##查看named相关的selinux默认设置
setsebool -P named_write_master_zones on ##开启对master的dns文件的写入开关
再次测试更新,依旧失败
查看dns-master的网络配置
这个问题之前出现过,按照之前的办法解决即可,如图,添加那个配置文件最后一行的内容
重启dns-master的网络,发现还是不行,查看报错如下
是dns-master的权限不够,故
chmod 770 /var/named
重新测试
ok了~
但是这种方式比较不安全,因为任何一个人都可以将ip改为172.25.254.156,来进行一个dns数据解析的更新,会给一些不法分子有机可乘,故引申出来了第三种方法
3.加密的形式
对于dns-master
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST nelwskey
##a是加密的类型,b是加密的字节长度,N是主机,需要注意的是这个命令执行的时候时在那个文件夹,生成的公私钥就在哪个文件夹
如上图,我是在mnt目录执行的该命令,所以公私钥时在mnt下的,因为是对称加密,所以公钥和私钥的密钥时一样的。
cp- p /etc/rndc.key /etc/nelws.key
vim /etc/nelws.key ##里面的内容修改如下图
vim /etc/named.conf ##在第44行添加下图内容
vim /etc/named.rfc1912.zones ##将第28行改为下图内容
systemctl restart named
scp /mnt/Knelws.* root@172.25.254.155:/mnt/ ##将公钥和私钥给dns-slave
在dns-slave测试
发现错误,时间没有同步,于是将dns-master和dns-slave的时间给为统一时间,再次测试,ok!
bingo~