systemd-networkd - Wie erzwinge ich eine neue Konfiguration ohne Neustart?


12

Auf meiner Arch-Box hatte ich eine Netzwerkbrücke. Ziel war es, die Bridge zu entfernen und nur den nicht überbrückten Netzwerkadapter zu verwenden. Zu diesem Zweck habe ich alle Konfigurationsdateien * .netdev und * .network unter entfernt /etc/systemd/networkund durch eine einfache Datei ersetzt:

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

[Network]
DHCP=ipv4

Ich habe dann den Netzwerkdienst mit neu gestartet systemctl restart systemd-networkd, vorausgesetzt, ich hätte nur die lound die eno*Schnittstelle. Dies hatte jedoch leider keine Auswirkung. Ein kurzer Blick auf ip linkimmer noch zeigte die Bridge-Schnittstelle aktiv und aktiv.

Da die Verfügbarkeit in diesem speziellen Fall nicht entscheidend ist, habe ich gerade den Computer neu gestartet, der das Problem gelöst hat. Trotzdem würde ich gerne denken, dass ein Neustart für solche Dinge nicht notwendig sein sollte. Was habe ich vermisst?


v244 hat networkctl reloadund reconfigure @ github.com / systemd
frostschutz

Antworten:


9

Wenn Ihre Bridge-Master-Schnittstelle noch aktiv ist, bleiben die gebundenen Slave-Schnittstellen gebunden, auch wenn in der Zwischenzeit neue Konfigurationen für sie entdeckt wurden. Also einfach die Brücke verlieren.

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

1
Würde ich dabei nicht den Netzwerkzugriff verlieren?
Vic

@vic - Wenn Ihr Netzwerkzugriff über eine Brücke geleitet wird, an die Sie Ihr Nic gebunden haben, dann ja, ich erwarte es. Ich kann mir keinen einfachen Weg vorstellen, etwas anderes zu tun, und die komplizierten Wege, die ich mir vorstellen kann, sind nur halbherzig und beinhalten temporäres Überhalten von virtuellen Nics und In-Kernel-Netfilter-Duping aller Pakete auf dem Entwickler. hässlich und albern. entweder das oder Zeitreise. Vielleicht gibt es einen anderen Weg, aber du wirst es nicht von mir lernen. Auf jeden Fall geht das Netzwerk erst nach dem ersten Befehl verloren und wird nach dem dritten wieder hergestellt. wahrscheinlich weniger dt als ein Neustart.

1
@vic Ich weiß, dass ich zu spät zur Party komme, aber eine Möglichkeit könnte darin bestehen, die Befehle in einer einzigen Zeile zu verketten, z ip link set down br0 && ip link del dev br0 && systemctl restart systemd-networkd. Ihre Verbindung wird möglicherweise zumindest vorübergehend unterbrochen, aber der Netzwerkdienst des Hosts sollte wieder online sein und Sie können jederzeit eine neue SSH-Sitzung erstellen, solange Sie die IP-Adresse kennen, die Sie nach dem Neustart erhalten.
code_dredd

1
Verwenden Sie ein Semikolon, &&um diese Befehle nicht zu verketten. Wenn einer ausfällt, kann die Netzwerkverbindung dennoch auf nutzbare Weise neu konfiguriert werden, sodass Sie nicht aufstehen und den Server besuchen müssen ...
Josef Kufner
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.