Estoy cambiando de Debian ifupdown
a systemd-networkd
, y en general funciona bien. Una cosa que falta es que cada vez que cambie la red, quiero llamar killall -ARLM tinc
para que mi VPN se active de manera oportuna.
¿Ofrece systemd
o systemd-networkd
proporciona dicha funcionalidad? ¿Cómo lo usaría?
Respuesta1
Estoy usando networkd-dispatcher
para ejecutar eventos después de cambios de estado de la interfaz:
Networkd-dispatcher es un demonio despachador para cambios de estado de conexión systemd-networkd. Este demonio es similar a NetworkManager-dispatcher, pero es mucho más limitado en los tipos de eventos que admite debido a la naturaleza limitada de systemd-networkd.
Enlace aGitlab
Respuesta2
Tinc debería actualizarse como una unidad systemd en lugar de enviar señales directas. Para lograr esto, es necesario configurar los archivos de su unidad para que se encadenen con las líneas apropiadas Require=
, Before=
y After=
en la [Unit]
sección. También asegúrese de configurar los WantedBy=
servicios de red correctos. (es decir, WantedBy=
{ network.target
,, network-online.target
} network-pre.target
en lugar de multi-user.target
)
Esto permite ejecutar uno systemctl restart systemd-networkd.service
para reiniciar su red. Combinado esto con systemd-resolvd
, udev
/ dbus
(más [email protected]
cuando está en wifi) y la red simplemente funciona.
Asegúrese de leer los artículos sobrecambiando a systemd-networkdydependencias de la unidad. Esta también es una forma de enviar señales a tus systemd.service
unidades a través del systemctl kill
comando como se documenta en elguía de systemd para administradores
Respuesta3
Actualmente esto no es posible. Sin embargo, solo puede usarlo systemd-networkd-wait-online.service
como dependencia del arranque para reconfigurar tinc. En mi experiencia, tinc reaccionará rápidamente ante los cambios en la configuración de la red. Al menos en Linux podría usar rtnetlink para escuchar cambios en las interfaces.