OpenVPN クライアント - DNS は、最初の起動時にのみ設定されます。

OpenVPN クライアント - DNS は、最初の起動時にのみ設定されます。

OpenVPNクライアントそしてシステムソリューション

OpenVPNクライアントを実行すると、接続してターゲットリソースを正しくロードできます。初回起動中のみ、再起動後。以降のすべての起動では、まだ「初期化順序の完了」にリンクされますが、リソースはロードされません。

数回の試行錯誤の後、これがDNS関連の問題であることがわかりました。

sudo resolvectl status
===>

# 1st launch

Link 6 (tun0)
    Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 mDNS/IPv4 mDNS/IPv6
         Protocols: +DefaultRoute +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
       Current DNS Server: 10.1.1.7
       DNS Servers: 10.1.1.7
       DNS Domain: aaa.xyz


# all other ones

Link 6 (tun0)
       Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6 mDNS/IPv4 mDNS/IPv6
         Protocols: +DefaultRoute +LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
        DNS Domain: aaa.xyz

 

私は治療法を見つけました:

sudo systemd-resolve -i tun0 \
  --set-dns=10.1.1.7 \
  --set-domain=aaa.xyz \
  --set-dnssec=off
 

実行する必要があるOpenVPNが再起動するたびに。

自動的に実行するにはどうすればよいですか?

それともむしろ - なぜこれが起こるのですか? OpenVPNの設定方法正しいDNS自動的に?

コンピュータの再起動後に初めてのみ正しく設定されるのはなぜですか?

答え1

ただし、OpenVPNがDNSを設定できるようにフックを追加できますsystemd-resolved

~からhttps://github.com/jonathanio/update-systemd-resolvedupdate-systemd-resolvedスクリプトをつかみ、実行可能としてマークします。

$ sudo wget -O /usr/local/bin/update-systemd-resolved \
  https://raw.githubusercontent.com/jonathanio/update-systemd-resolved/master/update-systemd-resolved \
  && sudo chmod +x /usr/local/bin/update-systemd-resolved

次に、OpenVPN クライアント構成に以下を追加します。

# /etc/openvpn/client/<your config file>.conf
...
script-security 2
setenv PATH /usr/bin
up /usr/local/bin/update-systemd-resolved
down /usr/local/bin/update-systemd-resolved
down-pre

OpenVPNがroot以外のユーザーとして実行されている場合(デフォルトではtrue)、OpenVPNがDBusと対話できるようにするPolicyKitルールを追加する必要があります。

# /etc/polkit-1/rules.d/00-openvpn-resolved.rules
polkit.addRule(function(action, subject) {
    if (action.id == 'org.freedesktop.resolve1.set-dns-servers' ||
        action.id == 'org.freedesktop.resolve1.set-domains' ||
        action.id == 'org.freedesktop.resolve1.set-dnssec') {
        if (subject.user == 'openvpn') {
            return polkit.Result.YES;
        }
    }
});

OpenVPNインスタンスが最初の実行でDNSを構成し、後続の実行でDNSを構成できないには、いくつかの理由があります。真実を明らかにするためには、より多くの調査が必要です。

関連情報