web-dev-qa-db-ja.com

OpenVPNとsystemd-resolved:DNSがVPN内部名を解決しない

OpenVPNを使用して一部の仮想マシンにVPNを設定しています。 VMの1つがdnsmasqを実行して、ネットワーク内部の基本的なDNSを提供しています。私のクライアントはUbuntuを実行していますが、Ubuntuは多かれ少なかれsystemd解決を強制します。 DNSが構成されていると主張していますが、実際にはVPN内のホスト名でnslookupまたはDigを実行できないことがわかりました。名前ではなくIPでpingできます。

設定ファイルについて詳しく見ていきましょう。

OpenVPNサーバー設定:

mode server
local 192.168.50.101
port 1194
proto udp
dev tun
ca /etc/openvpn/server/ssl/ca.pem
cert /etc/openvpn/server/ssl/cert.pem
key /etc/openvpn/server/ssl/key.pem
dh /etc/openvpn/server/ssl/dh2048.pem
topology subnet
server 10.99.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
Push "route 10.10.0.0 255.255.255.0"
Push "dhcp-option DNS 10.99.0.1"
keepalive 10 120
cipher AES-128-CBC   # AES
comp-lzo
Push "comp-lzo yes"
user openvpn
group openvpn
persist-key
persist-tun
status openvpn-status.log
log-append  openvpn.log
verb 6
mute 20

クライアント設定:

client
dev tun
proto udp
remote 192.168.50.101 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca REDACTED
cert REDACTED
key REDACTED
remote-cert-tls server
cipher AES-128-CBC
comp-lzo
verb 3
mute 20
ping-restart 30
script-security 2
setenv PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

https://github.com/jonathanio/update-systemd-resolved をインストールしました。これは推奨されるようです。実際、systemd-resolvedログ(Switching to DNS server 10.99.0.1 for interface tun0.)および--status出力:

Link 26 (tun0)
      Current Scopes: DNS
       LLMNR setting: yes
MulticastDNS setting: no
      DNSSEC setting: no
    DNSSEC supported: no
         DNS Servers: 10.99.0.1

/etc/resolve.confは、systemd-resolvedを使用するためのデフォルトである127.0.0.53を指します。

NetworkManagerの組み込みOpenVPN接続を使用してみましたが、DNSの問題も修正されておらず、ルートも正しく設定されていません(そのため、pingやIPによる接続もできません)。

人々がおそらく尋ねるであろう他のいくつかの事柄:

  • このセットアップは、Viscosityを使用して、Macの同僚に機能します。ここでクライアント側で失敗しているのはUbuntu/Linuxだけです。
  • OpenVPNサーバーのファイアウォールはポート53を許可し、Telnetで確認できます。
  • /etc/resolv.conf VPNのDNSサーバー(10.99.0.1)を指すようにすると、DNS解決が正常に機能します。ただし、resolv.confはsystemd-resolvedまたはNetworkManagerによってresolvconfを介して管理されており、Ubuntu Apple Cart。
2
siride

最初に、コンソールから接続をテストします。

Sudo openvpn --verb 1 --config /path_to_conf/config.ovpn

このエラーが発生した場合:

/etc/resolvconf/update.d/libc:警告:/etc/resolv.confは/run/resolvconf/resolv.confへのシンボリックリンクではありません

次に修正/ etc/resolvconf/update.d/libc

DYNAMICRSLVCNFFILE="/run/resolvconf/resolv.conf"

#DYNAMICRSLVCNFFILE="/run/resolvconf/resolv.conf"
DYNAMICRSLVCNFFILE="/run/systemd/resolve/resolv.conf"

次に、openvpnサーバー設定にオプションを追加します。

Push "dhcp-option DOMAIN YOUR_DOMAIN_NAME"
1
benu