名称服务器委派给私有子网

名称服务器委派给私有子网

我目前在将子域名(例如 lan.example.com)委托给私有网络中的名称服务器时遇到一些问题。

我的私有网络被分成了子网

192.168.0.1/24 <--- 192.168.0.1
Physical LAN        172.20.20.1 ---> 172.20.20.1/24
                   OpenWRT Router    VPN

我在物理 LAN 中运行一些服务,客户端应该使用静态 DNS 名称访问它们,无论客户端连接到物理 LAN 还是 VPN。OpenWRT 路由器还充当物理 LAN 中所有客户端的 DNS 解析器,可以解析本地主机名,例如server.lan.example.com

example.com 的公共可访问名称服务器具有 NS 记录

lan.example.com         IN NS lan-router.example.com
lan-router.example.com  IN A  192.168.0.1

理论上,所有对 *.lan.example.com 的 DNS 请求都应委托给我的 OpenWRT 盒子,但连接到 VPN 的客户端使用其家庭网络的名称服务器。这些服务器尝试递归地回答 DNS 请求,但自然无法到达192.168.0.1

该请求dig +trace A server.lan.example.com @8.8.8.8工作正常,但没有该请求+trace则不正常。

您知道如何解决此问题吗?无需192.168.0.1为所有 VPN 客户端都设置为名称服务器?这会增加这些客户端正常互联网访问的延迟。

答案1

问题在于,您希望 DNS 根据请求者的不同做出不同的响应。这称为分割视图或分割水平配置。不幸的是,DNSMasq 对此并没有很好的支持。我强烈建议您卸载 dnsmasq 并安装 bind。在 bind 中,您可以配置视图并设置 ACL 以查看它们。实际上,您可以向 172 网络提供 172 个响应……并向 192 网络提供 192 个响应。

更多信息请见这里用于配置绑定中的分割视图。

相关内容