systemd-разрешенный, resolvconf.service, resolvconf и openresolv. Да ведь который и как?

Я использую клиента VPN, который добавляет два сервера имен к /etc/resolv.conf. Всеми моими подключениями управляет Администратор сети.

Я должен использовать этого клиента 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 с одним из других? Это было включено в Ubuntu 16.10, таким образом, я думал, что должна быть причина его, но это, кажется, вызывает борьбу /etc/resolv.conf.

Было бы замечательно, если я мог бы просто работать operesolv и объясните это. Я сделал довольно мало чтения на нем, но я все еще не понимаю почему /etc/resolv.conf управляется как он, только это, когда я использую systemd для него я не могу использовать своего клиента VPN.

12
задан 11 April 2017 в 02:14

3 ответа

Мне удалось изменить сценарий, который обрабатывает эти элементы конфигурации в OpenVPN в Ubuntu (протестированный на 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
1
ответ дан 23 November 2019 в 03:46

Какого клиента VPN Вы используете? Я испытывал затруднения из-за прямого OpenVPN, но устанавливал версию NM клиента, разрешил проблемы. Ну, большинство из них, я не мог предотвратить продвигаемый маршрут, но это - совершенно другая проблема.

точка: Ваш клиент VPN имеет для знания о том, как взаимодействовать с идеей systemd того, как справиться с сервисом DNS. Я не рекомендую это, но можно попробовать к отключению resolvd сервиса (systemctl disable systemd-resolved.service), чтобы видеть, улучшает ли это вещи, но в конечном счете необходимо будет получить клиент, который понимает, как отправить капризам systemd :)

(Поставка systemd, пересеченная под парусом давным-давно, давайте не откроем обсуждение того, почему были сделаны некоторые вещи.)

0
ответ дан 23 November 2019 в 03:46

Обновление клиента VPN я использовал разрешенный (предназначенная игра слов) проблема. Это был клиент OpenFortiGui для Fortinet VPN.

0
ответ дан 23 November 2019 в 03:46

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

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