我有一个正在运行的路由器,除其他外,dnsmasq
还有标准设置,因此我获得了 DNS 代理和额外的本地服务器,以及所有通过 DHCP 服务器管理 IP 地址的机器的名称解析dnsmasq
。
服务器和其他主机都在我的home.net
域上
到目前为止,一切都很好。
现在我需要通过 VPN 连接到customer.net
具有非常相似设置的客户站点(他们没有使用 dnsmasq,但净效果相同)。
我设置了一个小型(虚拟)机器,充当从本地网络到 IPSectun
设备的路由器转发(使用 NAT),并向需要查看 customer.net 的(2)台主机添加了一些静态路由;我手动执行此操作,而不是通过 dnsmasq 推送路由。
这似乎也没有问题。
现在我还有最后一个问题不知道如何解决:
我可以customer.net
通过指定 IP 地址来访问私有地址空间中的机器,无需提供 DNS 解析dns.customer.net
我如何访问dns.customer.net
没有失去联系dns.home.net
?
笔记:我可以修改我的home.net
设置(我更愿意将更改限制在实际涉及的少数主机上),但我无法控制customer.net
我希望的情况是:
*.home.net
地址应该通过dnsmasq
- 应通过代理我的 ISP DNS 来解析互联网可路由地址
dnsmasq
。 *.customer.net
dns.customer.net
地址应该通过(我可以通过其不可路由的 IP 访问此主机)来解析,可能不需要通过我的dnsmasq
这有可能吗?如果可能,怎么做?
答案1
经过一番调查后,我发现它dnsmasq
可以满足我的需要。
以下是标准文档的摘录(Dnsmasq 设置):
使用特殊服务器。
Dnsmasq 能够将特定域的 DNS 查询定向到特定的上游名称服务器。此功能是为与 VPN 一起使用而添加的,但它是完全通用的。场景是这样的:您通过 ISP 建立了标准互联网连接,并且 dnsmasq 配置为将查询转发到 ISP 的名称服务器,然后您与公司网络建立 VPN 连接,从而可以访问公司防火墙内的主机。您可以访问,但由于许多内部主机在公共互联网上不可见,您的公司不会将它们发布到公共 DNS,您无法从 ISP 名称服务器获取它们的 IP 地址。解决方案是将公司名称服务器用于公司内部的私有域,dnsmasq 允许这样做。假设公司内部机器都在域 internal.myco.com 中,公司名称服务器位于 192.168.10.1,则选项 server=/internal.myco.com/192.168.10.1 将内部域中的所有查询定向到正确的名称服务器。您可以在每个服务器选项中指定多个域。如果有多个名称服务器,则只需包含指定所有名称服务器所需的服务器选项即可。
最后,我将 DNS“特殊服务器”和附加静态路由添加到我的主要 dnsmasq(在我的防火墙上),并且只要 VPN 虚拟机启动并运行,一切都会按需要工作。
实际添加到我的 dnsmasq.conf 的行是:
server=/customer.net/192.168.20.253
dhcp-option=121,192.168.2.0/24,192.168.7.11,192.168.20.0/24,192.168.7.11
我希望这能帮助某些人找到答案。