systemd-networkd - como forçar nova configuração sem reiniciar?

12

Na minha caixa Arch, eu tinha uma ponte de rede. O objetivo era remover a ponte e usar apenas o adaptador de rede não em ponte. Para fazer isso, removi todos os arquivos de configuração * .netdev e * .network /etc/systemd/networke os substitui por um arquivo simples:

/etc/systemd/network/lan.network
--------------------------------
[Match]
eno*

[Network]
DHCP=ipv4

Em seguida, reiniciei o serviço de rede usando systemctl restart systemd-networkd, assumindo que isso me deixaria apenas com loa eno*interface e. Infelizmente, porém, isso não teve efeito. Uma rápida olhada ip linkainda mostrou a interface da ponte ativa e ativa.

Como o tempo de atividade neste caso específico não é crucial, eu apenas reiniciei a máquina que resolveu o problema. Ainda assim, gostaria de pensar que as reinicializações não devem ser necessárias para esse tipo de coisa. O que eu senti falta de fazer?

vic
fonte
v244 has networkctl reloade reconfigure @ github.com / systemd
frostschutz

Respostas:

9

Se sua interface principal de bridge ainda estiver ativa, suas interfaces escravas ligadas permanecerão ligadas, mesmo que novas configurações sejam descobertas para elas enquanto isso. Então apenas perca a ponte.

ip link set down br0
ip link del dev br0
systemctl restart systemd-networkd

fonte
1
Não perderia o acesso à rede no processo?
22416 vic
@ vic - se o seu acesso à rede é roteado através de uma ponte à qual você vinculou seu nic, então sim, espero que sim. não consigo pensar em uma maneira simples de fazer o contrário, e as maneiras complicadas em que consigo pensar são apenas incompletas e envolvem nics virtuais de retenção temporária e duping de filtro de rede no kernel de todos os pacotes no desenvolvedor. feio e bobo. isso ou viagem no tempo. talvez exista outra maneira, mas você não aprenderá isso comigo. de qualquer maneira, a rede é perdida somente após o primeiro comando e depois restaurada após o terceiro. provavelmente menos dt do que uma reinicialização.
1
@vic Eu sei que estou atrasado para a festa, mas uma maneira poderia ser encadear os comandos juntos em uma única linha, como ip link set down br0 && ip link del dev br0 && systemctl restart systemd-networkd. Sua conexão pode cair, pelo menos momentaneamente, mas o serviço de rede do host deve estar online novamente e você sempre pode criar uma nova sessão SSH desde que saiba o endereço IP que estará recebendo após a reinicialização.
Code_dredd
1
Use um ponto-e-vírgula, &&para não encadear esses comandos. Se um falhar, ele ainda pode reconfigurar a conexão da rede de uma forma utilizável para que você não tem que se levantar e visitar o servidor ...
Josef Kufner