Estou mudando do Debian ifupdown
para o systemd-networkd
, e geralmente funciona bem. Uma coisa que falta é que, a cada mudança de rede, quero ligar killall -ARLM tinc
para que minha VPN seja ativada em tempo hábil.
Fornece systemd
ou systemd-networkd
fornece essa funcionalidade? Como eu usaria isso?
Responder1
Estou usando networkd-dispatcher
para 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.service
para 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.service
unidades através do systemctl kill
comando 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.service
como 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.