Linux,resolv.conf - 添加 MSDNS 和绑定 DNS 名称服务器,其中 MSDNS 不是递归的?

Linux,resolv.conf - 添加 MSDNS 和绑定 DNS 名称服务器,其中 MSDNS 不是递归的?

如何从非递归 MSDNS 解析,如果未找到,如何从 googleDNS(递归)解析?

## resolv.conf ##
nameserver 192.168.10.1   # msdns, non-recursive
nameserevr 8.8.8.8        # googleDNS, recursive 

如果我首先放置 MSDNS 并且ping someLocalServer它可以工作,但如果我ping google.com得到“未知主机”。如果我切换它们,就会发生相反的情况,谷歌 ping 正常,“someLocalServer”给我“未知主机”。

我尝试过乱搞,nsswitch.conf但这没有帮助。

## nsswitch.conf ##
host: file mdns_minimal dns mdns4

我已经改变了这些标签,file dns mdns4[或] file mdns4 dns[或] file mdns_minimal [NOTFOUND=continue] dns...

我有一个 Windows 域,并且我将 Windows DNS 设置为非递归。我所期待的是;如果本地查找失败,我希望查找由 googleDNS 处理。

此设置在 Windows Server 下运行良好,但在 CentOS 基本安装下则不行。

答案1

resolv.conf仅当第一个条目出现超时或错误时,才会回退到底部条目。未知是 DNS 服务器的正确答案。

答案2

您可以将本地 MSDNS 实例用于特定区域(域子树)。虽然glibc/etc/resolv.conf不支持,但是可以安装绑定,未绑定或另一个有能力的名称服务器(我不确定这里是否有 BIND,但您甚至可以重用现有的名称服务器)。

通过 unbound,您可以配置转发区域:

forward-zone: 
    name: "example.com"
    forward-addr: 192.168.10.1

默认情况下有一个例子unbound.conf

然后您resolv.conf将指向本地主机(或具有递归服务器的主机):

nameserver 127.0.0.1

Linux 发行版有望在默认情况下朝着这样的解决方案发展,请参阅 Fedora 更改页面:

https://fedoraproject.org/w/index.php?title=Changes/Default_Local_DNS_Resolver

答案3

似乎没有办法使这项工作按预期进行。因此,我所做的是将我的 Microsoft DNS 服务器标记为递归服务器,并删除了第二个域控制器中的转发器条目(默认放置在那里,但当第一个域控制器 [可写控制器] 脱机时会导致递归解析延迟)。为什么是微软,为什么?

相关内容