在服务器本身上执行 nslookup 时出现 SERVERFAIL 错误。FreeBSD

在服务器本身上执行 nslookup 时出现 SERVERFAIL 错误。FreeBSD

我正在使用 FreeBSD 设置 DNS 服务器。我已安装 BIND 并在文件中设置所有resolv.conf内容named.conf

这是我的 DNS 服务器的 IP 地址192.168.10.100

resolv.conf添加了以下行,

nameserver 192.168.10.100

我还在named.conf文件中创建了一个名为的区域.pbv,然后我习惯nsupdate向该区域添加一个域,即testing.pbv

现在,当我nslookup 192.168.10.100在服务器上时,它不起作用并且总是返回,

;; Got SERVFAIL reply from 192.168.10.100, trying next server
;; connection timed out; no servers could be reached

然而当我nslookup testingpbv返回以下内容时,

Server:         192.168.10.100
Address:        192.168.10.100#53

Name:   testing.pbv
Address: 192.168.10.100

我不明白为什么我不能跑nslookup 192.168.10.100

这是我的resolv.conf

nameserver 192.168.10.100
nameserver 8.8.8.8

值得一提的是,我甚至无法查找 google.com 或任何其他外部域。

答案1

这里发生了一些事情。让我们来分析一下。

  • 除非您为 配置了反向区域10.168.192.in-addr.arpa,否则您的递归服务器必须从其他地方获取此信息。您没有提到设置这样的区域,因此我假设它不存在。
  • RFC 1918 私有网络未在互联网上路由。如果 DNS 服务器必须对此 IP 空间的反向 DNS 请求执行完全递归,则会发生以下两种情况之一:
    1. 递归执行直到IANA 的黑洞服务器已达到。他们将返回 的响应NXDOMAIN
    2. 服务器跳过了与互联网联系的步骤,因为它知道这是毫无意义的。它伪造响应NXDOMAIN,不会浪费带宽。BIND 9.9 及更高版本通过称为自动空区

为了简化这一切,如果您看到SERVFAIL这里,则意味着某些东西坏了。要么服务器正在尝试从互联网获取答案但未能成功,要么您的配置有问题并且没有仔细阅读日志。(例如,如果您创建了一个带有非法语法的区域,就会发生这种情况10.168.192.in-addr.arpa

要排除网络问题,您可以尝试运行dig +trace 10.168.192.in-addr.arpa。如果此命令返回错误,则需要排除网络故障。如果它未返回错误,请更仔细地检查您的日志。

答案2

nslookup在 IP 上会寻找相应的PTR记录,但您的配置中显然缺少该记录。

话虽如此,我曾在拥有数百台服务器的大型公司工作过,但没有一家公司在本地 IP 上配置反向查找。

相关内容