OpenVPN et résolu par systemd

9

Comment utilise-t-on le DNS poussé via un serveur openvpn avec résolu par systemd?

Avant de décider de «mettre à niveau» vers systemd-networkd. Je pourrais utiliser une variante du script openvpn-resolv-conf pour appeler resolvconf pour gérer les entrées dans /etc/resolv.conf lors de l'établissement réussi d'un tunnel vpn.

Cela me permettrait de résoudre les noms sur l'extrémité distante du tunnel vpn.

Maintenant que systemd-resolution gère /run/systemd/resolved/resolv.conf, est-il possible d'ajouter automatiquement DNS poussé via une connexion openvpn à la liste des serveurs de noms utilisés pour la résolution?

sw1nn
la source

Réponses:

2

Edit : à ce jour, cette solution est pour la plupart obsolète. Les utilisateurs de versions plus récentes de systemd doivent se référer à la solution proposée par Piotr Dobrogost.

L'astuce consiste à créer un fichier de configuration réseau temporaire avec des paramètres DNS, puis à redémarrer systemd-networkpour qu'il applique les paramètres DNS globaux.

J'ai écrit un script modifié qui fait exactement cela. Vous pouvez le vérifier ici: update-systemd-network.sh

WGH
la source
Je trouve qu'il y a une condition de concurrence avec la création de routes poussées via la configuration openvpn au redémarrage de systemd-networkd. Cependant, au lieu de créer une nouvelle configuration réseau et de redémarrer, systemd-networkil est possible de créer un fichier très similaire /run/systemd/resolved-conf.d/, puis de redémarrer, systemd-resolvedce qui semble fonctionner
sw1nn
On dirait que les fonctionnalités ci-dessus dans SystemD-Resolution ont été ajoutées en 229 après ma question d'origine.
sw1nn
Selon @grawity de #systemd - la bonne façon de le faire fonctionner est d'appeler org.freedesktop.resolve1.Manager.SetLinkDNS()via DBus
Piotr Dobrogost