1. 问题说明
最近在在Rocky Linux上玩Bind DNS,需要解析内网的域名,也需要能解析公网的域名,所以配置了转发DNS。配置完以后,在本地使用使用dig命令解析是正常的,但是客户端配置DNS后,解析内网的域名是正常,但是百度无法解析,使用nslookup检测一直提示“找不到 www.baidu.com:Server Failed”。
dig @127.0.0.1 www.baidu.com
2. 问题解决
刚开始我以为防火墙或Selinux的问题,但是tcp/udp的53端口都开了,后来就直接关闭了防火墙和Selinux。
systemctl stop firewalld
setenforce = 0
但是问题依旧,然后去查看Bind日志,看到许多“no valid DS resolving…”信息,上网搜索一番后,在站内看到说有可能是使用的IPv6的问题,我这边的网络确实IPv6没法用,然后立马禁用了IPv6。
vim /etc/sysconfig/named
# 指定使用IPv4
OPTIONS="-4"
# 重启bind
systemctl restart named
然后重试,我去,问题依旧。。。突然想到日志里有valid字样,会不会是验证的问题,抱着试一试的态度,详细看了一下named.conf文件,里面有 dnssec-validation = yes 配置项,后来查了一下,dnssec使用用于控制DNS响应验证的,对于通过转发DSN解析的域名,响应后没法通过验证,即不是通过此DNS服务器解析的域名,都认为是非权威响应,是无法通过响应验证的。于是关闭了dnssec
dnssec-enable no;
dnssec-validation no;
重启Bind,然后重试,OK,问题解决了。
参考连接:bind 日志报的错误代表的意义记录
653





