Com systemd-networkd, execute uma ação após alteração na configuração da rede

Com systemd-networkd, execute uma ação após alteração na configuração da rede

Estou mudando do Debian ifupdownpara o systemd-networkd, e geralmente funciona bem. Uma coisa que falta é que, a cada mudança de rede, quero ligar killall -ARLM tincpara que minha VPN seja ativada em tempo hábil.

Fornece systemdou systemd-networkdfornece essa funcionalidade? Como eu usaria isso?

Responder1

Estou usando networkd-dispatcherpara executar eventos após alterações no status da interface:

Networkd-dispatcher é um daemon despachante para alterações de status de conexão systemd-networkd. Este daemon é semelhante ao NetworkManager-dispatcher, mas é muito mais limitado nos tipos de eventos que suporta devido à natureza limitada do systemd-networkd.

Link paraGitlab

Responder2

O Tinc deve ser atualizado como uma unidade systemd em vez de enviar sinais diretos. Para conseguir isso, é necessário configurar seus arquivos de unidade para serem encadeados com as linhas Require=, Before=e After=na [Unit]seção apropriadas. Certifique-se também de definir o correto WantedBy=para serviços de rede. (ou seja, WantedBy={ network.target, network-online.target, network-pre.target} em vez de multi-user.target)

Isso permite executar systemctl restart systemd-networkd.servicepara reiniciar sua rede. Combinado isso com systemd-resolvd, udev/ dbus(mais [email protected]quando estiver em wifi) e a rede simplesmente funciona.

Não deixe de ler os artigos sobremudando para systemd-networkdedependências de unidade. Esta também é uma forma de enviar sinais para suas systemd.serviceunidades através do systemctl killcomando conforme documentado nosystemd para guia de administradores

Responder3

No momento, isso não é possível. No entanto, você só pode usar systemd-networkd-wait-online.servicecomo dependência de inicialização para reconfigurar o tinc. Na minha experiência, o tinc reagirá rapidamente às mudanças na configuração da rede. Pelo menos no Linux ele poderia usar o rtnetlink para ouvir alterações nas interfaces.

informação relacionada