在site1期间,我需要通过OpenVPN连接到site2。连接后,OpenVPN site2将推送DNS名称服务器和域搜索选项。这将导致site1的所有名称解析都失败。
示例:
/etc/openvpn/update-resolv-conf
的域将它们推送到解析。 /etc/presv.conf#动态resolv.conf(5)文件是否有一种方式,任何失败的DNS请求到site21应该掉到site1 DNS服务器?还是配置解析器,只将对site2.internal.domain的查询传递给site2名称服务器?
我在site1上使用Ubuntu14.04机器,site2上的OpenVPN服务器是一个pfSense 2.2盒。我管理两个网站,所以对任何一方进行更改都不是问题。这两个域都是非公有和内部使用的。
发布于 2019-05-09 01:56:22
您可以设置一个本地缓存服务器来监视您的/etc/resolv.conf
,因为它是由resolvconf
脚本更改的,并尝试从其中列出的所有名称服务器获取它的答案。
在许多系统上,安装dnsmasq包就足够了,而且还需要解决方案。
如果no-resolv
和no-poll
指令不在/etc/dnsmasq.conf
中,而lo
接口位于/etc/resolvconf/interface-order
顶部,则默认设置应该“只起作用”。如果上游名称服务器返回一些无法解析地址的任意in,则strict-order
in dnsmasq.conf可以提供帮助。您的/etc/resolv.conf
应该只显示nameserver 127.0.0.1
。
如果您喜欢固定的设置或连接到多个不相关的网络,并且希望避免泄露您的私有网络名称,那么所有的名称服务器都应该配置dnsmasq来查询基于域的特定服务器:
# /etc/dnsmasq.conf
# site1 servers
nameserver=/site1.internal.domain/172.16.1.101
nameserver=/site1.internal.domain/172.16.1.102
# site2 servers
nameserver=/site2.internal.domain/192.168.1.5
# default OpenNIC (optional, unless 'no-resolv' is set).
server=51.15.98.97
server=172.104.136.243
有关dnsmasq选项的更多信息,请参见此处:http://oss.segetech.com/intra/srv/dnsmasq.conf
发布于 2020-03-27 23:05:00
我还没有在Ubuntu上尝试过这一点,但是我能够在Arch Linux上使用openresolv和dnsmasq实现类似的设置。
所有更改都将在VPN客户端计算机上进行。VPN服务器不需要任何更改,因为它已经包括DNS名称服务器和域搜索选项。
resolvconf -l
查看所有resolv.conf文件。计算VPN接口的解析符名(即"resolv.conf from X“中的X)。在我的例子中,它是tun0
,我将在剩下的配置中使用它。/etc/resolvconf.conf
以添加以下选项: private_interfaces=tun0 name_servers=::1 127.0.0.1“dnsmasq_conf=/etc/dnsmasq-conf conf_resolv=/etc/dnsmasq-presv.conf/etc/dnsmasq.conf
以添加以下选项:conf-file=/etc/dnsmasq-con.conf解析文件=/etc/dnsmasq-conv.confresolvconf -u
生成dnsmasq配置文件。dnsmasq
服务并将其配置为在启动时启动。在Arch上,这是通过运行: systemctl start dnsmasq.service systemctl启用dnsmasq.service来完成的。name_servers
选项告诉解析器只列出/etc/resolv.conf
中的名称服务器(即它指向本地dnsmasq实例)。dnsmasq_
选项告诉解析器将可能已进入/etc/resolv.conf
的名称服务器写入dnsmasq文件。
private_interface
选项告诉解析器,该接口(您的虚拟专用网)提供的名称服务器只能在解析位于search
行指定的一个域中的主机名时使用。它将生成适当的dnsmasq配置来实现这一点。
使用此配置,site2.internal.domain下对主机的请求应该为192.168.1.5,而所有其他请求都应转到172.16.1.101或172.16.1.102。
如果系统不使用IPv6,则从name_servers
选项中删除::1。
发布于 2018-02-22 12:30:14
resolv.conf列出所有可用的DNS服务器。只要列表中的第一个已启动并运行,所有查询都将发送给它。除非第一个倒下了,否则对其他人什么也没有。所以,如果列表中的第一个DNS服务器出现了,并且知道答案,他会回答“我知道!",否则他会说”恐怕我不知道……“。仅此而已。您必须让192.168.1.5 (site2的DNS服务器)知道site1的所有条目,反之亦然。问候
https://unix.stackexchange.com/questions/209760
复制相似问题