我正在使用 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 请求执行完全递归,则会发生以下两种情况之一:
- 递归执行直到IANA 的黑洞服务器已达到。他们将返回 的响应
NXDOMAIN
。 - 服务器跳过了与互联网联系的步骤,因为它知道这是毫无意义的。它伪造响应
NXDOMAIN
,不会浪费带宽。BIND 9.9 及更高版本通过称为自动空区。
- 递归执行直到IANA 的黑洞服务器已达到。他们将返回 的响应
为了简化这一切,如果您看到SERVFAIL
这里,则意味着某些东西坏了。要么服务器正在尝试从互联网获取答案但未能成功,要么您的配置有问题并且没有仔细阅读日志。(例如,如果您创建了一个带有非法语法的区域,就会发生这种情况10.168.192.in-addr.arpa
)
要排除网络问题,您可以尝试运行dig +trace 10.168.192.in-addr.arpa
。如果此命令返回错误,则需要排除网络故障。如果它未返回错误,请更仔细地检查您的日志。
答案2
nslookup
在 IP 上会寻找相应的PTR
记录,但您的配置中显然缺少该记录。
话虽如此,我曾在拥有数百台服务器的大型公司工作过,但没有一家公司在本地 IP 上配置反向查找。