Routing-Metriken für statische IPs mit systemd-networkd festlegen?

Routing-Metriken für statische IPs mit systemd-networkd festlegen?

Ich habe vor Kurzem einen Server eingerichtet, dessen Netzwerk direkt von systemd-networkd(nuked netplan.iound 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.servicesehen 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 metricWert 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.

verwandte Informationen