Estou mudando do Debian ifupdown
para systemd-networkd
, e geralmente funciona bem. Um ponto que falta é que, a cada mudança de rede, desejo ligar killall -ARLM tinc
, para que minha VPN suba em tempo hábil.
Será systemd
ou systemd-networkd
fornecer tal funcionalidade? Como eu o usaria?
systemd
events
systemd-networkd
Joachim Breitner
fonte
fonte
O Tinc deve ser atualizado como uma unidade systemd em vez de enviar sinais diretos. Para alcançar este precisa para configurar seus arquivos de unidade para ser acorrentado com o apropriadas
Require=
,Before=
eAfter=
linhas na[Unit]
seção. Verifique também se você definiu o corretoWantedBy=
para os serviços de rede. (isto é.WantedBy=
{network.target
,network-online.target
,network-pre.target
} em vez demulti-user.target
)Isso permite executar
systemctl restart systemd-networkd.service
para reiniciar sua rede. Combinado isso comsystemd-resolvd
,udev
/dbus
(mais[email protected]
quando estiver em wifi) e a rede de alguém simplesmente funciona.Leia os artigos sobre como mudar para dependências systemd-networkd e unit . Essa também é uma maneira de enviar sinais para suas
systemd.service
unidades através dosystemctl kill
comando conforme documentado no manual do systemd for administartorsfonte
systemctl kill
para entregar o sinal. Mas não vejo como disparar isso em uma alteração na configuração da rede.network.target
momentonetwork-online.target
para iniciar essa unidade. bastatinc.service
incluirRequires=systemd-networkd.service
eWantedBy=network-online.target
, em seguida, quando o systemd-networkd iniciar, abrirá a interface nic e tun, estabelecerá um endereço IP e depois sinalizará para o tinc iniciar ou reiniciar conforme necessário.case "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac
No momento, isso não é possível. No entanto, você só pode usar
systemd-networkd-wait-online.service
como dependência na inicialização para reconfigurar o tinc. Na minha experiência, o tinc reagirá rapidamente às alterações na configuração da rede. Pelo menos no linux, ele poderia usar o rtnetlink para ouvir as alterações nas interfaces.fonte