与dnsmasq接口的特定主机文件

我在一个接口上使用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。