如果存在 NXDOMAIN,如何更新 nsswitch 以使用第二个 DNS 服务器?

如果存在 NXDOMAIN,如何更新 nsswitch 以使用第二个 DNS 服务器?

resolv.conf 如下所示:

machine:~ # cat /etc/resolv.conf
search  foo.bar
nameserver      DNSSERVERIP1
nameserver      DNSSERVERIP2
machine:~ #

第一个 DNSSERVERIP1 不知道 barfoo.com。

但第二个 DNS 服务器:DNSSERVERIP2 知道它。解决得很好。

我知道默认情况下如果第一个 DNS 服务器返回 NXDOMAIN,则不会询问第二个 DNS 服务器。

但问题是:如何配置 /etc/nsswitch.conf,以便如果第一个 DNS 服务器出现 NXDOMAIN,第二个 DNS 服务器会询问?

答案1

我认为你不能用 来做到这一点nsswitch.conf。该文件指定每个类别使用的数据源。它并不意味着“影响”每个源的工作方式(在您的情况下,如果第一个答案不让您满意,请使用另一个 DNS 服务器)。

您可以尝试根据[STATUS=ACTION]从前面的数据源获得的结果来修改行为。但这不是您想要的,因为您不想更改数据源(dns)。

您自己说过:如果 DNSSERVERIP1 不知道答案(NXDOMAIN),则意味着服务器有权回答该问题。因此,答案是最终的(关于 DNS 规范),并且没有必要查询其他服务器。同样,这是根据定义的,您不能覆盖它。

唯一的方法是确保您的 DNS 设置一致:如果 DNSSERVERIP1 和 DNSSERVERIP2 是克隆,那么就这样做。如果 DNSSERVERIP2 有答案,则 DNSSERVERIP1 也应有答案。

相关内容