Настройки DNS на Network-Manager при использовании VPN

Недавно я обновился до 19.04 и заметил некоторые изменения в NetworkManager при использовании VPN.

  • Я хочу использовать VPN с собственным локальным DNS-сервером, который выталкивается из DHCP.
  • У меня есть отдельные профили VPN. Один для «полного VPN», который устанавливает маршрут по умолчанию к удаленной сети, и один профиль «разделенного туннеля» с включенной настройкой только для локальных ресурсов

С тех пор, как я обновился до 19.04, NetworkManager Похоже, что используется только отправленный DNS-сервер, что означает, что, когда разрешено установить default-route (когда флажок «использовать это соединение только для ресурсов в своей сети») не установлен.

Разрешить NetworkManager установить маршрут по умолчанию:

~$ resolvectl status tun0
Link 16 (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: 192.168.1.1
         DNS Servers: 192.168.1.1
          DNS Domain: local.domain

активировать флажок для локальных ресурсов только в том же профиле vpn:

~$ resolvectl status tun0
Link 8 (tun0)
      Current Scopes: none
DefaultRoute setting: no
       LLMNR setting: yes
MulticastDNS setting: no
  DNSOverTLS setting: no
      DNSSEC setting: no
    DNSSEC supported: no

Этот параметр работал независимо от default-route- настройка раньше, похоже, она изменилась с новым 19.04 NetworkManager (v1.16.0). Кто-нибудь может подтвердить?

Редактировать: Это настольная установка . Вот некоторые подробности:

~$ ls -al /etc/resolv.conf
lrwxrwxrwx 1 root root 39 Apr 20 15:41 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

~$ cat /etc/resolv.conf
# This file is managed by man:systemd-resolved(8). Do not edit.
#
# This is a dynamic resolv.conf file for connecting local clients to the
# internal DNS stub resolver of systemd-resolved. This file lists all
# configured search domains.
#
# Run "resolvectl status" to see details about the uplink DNS servers
# currently in use.
#
# Third party programs must not access this file directly, but only through the
# symlink at /etc/resolv.conf. To manage man:resolv.conf(5) in a different way,
# replace this symlink by a static file or a different symlink.
#
# See man:systemd-resolved.service(8) for details about the supported modes of
# operation for /etc/resolv.conf.

nameserver 127.0.0.53
options edns0
search uman.enbw.net

~$ cat /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

~$ cat /etc/netplan/*.yaml
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
0
задан 31 May 2019 в 10:53

2 ответа

Я погуглил здесь и у меня точно такая же проблема. (Ubuntu 19.04)

Для меня этот ответ решил.

nmcli c modify <vpn-settings-name> ipv4.dns-search '<domain>' 

Вы должны указать , что соответствует имени настройки VPN в графическом интерфейсе. И <домен> — это доменное имя, которое вы хотите искать через DNS в удаленной сети.

После повторного подключения к VPN systemd-resolved status ppp0 показывает

Link 6 (ppp0)
      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.1.1
         DNS Servers: 192.168.1.1 (<--- my dns)
                      192.168.1.10
          DNS Domain: corp

12
ответ дан 25 October 2019 в 05:46

Просто добавляю к ответу соймска . Похоже, что DNS-сервер из VPN-соединения будет использоваться, если:

  • VPN настроен на использование для всего трафика
  • Существует DNS Search Domain, связанный с VPN-соединением

Как предложил soymsk, вы можете установить домен поиска на клиенте, используя nmcli .

Если вы контролируете сервер VPN, вероятно, лучше удалить домен поиска DNS с сервера VPN. Таким образом, вам не нужно устанавливать его для каждого клиента.

Я добавил следующую строку в /etc/openvpn/server.conf на моем сервере VPN, и это имело тот же эффект, что и установка домена поиска DNS на клиенте:

push "dhcp-option DOMAIN <domain>"

Где <домен> - это домен, который вы хотите добавить к любым неквалифицированным именам хостов, к которым вы пытаетесь получить доступ (домен вашей локальной сети). кажется важным то, что для VPN-подключения установлен DNS-поисковый домен, неважно, какой DNS-поисковый домен установлен.

1
ответ дан 12 January 2020 в 13:44

Другие вопросы по тегам:

Похожие вопросы: