使用nsupdate命令时报错:update failed: SERVFAIL

在使用nsupdate命令动态更新区文件的时候,报了这样一个错,之前在没有dnssec的时候,使用nsupdate命令进行动态更新的时候是没有报错的,但是使用dnssec之后,动态更新报错:
动态更新报错图
这里可以看到报错提示。
分析:
在使用dnssec之前,并没有发生报错,检查了几种网上出现的解决方法提示的比如selinux的关闭等并没有用,说明产生错误的原因在启动dnssec之后。
在开启dnssec前后,配置文件和区文件的变化:
配置文件 /etc/named.conf文件的options中增加了
options {
dnssec-enable yes;
};
区文件:
使用生成的私钥对取文件进行签名,然后区文件由原来的
/var/named/named.hanming.com 变为
/var/named/named.hanming.com.signed,
并修改了对应的
zone “hanming.com” IN {
type master;
file “named.hanming.com.signed”;
};
测试查询可以正常输出dnssec的查询记录,并没有出现问题。
但是,如果查看文件 /var/named/named.hanming.com.signed的权限,会发现都是当前用户的权限,也就是文件的所有组和所有者都是root,这就导致这个文件不能被named修改,因为没有权限。
再回到最开始的nsupdate,也就是dns动态更新,这个命令在bind9之后产生的更新方式是新生成一个记录文件,这个记录将执行nsupdate命令添加的记录写在一个文件 /var/named/named.hanming.signed.jnl文件中(如果更新成功的话)。
那么,是不是文件的权限造成了问题?
查看bind的运行日志,在/var/named/data/named.run文件中,看到如下信息:
权限不足
可以看到named在读取私钥文件和公钥文件的时候,权限不足,查看之后,发现这两个文件的权限都是root,修改文件权限为named,
chown named.named K*
修改权限之后,重新更新,更新成功。
总结:
第一步,报错的时候应该查看日志log
第二步,根据日志修改
如果第一步没有找到明显的提示,可以思考在进行操作前后的区别,从而分析。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值