web-dev-qa-db-ja.com

VPN使用時のNetwork-ManagerのDNS設定

私は最近19.04に更新し、VPNを使用するときにNetworkManagerにいくつかの変更があることに気づきました。

  • DHCPからプッシュされる独自のローカルDNSサーバーでVPNを使用したい
  • 別のVPNプロファイルがあります。 1つはリモートネットワークへのデフォルトルートをインストールする「フルVPN」用、もう1つはローカルリソースの設定のみを有効にした「スプリットトンネル」プロファイル用

19.04に更新したため、NetworkManagerはプッシュされたDNSサーバーのみを使用しているようです。つまり、デフォルトルートのインストールが許可されている場合(チェックボックス「この接続をネットワーク上のリソースにのみ使用する」の場合)はチェックされていません。

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-settingから独立して機能していましたが、新しい19.04 NetworkManager(v1.16.0)で変更されたようです。誰か確認できますか?

編集:これはdesktopインストールです。詳細は次のとおりです。

~$ 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
3
schwupp

私はここでググって全く同じ問題を抱えています。 (Ubuntu 19.04)

私にとって、 この答え 解決しました。

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

GUIでVPN設定名に対応する<vpn-settings-name>を指定する必要があります。また、<domain>は、リモートネットワークで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

4
soymsk

soymskの答え に追加するだけです。次のいずれかの場合、VPN接続のDNSサーバーが使用されるようです。

  • VPNはすべてのトラフィックに使用されるように設定されています
  • VPN接続に関連付けられたDNS検索ドメインがあります

Soymskが提案したように、nmcliを使用してクライアントに検索ドメインを設定できます。

VPNサーバーを制御している場合は、VPNサーバーからDNS検索ドメインをプッシュする方が良いでしょう。そうすれば、クライアントごとに設定する必要がなくなります。

VPNサーバーの/etc/openvpn/server.confに次の行を追加しましたが、クライアントにDNS検索ドメインを設定するのと同じ効果がありました。

Push "dhcp-option DOMAIN <domain>"

ここで、<domain>は、アクセスしようとする非修飾ホスト名に追加するドメイン(ローカルネットワークのドメイン)です。重要なことは、VPN接続にDNS検索ドメインが設定されているようです。DNS検索ドメインがどのように設定されているかは問題ではありません

1
EdC