解决两个断开连接的专用networking的DNS查询

我试图设置两台电脑(一个Windows,一个Linux,但我的理解是,这个问题是更多的DNS和更less的操作系统),如下所示:

Home network: 192.168.1.0/24 VPN (via OpenVPN server not within the home network): 192.168.2.0/24 . 

我希望两个networking上的PC能够访问三种不同types的站点:

  1. 互联网地址
  2. 家庭networking上的地址
  3. 地址在vpn

但是,我不知道如何/使用哪个DNS服务器。 如果我优先考虑我的家庭DNS服务器,我可以解决(1)和(2),但不能(3)。 如果我优先我的VPN DNS服务器,我无法parsingtypes(2)的地址。 当然,通过nslookup查找地址并明确设置正确的服务器,所以我知道我的本地DNS服务器是可以的。

如果找不到地址(NXDOMAIN),有什么办法可以让我的电脑在第二台DNS服务器上备份? 或者,有什么办法可以告诉不同的查询去不同的服务器[也许通过设置不同的子域名; foo.local.something与bar.vpn.something]?

谢谢

我没有使用过这个,但是我相信这个工具很可能满足你的Linux机器的需求是dnsmasq 。

DNS掩码可以设置为将其请求转发到上游。 同时它也可以提供在本地/ etc / hosts文件中定义的名称。 您可以使用--server选项将请求转发到您定义的域的特定DNS服务器。

-S,–local,–server = [/ [] / [domain /]] [[#] [@ | [#]]
直接指定上游服务器的IP地址。 设置这个标志不禁止读取/etc/resolv.conf,使用-R来做到这一点。 如果给出一个或多个可选域,则该服务器仅用于这些域,并且仅使用指定的服务器查询。 这是专用于名称服务器:如果你的networking上有一个名字服务器,它处理的forms是xxx.internal.thekelleys.org.uk,名字是192.168.1.1,然后给出标志-S /internal.thekelleys.org.uk/ 192.168.1.1会把所有内部机器的查询发送到这个名称服务器,其他的一切都会去/etc/resolv.conf中的服务器。

我不知道如何在Windows电脑上解决这个问题。 如果你不能提出一个替代的办法,你可以做的,以避免这个问题将是从您的Linux计算机连接到openvpn服务器,然后在客户端上的tun *接口上设置路由NAT,并启用IP转发。 调整所有其他系统上的路由和DNS设置,以使用OpenVPN连接指向Linux机器。 这将有效地使您的Linux机器成为一个网关,根据需要将stream量引导到VPN上。

您可以设置2个DNS服务器,一个用于家庭networking,一个用于VPN。 你可以使一个主机和另一个从机在两者之间进行复制(双方都有两个DNS保证,如果VPNclosures,双方仍然可以有DNS)。这些服务器也可以是networking的recursion。

如果你想使用dnsmasq ,它也可以是一个小权威的服务器。 将您想要的名称添加到路由器上的/etc/hosts ,并使该文件与VPN路由器保持同步。

我根本不知道openvpn,但是对于Cisco VPN客户端来说,有一种叫做“split-dns”的东西,它说:“如果有人在whatever.company上找东西 – 我就是VPN-into.com,然后从DNS获得它的IP服务器通过VPN提交,否则去通过互联网和/或家庭的东西“。 我想这听起来像你想要的。

编辑 – 这里有一个链接到openvpn这样做的人。