systemd-networkd: ¿cómo forzar una nueva configuración sin reiniciar?

12

En mi caja Arch, tenía un puente de red. El objetivo era eliminar el puente y usar solo el adaptador de red no puenteado. Para hacerlo, eliminé todos los archivos de configuración * .netdev y * .network /etc/systemd/networky los reemplacé con un archivo simple:

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

[Network]
DHCP=ipv4

Luego reinicié el servicio de red usando systemctl restart systemd-networkd, asumiendo que esto me dejaría solo con el loy la eno*interfaz. Lamentablemente, sin embargo, esto no tuvo ningún efecto. Un vistazo rápido ip linkaún mostraba la interfaz del puente activa y activa.

Debido a que el tiempo de actividad en este caso particular no es crucial, acabo de reiniciar la máquina que resolvió el problema. Aún así, me gustaría pensar que los reinicios no deberían ser necesarios para este tipo de cosas. ¿Qué extrañé hacer?

vic
fuente
v244 tiene networkctl reloady reconfigure @ github.com / systemd
frostschutz

Respuestas:

9

Si la interfaz maestra de su puente aún está activa, sus interfaces esclavas vinculadas permanecerán vinculadas incluso si se descubren nuevas configuraciones para ellas mientras tanto. Así que solo pierde el puente.

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

fuente
1
¿No perdería el acceso a la red en el proceso?
vic
@vic: si su acceso a la red se enruta a través de un puente al que ha vinculado su nic, entonces sí, eso espero. No puedo pensar en una manera simple de hacer lo contrario, y las formas complicadas en las que puedo pensar están a medias e involucran nics virtuales de retención temporal y duplicación del filtro de red en el núcleo de todos los paquetes en el desarrollador. feo y tonto. ya sea eso o viajar en el tiempo. tal vez hay otra forma, pero no lo aprenderás de mí. de todos modos, la red solo se pierde después del primer comando y luego se restaura después del tercero. probablemente menos dt que un reinicio.
1
@vic Sé que llego tarde a la fiesta, pero una forma podría ser encadenar los comandos en una sola línea, como ip link set down br0 && ip link del dev br0 && systemctl restart systemd-networkd. Su conexión puede caerse, al menos momentáneamente, pero el servicio de red del host debería estar nuevamente en línea y siempre puede crear una nueva sesión SSH siempre que sepa la dirección IP que obtendrá después de reiniciarla.
code_dredd
1
Use un punto y coma, no &&para encadenar estos comandos. Si uno falla, aún puede reconfigurar la conexión de red de manera utilizable para que no tenga que levantarse y visitar el servidor ...
Josef Kufner