摘要:Hello,大家好啊!今天给大家带来一篇在信创操作系统上处理DNS 解析失败的实战文章,解决内网环境下由于DNSSEC验证失败导致无法正常访问网站的问题。像这种ping域名失败的情况,学会这个方法能帮你迅速定位并解决问题!欢迎大家分享点赞,点个在看和关注吧!
Hello,大家好啊!今天给大家带来一篇在信创操作系统上处理DNS 解析失败的实战文章,解决内网环境下由于DNSSEC验证失败导致无法正常访问网站的问题。像这种ping域名失败的情况,学会这个方法能帮你迅速定位并解决问题!欢迎大家分享点赞,点个在看和关注吧!
一、问题复现
在内网环境中,执行命令:
ping www.pdsyw.cn发现无法ping通,进一步检查systemd-resolved服务状态时,发现提示:
DNSSEC validation failed for question www.pdsyw.cn IN A: no-signature原因是 DNSSEC安全验证失败,导致域名无法正常解析。
二、原因分析
DNSSEC(DNS Security Extensions)是用来验证DNS响应真实性的安全机制,能有效防止域名被篡改。但前提是:被访问的域名需要支持DNSSEC签名。在我们的内网环境下,像 www.pdsyw.cn这样的网站,没有启用DNSSEC签名。如果系统配置成必须启用DNSSEC验证,系统就会因为无法找到签名而报错,最终DNS解析失败。
总结一句:域名没签名,系统偏要验签,自然验证失败。
三、解决方案
方案一:关闭DNSSEC验证(推荐)
如果当前网络环境对DNS安全要求不高,可以直接关闭DNSSEC。步骤如下:
1.编辑配置文件:
如果当前网络环境对 DNS 安全性要求不高,可以选择关闭或者降低 DNSSEC 验证要求。如果之前是用的 allow-downgrade,可能也需要调整成 no,这样会彻底关闭验证。如果使用的是 systemd-resolved,编辑配置文件:
pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/systemd/resolved.confpdsyw@pdsyw-PC:~/Desktop$ grep -v "^#" /etc/systemd/resolved.conf[Resolve]DNSSEC=no方案二:更换DNS服务器(不强制DNSSEC)
如果不想关闭DNSSEC,也可以选择使用不要求DNSSEC验证的DNS服务器。步骤如下:
1.编辑配置文件
指定公司内部DNS(假设是10.10.10.100),如果使用的是 systemd-resolved,通过配置resolved.conf实现:
pdsyw@pdsyw-PC:~/Desktop$ sudo vim /etc/systemd/resolved.confpdsyw@pdsyw-PC:~/Desktop$ grep -v "^#" /etc/systemd/resolved.conf[Resolve]DNS=10.10.10.1002.保存并重启服务
这样就可以绕过带 DNSSEC 验证的公共 DNS,恢复正常访问。
遇到DNSSEC验证失败导致的DNS解析问题,不用慌!通过关闭DNSSEC或切换DNS服务器,就能快速恢复网络正常访问。如果你觉得这篇文章对你有帮助,欢迎分享点赞,点个在看和关注哦!后续我还可以继续带来类似的系统网络故障排查技巧,我们下次再见!
来源:孙哥讲科技说