我有一个域 ( example.com
),它设置为有两个视图。host1.example.com
从外部查询时,将10.0.0.1
位于内部网络和149.120.10.14
(公共 IP)中。
这意味着连接到 Internet 的设备应该正常使用其通常的 DNS 集(例如从 DHCP 获得的 DNS 8.8.8.8
),并且它们将解析host1.example.com
为其外部 IP。
然而,当通过 VPN 连接时,该设备应该从 OpenVPN 服务器接收特定的 DNS 来解析example.com
(并且仅example.com
)。
我的理解是使用
push "dhcp-option DNS 10.10.10.100"
10.10.10.100
内部的、VPN 可访问的 DNS 服务器在哪里会覆盖设备上的 DNS 服务器,从而丢失它已经拥有的那些。
有没有一种方法可以推送 DNS 名称服务器,并且可以选择仅将其用于特定域并保留现有的其他 DNS(用于 Internet/公司解析)?
这是不可能的。但这里有一个解决方法。
在您的 VPN 网络中设置 DNS 服务器,并将其用作所有 VPN 用户的 DNS 服务器。
在此 DNS 服务器上,使用内部 IP 地址为您的特定域名 (example.com) 设置主要区域。并设置 DNS 重定向以运行 DNS 服务器无法自行处理的 DNS 查询。
在这种情况下,区域 example.com 上的所有 DNS 查询都将使用来自您服务器的 DNS 记录,并且所有其他 DNS 查询将由例如 8.8.8.8 解决。
不幸的是,这是不可能的,因为 DNS 解析本身是由客户端操作系统完成的(只是由 OpenVPN 动态配置),并且所有广泛使用的客户端操作系统都无法在每个域上进行不同的名称解析基础。