DNS部署之远程更新
1.基于ip的更新
远程更新:我们部署了DNS集群后,如果我们在主DNS更新信息的话,辅助DNS服务器是可以及时更新的,但在其他远程主机中更新主DNS服务器的信息会被拒绝,如果要实现这样的远程更新需要进行以下的设定
在做之前备份一下文件 方便下一个实验恢复
- 在主DNS服务器中:
cp westos.org.zone /mnt/ -p ##备份到mnt中
vim /etc/named.rfc1912.zones
29 allow-update { 172.25.70.150; };
chmod g+w /var/named ##更改权限
systemctl restart named
- 测试:
1.在远程主机中:
nsupadte
> server 172.25.70.50
> update add hello.westos.org 86400 A 172.25.70.111 ##添加
> send
> update delete hello.westos.com ##删除
> send
> quit
2.在主DNS服务器中:
dig hello.westos.org ##可以看到更改的信息
cd /var/named ##可以看到westos.org.zone.jnl
vim westos.org.zone ##但这个文件内容并没有变化
systemctl restart named ##westos.org.zone有更改的信息
2.基于key的更新
key更新:在上一步骤中基于ip的更新是十分不安全的,为了安全性,我们需要给dns远程更新加一个密钥,只有有钥匙的人才可以更新信息
在做之前先把上一步骤做的内容还原
部署:
- 在dns主机中
rm -fr westos.org.zone* ##还原上一步骤内容
cp -p /mnt/westos.org.zone . ##还原上一步骤内容
cd /mnt/
dnssec-keygen -a HMAC-MD5 -b 128 -n HOST westos ##加密生成key(此过程需要在虚拟机中敲键盘)
cp /etc/rndc.key /etc/westos.key -p
vim /etc/westos.key ##编辑key文件
1 key "westos" {
2 algorithm hmac-md5;
3 secret "jou84ceHx9Vi/TIZBhUMaQ==";
4 };
vim /etc/named.conf
44 include "/etc/westos.key"; ##查看加密文件
vim /etc/named.rfc1912.zones ##采用密钥的更新方式
29 allow-update { key westos; };
systemctl restart named
scp Kwestos.+157+34812.* root@172.25.70.150:/mnt ##分发钥匙
在没有分发钥匙的时候,在远程主机中更新dns会被拒绝:
分发钥匙后,可以在远程主机中的目录里看到这些文件:
在远程主机中:
测试
1.在远程主机中:
nsupdate -k Kwestos.+157+34812.key
> server 172.25.70.50
> update add hi.westos.org 86400 A 172.25.70.66
> send
> quit
2.在主DNS服务器中:
dig hi.westos.org ##可以看到更改的信息
cd /var/named ##可以看到westos.org.zone.jnl
vim westos.org.zone ##但这个文件内容并没有变化
systemctl restart named ##westos.org.zone有更改的信息
遇到的问题以及解决
- 问题:在分发钥匙以后在远程主机中仍不能更新dns信息
查看两台主机的时间信息:发现的确时区不同步
用命令更改时区后重启服务,仍然显示时区不同步,无法更新dns信息
- 解决:用一台主机同步另一台主机的时间
在其中一台主机中:
vim /etc/chronyd.conf
在另一台主机中:
vim /etc/chronyd.conf
同步时间成功后,就可以进行远程更新了
- 结论:在进行远程更新时,两台主机的时间不能相差太大,否则是无法更新的