![获取本地和远程(通过 VPN)DNS名称以解析](https://linux22.com/image/802395/%E8%8E%B7%E5%8F%96%E6%9C%AC%E5%9C%B0%E5%92%8C%E8%BF%9C%E7%A8%8B%EF%BC%88%E9%80%9A%E8%BF%87%20VPN%EF%BC%89DNS%E5%90%8D%E7%A7%B0%E4%BB%A5%E8%A7%A3%E6%9E%90.png)
场景如下:网络 1 有自己的 DNS 服务器,在解析本地网络名称方面做得很好,它还设置为缓存服务器,因此它将解析一般互联网上的名称。到目前为止,一切都很简单。除此之外,我还可以使用 openvpn 建立到远程网络的 VPN 链接,该网络也有自己的 DNS 服务器,如果我相应地更改解析配置(无论通过何种方式),我就可以使用该服务器。
我设想在 resolv.conf 中添加另一个名称服务器行可以解决问题,认为一旦它从本地 DNS 服务器获得 NXDOMAIN,它可能会转到 VPN 末尾的 DNS 并相应地解析名称,但遗憾的是,事实并非如此。
那么,有什么方法可以设置,以便可以解析两个网络中的名称吗?
答案1
不优雅,不。没有理由在收到 NXDOMAIN 后转到服务器 #2,因为询问从协议角度而言是成功的。
您在这里要做的是根据目标域在服务器之间拆分查询,这意味着您需要在加入 VPN 的机器上运行某种名称服务器软件。一个名称服务器 IP 将作为默认转发器,您将为应发送到另一个名称服务器的特定域定义转发器。
/etc/resolv.conf
将包含nameserver 127.0.0.1
通常的服务器。
简而言之,对于工作站来说,这几乎肯定是一个过于复杂的解决方案,更不用说多个工作站了。在某些情况下,如果您的服务器半永久地驻留在 VPN 上,那么它可以工作,但在其他情况下,它太过笨拙。(当您离开 VPN 时,您的转发器会指向无法访问的 IP)