OpenVPN и systemd-разрешены

9

Как использовать DNS, отправленный через сервер openvpn с systemd-resolved?

Прежде чем я решу «обновить» до systemd-networkd. Я мог бы использовать некоторый вариант сценария openvpn-resolv-conf для вызова resolvconf для управления записями в /etc/resolv.conf при успешном установлении туннеля vpn.

Это позволило бы мне разрешить имена на удаленном конце туннеля vpn.

Теперь, когда systemd-resolved управляет /run/systemd/resolved/resolv.conf, возможно ли автоматически добавлять DNS, отправленный через соединение openvpn, в список серверов имен, используемых для разрешения?

sw1nn
источник

Ответы:

6

Используйте скрипты вверх / вниз из https://github.com/jonathanio/update-systemd-resolved в файле конфигурации вашего OpenVPN. Они используют интерфейс DBus systemd-resolved для обновления информации DNS.

Петр Доброгост
источник
2

Изменить : на сегодняшний день это решение в основном устарело. Пользователям более новых версий systemd следует обратиться к решению, предоставленному Петром Доброгостом.

Хитрость заключается в том, чтобы создать временный файл конфигурации сети с настройками DNS, а затем перезапустить, systemd-networkчтобы применить глобальные настройки DNS.

Я написал модифицированный скрипт, который делает именно это. Вы можете проверить это здесь: update-systemd-network.sh

РГГ
источник
Я нахожу, что есть условие гонки с созданием маршрутов, проталкиваемых через конфигурацию openvpn при перезапуске systemd-networkd. Однако вместо создания новой конфигурации сети и перезапуска systemd-networkможно создать очень похожий файл, /run/systemd/resolved-conf.d/а затем перезапустить, systemd-resolvedчто, похоже, работает
sw1nn
Похоже, что вышеупомянутые функции в systemd-resolved были добавлены в 229 после моего первоначального вопроса.
sw1nn
Согласно @grawity из #systemd - правильный способ заставить это работать - звонить org.freedesktop.resolve1.Manager.SetLinkDNS()через DBus
Петр Доброгост