升级到 Ubuntu 22.04 LTS 后,DNS 转发到 Windows DNS 不起作用

升级到 Ubuntu 22.04 LTS 后,DNS 转发到 Windows DNS 不起作用

Ubuntu 20.04 服务器是互联网网关,同时也是 DNS 转发器。外部查找被转发到互联网,本地请求被定向到作为内部 DNS 服务器的 Windows 域控制器。网关最近更新到 22.04,这破坏了内部主机的解析。转发配置没有任何变化,那么为什么它以前可以工作,但现在却失败了?

答案1

回答我自己的问题,希望能节省其他人解决最近情况所需的时间和精力

设备升级到 22.04 后,内部 DNS 查询返回收到 FORMERR 解析。这很令人困惑,因为使用 Windows 服务器本地执行 nslookup 有效,但指向 Windows DNS 的 dig 命令失败。事实证明,当设置了启用 EDNS cookie 选项的请求时,这是来自 Windows DNS 的标准消息。默认情况下,最新版本的 bind 启用了 EDNS cookie。将以下内容添加到 named.conf 以禁用 cookie 后,服务重新启动,一切都按预期运行。

    In BIND 9.10.x the option to do this is "request-sit no; "
    From BIND 9.11.0 onwards, it is "send-cookie no; "send-cookie no; "

从 BIND 9.11.0 开始,所有版本都启用了 DNS COOKIES。请注意,cookie 策略在最初的实施中非常宽松,以降低影响,而在 BIND 9.11.26、9.16.10、9.17.8 及更高版本中则“收紧”,如下所述。要在 BIND 9.10 分支中使用它,请使用“configure --enable-sit”构建 BIND。对于从 BIND 9.10.3 及更高版本开始的 Windows 版本,它默认启用。

相关内容