我们的办公室子网是 10.1.10.0/24。
我有一个网关 (10.1.10.1),它将 DNS 请求转发到运行 DNSmasq (10.1.10.2) 的服务器。我有一个通往母公司网络 (10.2.2.0/24) 的 IPsec 隧道。
在 10.1.10.2 上的 resolv.conf 中,我指定了两个 (2) 个名称服务器,8.8.8.8 (Google DNS) 和 10.2.2.2 (母公司 DNS)。
我的问题是 10.2.2.2 还为另一个 10.1.10.0/24 提供服务。
这意味着有时反向 DNS 查找会返回外部 10.1.10.0/24 上的主机名,而不是我们的内部网络。我们可以通过使用 dig 或 IP 扫描仪等工具来查看这一点。此外,有时我们的 OS X bash 提示会显示错误的主机名。
因此,我提出的解决方案是将 10.1.10.0/24 内的地址的所有反向 DNS 查找定向到 10.1.10.2 的内部查找表,但我不知道如何进行,或者这是否是正确的解决方案。
我应该指出,我无法控制 10.2.2.2。
编辑:我找到了另一个可能的解决方案。我会先测试一下,然后再将其添加为答案。假设 10.1.10.1 使用 DNSmasq,我可以添加指定 --bogus-priv 选项。由于 10.1.10.1 也是我们的 DHCP 服务器,因此对于 10.1.10.0/24 内不在 DHCP 租约文件中的主机的任何反向 DNS 查询,它应该返回“无此域”。
答案1
尝试以下操作:设置一个 DNS 服务器,该服务器将正确提供转速(以及您想要的任何其他服务),但将其余部分转发到 10.2.2.2。我假设您可以在客户端计算机上将 DNS 从 10.2.2.2 更改为 10.1.10.2。如果您无法做到这一点,请在路由器上抓取到 10.2.2.2 的网络流量并将其重定向(当然 10.1.10.2 除外)。这应该可以透明地工作。
答案2
使用 dnsmasq --bogus-priv 选项对我来说很有效。由于 10.1.10.1 也是我们的 DHCP 服务器,因此对于 10.1.10.0/24 内不在 DHCP 租约文件中的主机的任何反向 DNS 查询,它都会返回“无此域”。
来自 dnsmasq(8):
-b, --bogus-priv 虚假私有反向查找。所有在 /etc/hosts 或 DHCP 租约文件中未找到的私有 IP 范围(即 192.168.xx 等)的反向查找均会以“无此域”作为答案,而不是向上游转发。