基于ip的远程更新
在主dns
vim /etc/named.rfc1912.zones
zone "hello.com" IN {
type master;
file "hello.com.zone";
allow-update {172.25.69.220 ; };
also-notify { 172.25.69.220; };
};
systemctl restart named
测试
在被远程更新的这台主机上,先备分hello.com.zone,以便恢复环境
同时要同步时间,关闭selinux,否则也无法被更新
在远程更新的这台主机上
nsupdate
> server 172.25.69.120
> update add bbs.hello.com 86400 A 1.1.1.3 ##添加
>send ##发送
> server 172.25.69.120
> update delete bbs.hello.com ##删除
>send
若出现SERVFAIL的报错,则是主dns的/var/named没有写的权限,需要添加
添加权限后重新实验
在被更新的主机
重启服务后发现hello.com.zone也被改变
dig bbs.hello.com
实验环境的恢复
rm -fr hello.com.zone hello.com.zone.jnl
cp -p /mnt/hello.com.zone .
或者用命令 update delete bbs.hello.com 远程删除后再复制
key认证
在主dns上
1.dnssec-keygen -a HMAC-MD5 -b 128 -n HOST hello ##加密a方式b长度n名称
若遇到加密停顿情况可以在主机中敲击键盘来解决
查看key已经生成:一个为密钥一个为私钥,其中的内容都是相同的
2.cp /etc/rndc.key /etc/hello.key -p ##复制一个模版
3.cat Khello.+157+37456.key ##查看密钥
4.vim /etc/hello.key##编写密钥文件
key "hello" { ##密钥名称
algorithm hmac-md5; ##加密方式
secret "RVbQEj8saLyoUireUR6rEg=="; ##加密字符
};
5.vim /etc/named.conf
45 include "/etc/hello.key"; ##添加密钥于主配置文件
6.vim /etc/named.rfc1912.zones
zone "hello.com" IN {
type master;
file "hello.com.zone";
allow-update { key hello; }; ##更新方式为key hello
also-notify { 172.25.69.220; };
};
7.systemctl restart named
测试
scp Khello.+157+37456.* root@172.25.254.220:/mnt/ ##将密钥传给远程更新的主机
在远程更新主机
nsupdate -k /mnt/Khello.+157+37456.key ##用key更新
然后远程更新成功即可
在主dns上
dig bbs.hello.com
dhcp的dns远程更新
实验前先配置动态网络dhcp
1.vim /etc/dhcp/dhcpd ##建立dhcp更新dns的联系
man 5 dhcpd.conf ##查看配置文件写法
14 ddns-update-style interim; ##开启dhcp更新dns功能
key hello { ##dhcp更新dns时用到的key
algorithm hmac-md5;
secret RVbQEj8saLyoUireUR6rEg==;
};
zone hello.com. { ##指定dhcp更新的域名
primary 127.0.0.1; ##指定dns所在的主机ip,如果和dhcp为同一主机则直接使用内部回环,更安全,快捷
key hello; ##指定更新这个域时用到的key名称
}
2.systemctl restart dhcpd ##重启dhcp
测试
设定一台主机的主机名为news.hello.com,这个名称在dns.hello.com中是没有解析的否则会按照原来的解析
将此主机网络设置成dhcp查看ip
dig news.hello.com 查看解析
改变dns服务端的dhcp的分配网段
重启测试端的网络
在测试端主机重新获得一个dhcp分配的ip
dig news.hello.com 再次查看解析