首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DNS服务器使用NetworkManager、系统解决和VPN隧道“忽略”。

DNS服务器使用NetworkManager、系统解决和VPN隧道“忽略”。
EN

Ask Ubuntu用户
提问于 2022-01-07 17:06:55
回答 1查看 2.4K关注 0票数 1

使用Ubuntu20.04,我通过WLan使用NetworkManager连接互联网。然后用OpenConnect建立了一个虚拟专用网。我使用的是"stub resolv.conf":/etc/resolv.conf -> /run/systemd/resolve/stub-resolv.confhosts: files mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns in /etc/nsswitch.conf

除了VPN的DNS 10.233.63.202没有被使用之外,一切正常:

代码语言:javascript
复制
Link 37 (tun0)
      Current Scopes: DNS          
DefaultRoute setting: yes          
       LLMNR setting: yes          
MulticastDNS setting: no           
  DNSOverTLS setting: no           
      DNSSEC setting: no           
    DNSSEC supported: no           
  Current DNS Server: 10.233.63.202
         DNS Servers: 10.233.63.202
                      10.233.63.203

查看日志-u系统-解析的-f,只使用WLan链接的“当前DNS服务器”192.168.3.1:

代码语言:javascript
复制
Link 3 (wlo1)
      Current Scopes: DNS               
DefaultRoute setting: yes               
       LLMNR setting: yes               
MulticastDNS setting: no                
  DNSOverTLS setting: no                
      DNSSEC setting: no                
    DNSSEC supported: no                
  Current DNS Server: 192.168.3.1       
         DNS Servers: 192.168.3.1       
                      10.233.63.202     
                      10.231.76.11      
          DNS Domain: ~.

据我所知,系统解析可能不会使用tun0的DNS,因为NetworkManager将~. "DNS域“添加到wlo1。即使我用sudo resolvectl domain tun0 ~.将它添加到D10中,并使用sudo resolvectl domain wlo1 some.search.tldwlo1中删除它,也不使用tun0的DNS。

我甚至将tun0的DNS之一添加到wlo1中,并期望从192.168.3.1开始使用它就没有答案,但事实并非如此。

只有当我更改wlo1的DNS顺序,即10.233.63.202是“当前DNS服务器”时,才能解析VPN中的主机名。似乎只有wlo1的“当前DNS服务器”才会被查询。

如果由于OpenConnect、NetworkManager和系统解析而没有使用虚拟专用网的DNS,由于某些原因,我可以接受。

但是为什么没有使用wlo1的其他DNS呢?事实上,到目前为止,这几年一直运转良好。

另外,我不知道我有多担心DNS泄漏,如果我将happens添加为WLan链接的“当前DNS服务器”,可能会发生这种情况?

EN

回答 1

Ask Ubuntu用户

发布于 2022-05-19 20:44:14

我在20.04LTS上使用了一些非常类似的网络管理器-openconnect,在阅读了mcatanzaro的关于VPN和拆分DNS的博客之后,我想出了足够的方法来完成我的设置。一些提示:

  • “解决”允许您将默认的DNS搜索更改为不同的接口(尚不确定您的搜索为什么不能工作),但这确实会泄漏VPN DNS服务器的所有查找。
  • 您可以通过使用解析向量直接设置和清除DNS域设置来测试这一点;例如,下面我正在使wlo1活动以进行DNS搜索,没有任何针对tun0的查询: sudo resolvectl域tun0“sudo can tun0”
  • 如果您清除两个接口的DNS域设置--将两个接口的DNS设置都设置为空字符串--那么两个接口的DNS服务器都将被查询,如果其中任何一个返回的答案都是您将得到的。(我不知道如果他们在NXDOMAIN结果以外的任何问题上有不同意见,他们如何解决冲突。)
  • 但是,如果不想泄漏DNS请求,则需要设置DNS域,以便只将DNS服务器用于特定的域子集。您可以使用上面的resolvectl,或者,为了在您的NetworkManager配置中永久地更改它,您可以使用名称混乱的dns-search配置: sudo nmcli con vpn0 ipv4.dns-搜索"~foo.internal,~bar.corp.com“
  • 没有比这更复杂的方法了。您需要告诉resolved将VPN的DNS服务器用于特定的一组域,或者将所有DNS查询泄漏给它。

关于nmcli输出中的倾斜点,请注意,dns-search语法允许您同时指定DNS域和DNS搜索;前缀为tildes的域不会添加到DNS搜索中,我认为这是有意义的,否则您可能会意外泄漏缺少FQDN的请求。

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1385841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档