Ubuntu 18.04 systemd 解决错误 NXDOMAIN

Ubuntu 18.04 systemd 解决错误 NXDOMAIN

我已经安装了 Ubuntu 18.04 并且系统日志显示以下错误:

systemd-resolved: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.

这是什么意思?我该如何解决这些错误消息?

答案1

最简短、最简单的答案是:

系统日志中的这些“错误”是由于在DVE-2018-0001,表示系统正在尝试通过重试不使用 EDNS 扩展的相同请求来缓解进一步的 DVE-2018-0001 违规情况。这并不表示您可以自行修复错误,也不意味着存在任何问题在这种情况下进行修复。

它只是表明该systemd-resolved服务正在尝试重试相同的查询,以尝试防止进一步出现 DVE-2018-0001 问题,这可能是由于强制门户不支持 EDNS0 扩展造成的。

在这种情况下您不需要采取进一步的行动,这是 向系统日志提供的更多“信息性”信息systemd-resolved

但是...如果您想进一步了解这里到底发生了什么,请继续阅读,我提供了摘要和一些示例数据,向您展示这些消息背后到底发生了什么。


详细信息(如果您想阅读的话):

您看到的错误不是实际上您必须采取行动的错误消息,而“服务器返回错误”的说法具有误导性。相反,这是一个通知,表明我们正在遵循在DNS 违规 DVE-2018-0001

这是我的计算机上日志本身的一个示例:

Feb  5 13:29:17 overlord systemd-resolved[857]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.

根据 DVE-2018-0001 发现,在 Ubuntu 17.10 及更高版本中:

当尝试连接并授权 securelogin.arubanetworks.com 上的强制门户时,在某些时候它无法正确解析,因此用户无法通过强制门户授权并访问互联网。

进一步来说,这可以解释这个问题:

最初这是 Ubuntu 错误跟踪器上的报告https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1727237

这可能是 Ubuntu/systemd-resolved 和/或 securelogin.arubanetworks.com DNS 欺骗/captivity 和/或两者中的一个错误。

从数据包捕获来看,将 EDNS0 DO(DNSSEC OK)位设置为零的 DNS 查询会得到 NXDOMAIN 的响应。

没有 EDNS0 的请求将使用正确的门户 IP 地址进行响应。

这意味着,这里发送到强制门户的某些响应不能正确支持 EDNS0 查询;这需要制造商进行调整。

目前在 Ubuntu 中实施的解决方法systemd-resolved是生成信息性的您看到的消息。这与 DVE 中建议的解决方法相结合(粗体文本强调和命令名称和代码/响应的纯文本格式是我的):

在 中systemd-resolved,当查找包含“安全”的域名并收到NXDOMAIN响应时,不使用 EDNS0 重试

因此,这就是您的消息所说的内容,但范围更广。也就是说,当提交 DNS 请求并且您NXDOMAIN从 DNS 查找中获得响应时,我们希望确保不会遇到此 EDNS0 问题;因此,systemd-resolved正在尝试 DNS 查找再次但没有 EDNS0 扩展 - 我们可以在我的 Bind9 名称服务器中看到这一点,它也处理我机器上的所有请求,并给出一个示例(尽管这是一个非域被查询的典型例子,反过来也是一个典型例子,说明当“缓解”实际上不能解决麻烦时,这种缓解措施如何发挥作用):

05-Feb-2019 13:29:17.976 queries: info: client @0x7f6cd400aee0 127.0.0.1#41213 (favicon.png): query: favicon.png IN A +E(0) (127.0.2.1)
05-Feb-2019 13:29:17.976 queries: info: client @0x7f6cd400aee0 127.0.0.1#41213 (favicon.png): query: favicon.png IN A + (127.0.2.1)

如您所见,不是使用 +E(0),而是在没有该扩展的情况下重试请求;这是“降低功能级别 UDP”请求行为。

答案2

虽然这不是一个真正的错误,但如果您希望停止这些消息,您可以将目标更改为/etc/resolv.conf符号链接指向。默认情况下,它指向/运行/systemd/resolve/stub-resolv.conf. 通过将其更改为指向/运行/systemd/resolv/resolv.conf问题已经解决。

执行此操作的命令是sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

答案3

正如所指出的,NXDOMAIN 错误不是你的问题,但它可能会导致默认的 Ubuntu 18.04(18.10?)安装在某些 DNS 查询(如 pop3.comcast.net)上失败(请参阅启动板错误在禁用 EDNS 的情况下,当答案超过 512 字节时,systemd-resolved 会出现问题systemd-resolved 无法解析康卡斯特邮件服务器地址 一个简单的解决方法是安装 libnss-resolve 包,它会改变 /etc/nsswitch.conf 文件以更好地处理这种情况。

答案4

参加聚会有点晚了。当我“未注释” UseDNS no在 中/etc/ssh/sshd_conf。我为这一更改附加的评论注释如下:

禁用主机名解析

在其他条件相同的情况下,这可能“影响”这个问题。到目前为止,还没有测试过这个问题——比如恢复原始设置。

希望这能有所帮助。

相关内容