我在一个接口上使用VPN,例如tun0(2.2.2.0/24) ,而LANnetworking在接口eth0(1.1.1.0/24)上 。
我使用dnsmasq将特定的地址路由到我的局域网,这些地址有他们的VPNnetworking对应,它们应该链接到同一台机器,这也是DNS相同的主机名称。 (接口是防火墙的,所以eth0不能和tun0通信,反之亦然)
所以我们有两个这样的主机文件:
hosts.eth0:
1.1.1.1 example.com
hosts.tun0:
2.2.2.1 example.com
我发现一些困难,告诉dnsmasq使用一个特定的主机文件的特定接口,而不是像下面的方式启动dnsmasq两次:
dnsmasq -I lo -i eth0 -H hosts.eth0
和它的副本
dnsmasq -I lo -i tun0 -H hosts.tun0
这个方法在Debian 8中并不是很好,我认为必须有更好的方法来实现我想要做的事情。 我能做什么?
这会做你想要的吗?
-y, – 本地化查询
返回来自/ etc / hosts(取决于接收查询的接口)的DNS查询的答案。 如果/ etc / hosts中的名称具有多个与之关联的地址,并且这些地址中的至less一个与发送查询的接口在同一子网上,则只返回该子网上的地址。 这允许服务器在每个接口对应的/ etc / hosts中有多个地址,主机将根据它们所连接的networking得到正确的地址。 目前这个设施仅限于IPv4。