systemd-networkd - jak wymusić nową konfigurację bez restartu?


12

Na moim urządzeniu Arch miałem mostek sieciowy. Celem było usunięcie mostu i użycie tylko karty sieciowej, która nie jest mostkowana. W tym celu usunąłem wszystkie pliki konfiguracyjne * .netdev i * .network /etc/systemd/networki zastąpiłem je jednym prostym plikiem:

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

[Network]
DHCP=ipv4

I następnie ponownie uruchomić usługę sieciową za pomocą systemctl restart systemd-networkd, zakładając, że to po prostu zostawić mnie z loi do eno*interfejsu. Niestety nie przyniosło to efektu. Szybkie spojrzenie na ip linknadal pokazało, że interfejs mostka jest aktywny i aktywny.

Ponieważ czas pracy w tym konkretnym przypadku nie jest kluczowy, ponownie uruchomiłem maszynę, która rozwiązała problem. Mimo to chciałbym pomyśleć, że ponowne uruchomienie nie powinno być konieczne do tego rodzaju rzeczy. Czego mi brakowało?


v244 ma networkctl reloadi reconfigure @ github.com / systemd
frostschutz

Odpowiedzi:


9

Jeśli twój główny interfejs mostu nadal działa, powiązane interfejsy slave pozostaną powiązane, nawet jeśli w międzyczasie zostaną dla nich odkryte nowe konfiguracje. Więc po prostu zgub most.

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

1
Czy nie straciłbym przy tym dostępu do sieci?
vic

@vic - jeśli twój dostęp do sieci jest poprowadzony przez most, do którego jesteś przywiązany, to tak, oczekuję. nie mogę wymyślić prostego sposobu, aby zrobić inaczej, a skomplikowane sposoby, o których myślę, są tylko na wpół wypalone i obejmują tymczasowe wstrzymanie wirtualnych kart sieciowych i kopiowanie wszystkich filtrów w jądrze przez jądro. brzydkie i głupie. albo to, albo podróż w czasie. może jest inny sposób, ale nie dowiesz się tego ode mnie. w każdym razie sieć zostaje utracona dopiero po pierwszym poleceniu, a następnie przywrócona po trzecim. prawdopodobnie mniej dt niż restart.

1
@vic Wiem, że jestem spóźniony na przyjęcie, ale jednym ze sposobów może być połączenie poleceń w jednym wierszu, na przykład ip link set down br0 && ip link del dev br0 && systemctl restart systemd-networkd. Twoje połączenie może zostać zerwane, przynajmniej na chwilę, ale usługa sieciowa hosta powinna być z powrotem online i zawsze możesz utworzyć nową sesję SSH, o ile znasz adres IP, który otrzymasz po ponownym uruchomieniu.
code_dredd

1
Użyj średnika, &&aby nie łączyć tych poleceń. Jeśli ktoś zawiedzie, nadal może rekonfigurować połączenie sieciowe w użyteczny sposób, abyś nie musiał wstawać i odwiedzać serwera ...
Josef Kufner,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.