![为什么我可以看到记录存在,但 DNS 服务器却返回 NXDOMAIN?(存根区域)](https://linux22.com/image/575110/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E5%8F%AF%E4%BB%A5%E7%9C%8B%E5%88%B0%E8%AE%B0%E5%BD%95%E5%AD%98%E5%9C%A8%EF%BC%8C%E4%BD%86%20DNS%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%8D%B4%E8%BF%94%E5%9B%9E%20NXDOMAIN%EF%BC%9F%EF%BC%88%E5%AD%98%E6%A0%B9%E5%8C%BA%E5%9F%9F%EF%BC%89.png)
我的 DNS 数据库中有两个存根区域(均为 AD 集成区域)。我们将它们称为 foo.org 和 bar.org。我这边的所有 DNS 服务器都是 Server 2003 R2。
foo.org 区域文件包含以下内容(出于安全考虑,主机名已更改):
foo.org. NS ns1.foo.org.
foo.org. NS ns2.foo.org.
foo.org. NS ns3.foo.org.
foo.org. SOA [2010033275], ns.foo.org, admin.foo.org
ns.foo.org. A 192.168.0.1
ns1.foo.org. A 192.168.1.1
ns2.foo.org. A 192.168.1.2
ns3.foo.org. A 192.168.1.3
bar.org. 区域如下:
bar.org. NS ns1.foo.org.
bar.org. NS ns2.foo.org.
bar.org. NS ns3.foo.org.
bar.org. SOA [2010011842], ns.foo.org, admin.foo.org
我们遇到的主要问题是,对 bar.org 区域中的 A 记录的请求经常返回 SERVFAIL。进一步研究后,我发现对“ns1.foo.org. A”的请求返回了 NXDOMAIN。我认为这是导致在 bar.org 区域中查询失败的原因。
对我来说无法理解的是,为什么当我看到该记录存在于区域数据库中时,“ns1.foo.org A”的请求会导致 NXDOMAIN 响应。
答案1
尝试捕获网络流量,或查看执行查询时的防火墙日志。如果查询转到公共根服务器,.local tld 可能会产生“NXDOMAIN”结果。
如果您需要更多帮助,请提供手动查找(例如使用 nslookup 或 dig)的日志或截屏/输出
答案2
据我所知,在当前情况下我们不应该使用存根区域,我计划改用条件转发器。
微软有一篇关于存根区域和条件转发器使用的文章,网址为http://technet.microsoft.com/en-us/library/cc780434(v=ws.10).aspx。
在本文中,它指出“在您希望独立网络中的 DNS 客户端能够解析彼此的名称而无需查询 Internet 上的 DNS 服务器的情况下,例如在公司合并的情况下...”
文章继续说道“当您希望托管父区域的 DNS 服务器能够了解其子区域之一的权威 DNS 服务器时,可以使用存根区域。”