Con systemd-networkd, realice una acción al cambiar la configuración de la red

Con systemd-networkd, realice una acción al cambiar la configuración de la red

Estoy cambiando de Debian ifupdowna systemd-networkd, y en general funciona bien. Una cosa que falta es que cada vez que cambie la red, quiero llamar killall -ARLM tincpara que mi VPN se active de manera oportuna.

¿Ofrece systemdo systemd-networkdproporciona dicha funcionalidad? ¿Cómo lo usaría?

Respuesta1

Estoy usando networkd-dispatcherpara 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.targeten lugar de multi-user.target)

Esto permite ejecutar uno systemctl restart systemd-networkd.servicepara 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.serviceunidades a través del systemctl killcomando 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.servicecomo 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.

información relacionada