GNU/Linux >> Linux の 問題 >  >> Ubuntu

Systemd-resolved、Resolvconf.service、Resolvconf、Openresolv。なぜ、どれとどのように?

/etc/resolv.confに2つのネームサーバーを追加するVPNクライアントを使用しています 。私の接続はすべてNetwork-Managerによって管理されています。

仕事用VPNにはこのVPNクライアントを使用する必要がありますが、Ubuntuがsystemd-resolvedに移行した後 16.10では、接続とDNSに問題があります。 systemd-resolvedのように見えます /etc/resolv.confを変更します 内部ページが解決されない何らかの理由でデフォルトのネームサーバーに戻ります。私はこれをもう少し調べて、resolvconfを置き換えることになりました openresolvを使用 。それは大いに役立ちましたが、それでもsystemd-resolved /etc/resolv.confをリセットします VPNがしばらく稼働した後。

接続が確立されたとき、数分後、またはまったく接続されていない可能性があります。次に、systemd-resolvedを無効にしました およびsystemd resolvconf.service openresolvのみを実行します 。すべてうまく機能しているようです。

ただし、これはすべて非常に紛らわしいです。 systemd-resolvedを使用する理由はありますか 他の1人と? Ubuntu 16.10で有効になっているので、理由があるはずだと思いましたが、/etc/resolv.confをめぐって争いが発生しているようです。 。

operesolvを実行できれば素晴らしいと思います これを説明してもらいます。私はそれについてかなり読んだことがありますが、なぜ/etc/resolv.confなのかまだわかりません systemdを使用した場合にのみ、そのまま管理されます そのため、VPNクライアントを使用できません。

承認された回答:

UbuntuのOpenVPNでこれらの構成アイテムを処理するスクリプトを変更することができました(18.04でテスト済み)。そのためのパッチは次のとおりです:

--- /etc/openvpn/update-resolv-conf.orig    2019-03-13 19:14:16.163914424 +0400
+++ /etc/openvpn/update-resolv-conf 2019-03-13 19:29:30.380420708 +0400
@@ -15,7 +15,7 @@
 #     foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
 #

-[ -x /sbin/resolvconf ] || exit 0
+[ -x /usr/bin/systemd-resolve ] || exit 0
 [ "$script_type" ] || exit 0
 [ "$dev" ] || exit 0

@@ -43,16 +43,16 @@
        fi
    done
    R=""
-   [ "$SRCHS" ] && R="search $SRCHS
-"
+   for SRCH in $SRCHS ; do
+       R="${R}--set-domain=$SRCH "
+   done
    for NS in $NMSRVRS ; do
-           R="${R}nameserver $NS
-"
+       R="${R}--set-dns=$NS "
    done
-   echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
+   /usr/bin/systemd-resolve -i ${dev} ${R}
    ;;
   down)
-   /sbin/resolvconf -d "${dev}.openvpn"
+   echo "Doing nothing, interface disappears."
    ;;
 esac

OpenVPN構成ファイルに次の項目を追加する必要があります:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Ubuntu
  1. キャッシュとしてのRedis:その仕組みと使用理由

  2. データが重要である理由とその保護方法

  3. Fedora34にRedis6をインストールして設定する方法

  1. CentOS8およびFedora33にFail2Banをインストールおよび構成する方法

  2. リモートDockerホストを使用する方法と理由

  3. Debian に Redis をインストールして構成する方法

  1. Linuxでサービスを開始、停止、および再起動する方法

  2. Dovecotをインストールして構成する方法

  3. Ubuntu16.04にOpenSSHをインストールして構成する方法