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 也应有答案。