
Ich habe vor Kurzem einen Server eingerichtet, dessen Netzwerk direkt von systemd-networkd
(nuked netplan.io
und Network Manager) verwaltet wird, und ihm statische IPs wie diese zugewiesen:
/etc/systemd/network/10-ethernet.network
[Match]
Name=eno1
[Network]
Address=192.168.1.2/24
Gateway=192.168.1.1
DNS=192.168.1.1
Nach dem Neustart systemd-networkd.service
sehen die Standardrouten folgendermaßen aus:
default via 192.168.1.1 dev eno1 proto static
default via 172.16.0.1 dev eno2 proto static
default via 172.31.255.1 dev eno3 proto static
^^^
Da es mehrere Netzwerkkarten gibt und ich die bevorzugte festlegen möchte eno1
, möchte ich die Routen folgendermaßen anordnen:
default via 192.168.1.1 dev eno1 proto static metric 100
default via 172.16.0.1 dev eno2 proto static metric 300
default via 172.31.255.1 dev eno3 proto static metric 500
^^^^^^^^^^
Ohne diesen metric
Wert ist der Standardwert 0, was bedeutet, dass alle Routen die gleiche (höchste) Priorität haben, was ich vermeiden möchte.
Ich habe diese Einstellung ausprobiert:
[Route]
Gateway=192.168.1.1
Metric=100
Aber es erzeugt nur eineextraRoute mit der gewünschten Metrik, während die ursprünglichen (fehlenden metric
) weiterhin verbleiben.
Ich verwende Systemd 240. Wie erreiche ich das?
Antwort1
In diesem Thread können Sie sehen, wie die Entwickler darüber sprechen, wie die Dinge funktionieren im Vergleich dazu, wie die Dinge funktionieren sollten:https://github.com/systemd/systemd/issues/928
Sie geben ein paar Beispiele:
Unter dem Tag „Route“
[Route]
Destination=192.168.0.0/24
Metric=2048
Unter dem DHCP-Tag
[DHCP]
RouteMetric=1024
Es wird Folgendes erklärt:
Subnetzrouten werden beim Abrufen einer IP über address_configure in networkd-address.c ohne Metrik konfiguriert und von DHCP bereitgestellte Routen mit Metrik werden später über link_set_dhcp_routes in networkd-dhcp4.c verarbeitet.
Darüber hinaus gibt es einen Vorbehalt:
Die RouteMetric funktioniert für geroutete Pakete, aber nicht für solche, die im lokalen Subnetz verbleiben
Es ist möglich, dass die gewünschte Funktionalität noch nicht existiert, da das von mir zitierte Ticket derzeit geöffnet ist. Geben Sie den Entwicklern gerne direkt Feedback und beteiligen Sie sich an der Diskussion, wenn Sie eine Idee haben, wie dies funktionieren sollte.