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

我目前有一些问题,委托一个子域名,例如lan.example.com,到专用networking中的名称服务器。

我的私人networking被分成子网

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

我有一些服务在物理局域网中运行,客户端应该使用静态DNS名称来访问它们,而不pipe客户端是连接到物理局域网还是VPN。 OpenWRT路由器还充当物理局域网中所有客户端的DNSparsing器,并可以parsing本地主机名,例如server.lan.example.com

example.com的公共可达名称服务器有NSlogging

 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的客户端使用其家庭networking的名称服务器。 这些服务器试图recursion地回答DNS请求,但自然不能达到192.168.0.1

请求dig +trace A server.lan.example.com @8.8.8.8工作正常,但没有+trace相同的请求不是。

你有没有想法如何解决这个问题,而不是为所有VPN客户端设置192.168.0.1作为域名服务器? 这会为这些客户端上的普通Internet访问增加很多延迟。

问题是,您希望DNS根据问题进行不同的响应。 这称为分割视图或水平分割configuration。 不幸的是,DNSMasq并没有很好的支持。 我强烈build议你卸载dnsmasq并安装bind。 在绑定中,您可以configuration视图并将ACL设置为可以看到它们的人员。 实际上,你可以给172networking172个响应…和192个networking192个响应。

更多的信息可以在这里find在绑定configuration拆分视图。