Je passe de Debian ifupdown
à systemd-networkd
, et cela fonctionne généralement bien. Un bit manquant est qu'à chaque changement de réseau, je veux appeler killall -ARLM tinc
, afin que mon VPN monte en temps opportun.
Fournit systemd
ou systemd-networkd
fournit une telle fonctionnalité? Comment pourrais-je l'utiliser?
systemd
events
systemd-networkd
Joachim Breitner
la source
la source
Tinc doit être mis à jour en tant qu'unité système au lieu d'envoyer des signaux directs. Pour y parvenir , on a besoin de configurer leurs fichiers unitaires être enchaînés avec les appropriés
Require=
,Before=
et desAfter=
lignes dans la[Unit]
section. Assurez-vous également que vous définissez le bonWantedBy=
pour les services réseau. (ie.WantedBy=
{network.target
,network-online.target
, aunetwork-pre.target
lieu de}multi-user.target
)Cela permet d'exécuter
systemctl restart systemd-networkd.service
pour redémarrer votre réseau. Combiné cela avecsystemd-resolvd
,udev
/dbus
(plus[email protected]
lorsqu'il est sur wifi) et son réseau fonctionne.Assurez-vous de lire les articles sur le passage à systemd-networkd et aux dépendances d'unité . C'est également un moyen d'envoyer des signaux à vos
systemd.service
unités via lasystemctl kill
commande comme indiqué dans le guide systemd pour les administrateursla source
systemctl kill
pour délivrer le signal. Mais je ne vois pas comment déclencher cela sur un changement de configuration réseau.network.target
puisnetwork-online.target
pour démarrer cette unité. il suffit donc d'tinc.service
inclureRequires=systemd-networkd.service
,WantedBy=network-online.target
puis lorsque systemd-networkd démarre, cela fera apparaître l'interface nic et tun, établira une adresse IP, puis signalera à tinc de démarrer ou de redémarrer si nécessaire.case "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac
Ce n'est actuellement pas possible. Cependant, vous ne pouvez utiliser
systemd-networkd-wait-online.service
qu'une dépendance au démarrage pour reconfigurer tinc. D'après mon expérience, tinc réagira rapidement aux changements dans la configuration du réseau. Au moins sur Linux, il pourrait utiliser rtnetlink pour écouter les changements d'interface.la source