因此,我们的云提供商之一在 VM 之间提供了一个低延迟、零评级的“内部网络”选项。内部网络上的接口位于 10.xxx IP 空间中。当我们的一台服务器查询内部网络上另一台服务器的主机名时,我们希望它解析为内部网络上的地址,而不是导致传输记帐的公共可路由地址。
我们已经实现了一个小型服务器来执行此操作,当源 IP 是 10.xxx IP 时,它将返回内部地址。
我们不想做的是让我们的内部服务器成为我们虚拟机的唯一主 DNS 服务器。我们会让它成为客户端列表中的第一个服务器,然后是一个公共 dns 服务,如 1.1.1.1。
因此,如果在内部 DNS 中查询 google.com(我们不拥有),我们应该返回给客户端的正确响应是什么?我们应该简单地忽略请求还是应该返回 NxDomain 响应?
感谢您的任何建议!
如果您将服务器用作递归服务器,它应该以从权威基础设施解析的正确回复进行响应。如果您返回
NXDOMAIN
,则 DNS 客户端信任答案,并且不会继续访问其他服务器。如果您不回复任何内容,那只会导致不必要的超时延迟。此外,DNS 客户端通常没有理解这种条件解析的功能,但 DNS 服务器有。因此,要考虑的一个选项是在将执行条件转发的每台服务器上安装本地 DNS 服务器。在这种情况下,您要配置的唯一 DNS 服务器
resolv.conf
将是localhost
ie127.0.0.1
。这些示例采用 BIND 配置格式,因为您没有在问题中指定您的风格。
或者,如果与内部 DNS 服务器的连接不稳定,服务器还可以通过区域传输托管内部区域的副本:
自然,主服务器也应该允许传输。