我们有一个内部网,我们希望它本质上是分层的,如下所示:
internal.example.com (ns at ns1.internal.example.com) clientA.internal.example.com (ns at ns1.clientA.internal.example.com) nodes.clientA.internal.example.com (ns at ns1.nodes.clientA.internal.example.com) 目前,我们有三个 dns 服务器(bind9 和 webmin 在一个简单的 docker 容器中运行,来自https://github.com/sameersbn/docker-bind)
xx1.2 具有 internal.example.com 的 SOA xx10.2 具有 clientA.internal.example.com 的 SOA xx100.2 具有 nodes.clientA.internal.example.com 的 SOA 查询其中的每一个都会正确返回已为该区域定义的 IP(即主机 bob.internal.example.com xx1.2 返回机器“bob”的正确 IP 地址)。
问题是我们无法让它工作,因此:
ns1.internal.example.com 查询 ns1.clientA.internal.example.com 以获取有关 xxx.clientA.internal.example.com 的查询,然后 ns1.clientA.internal.example.com 查询 ns1.nodes.clientA.internal.example.com 以获取有关 xxx.nodes.clientA.internal.example.com 的查询。在 xx1.2 上,我们尝试设置
转发器 { xx10.2; }; 并在 xx10.2 上将递归设置为
允许递归 { xx1.2; }; 但是对 xx1.2 的查询仍然无法解析 xxx.clientA.internal.example.com。
我们还尝试设置仅转发到 xx1.2、xx10.2 和 xx100.2 名称服务器的仅转发 DNS 服务器,但仍然没有成功。返回的只是“未找到主机 xxx.clientA.internal.example.com:5(已拒绝)”
感谢提供任何信息或包含更多信息的页面链接。
答案1
搞清楚了。事实证明,只需要让其他名称服务器了解其他名称服务器,但作为 NS 记录(它们被列为 A 记录,认为 NS 仅为该特定 SOA 的名称服务器保留,但事实并非如此)。