systemd-networkd - как форсировать новую конфигурацию без перезагрузки?

12

На моей коробке Arch у меня был сетевой мост. Целью было удалить мост и использовать только сетевой адаптер без моста. Для этого я удалил все конфигурационные файлы * .netdev и * .network /etc/systemd/networkи заменил их одним простым файлом:

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

[Network]
DHCP=ipv4

Затем я перезапустил службу сети , используя systemctl restart systemd-networkd, предполагаю , что это оставит меня просто с loи в eno*интерфейсе. К сожалению, это никак не отразилось. Беглый взгляд на ip linkвсе еще показал интерфейс моста активным.

Поскольку время безотказной работы в данном конкретном случае не имеет решающего значения, я просто перезагрузил компьютер, который решил проблему. Тем не менее, я хотел бы думать, что перезагрузки не должны быть необходимыми для такого рода вещей. Что я упустил сделать?

Vic
источник
v244 имеет networkctl reloadи reconfigure @ github.com / systemd
frostschutz

Ответы:

9

Если ваш главный интерфейс моста все еще работает, то его связанные подчиненные интерфейсы останутся связанными, даже если в это время для них будут обнаружены новые конфигурации. Так что просто потеряй мост.

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

источник
1
Разве я не потерял бы доступ к сети в процессе?
Вик
@vic - если ваш сетевой доступ направляется через мост, к которому вы привязали свой ник, тогда да, я ожидаю, что так. я не могу придумать простой способ сделать иначе, а сложные способы, которые я могу придумать, только наполовину испечены и включают временную задержку виртуальных сетевых адаптеров и дублирование netfilter в ядре всех пакетов на dev. уродливый и глупый. или это или путешествие во времени. может быть, есть другой способ, но вы не узнаете это от меня. в любом случае, сеть теряется только после первой команды, а затем восстанавливается после третьей. вероятно, меньше, чем перезагрузка.
1
@vic Я знаю, что опаздываю на вечеринку, но одним из способов может быть объединение команд в одну строку, например ip link set down br0 && ip link del dev br0 && systemctl restart systemd-networkd. Ваше соединение может оборваться, по крайней мере, на мгновение, но сетевая служба хоста должна снова подключиться, и вы всегда можете создать новый сеанс SSH, если вы знаете IP-адрес, который вы получите после перезапуска.
code_dredd
1
Используйте точку с запятой, &&чтобы не связывать эти команды. Если произойдет сбой, он все равно может переконфигурировать сетевое соединение удобным для использования способом, поэтому вам не придется вставать и посещать сервер ...
Йозеф Куфнер