为什么 resolv.conf 中有多个名称服务器会导致 nslookup 失败,但单个条目却可以工作?

为什么 resolv.conf 中有多个名称服务器会导致 nslookup 失败,但单个条目却可以工作?

我在 ubuntu 12.04 上有一个 resolv.conf,看起来像这样(IP 地址已更改为无意义的):

search internal.mydomain.com
nameserver 205.169.169.193

该名称服务器对 不具有权威性mydomain.com,但确实包含 的有效记录internal.mydomain.com。我可以使用此 resolv.conf发出host和查询,而不会出现问题:nslookup

$ host myserver
myserver.internal.mydomain.com has address 10.1.1.3

$ nslookup myserver
Server:         205.169.169.193
Address:        205.169.169.193

Name:   myserver.internal.mydomain.com
Address: 10.1.1.3

一切运行良好,但该名称服务器位于 AWS 的路线 53无法递归,所以无法解析,比如说google.com

所以我添加了另一个名称服务器。具体来说,就是我的 ubuntu 映像在实例化时使用的普通 AWS 名称服务器。我知道它运行良好:

search internal.mydomain.com
nameserver 205.169.169.193
nameserver 172.152.152.112

现在,当我运行时nslookup,它会查询第一个名称服务器,正如我预期的那样,但找不到记录,而是转到 172.* 服务器:

$ nslookup myserver
;; Got recursion not available from 205.169.169.193, trying next server
;; Got recursion not available from 205.169.169.193, trying next server
Server:         172.152.152.112
Address:        172.152.152.112#53

** server can't find myserver: NXDOMAIN

我很困惑。为什么当我有一条名称服务器记录时,resolv.conf 的行为正确,而当我有多个名称服务器记录时,行为却不正确?

值得注意的是,它在 Amazon 的 Linux 上按我预期的那样运行v3.4.73-64.112.amzn1.x86_64 (mockbuild@gobi-build-31003)。这是 ubuntu 12.04 中的一个错误吗?

相关内容