Ich habe Probleme beim Hinzufügen direkter Routen durch systemd-networkd. Was ich erreichen möchte, ist ähnlich wie:
ip a a 192.168.0.2/32 dev enp0s3
ip r a 192.168.0.1/32 dev enp0s3
ip r a default via 192.168.0.1
Ich weiß, dass dies ein seltsames Setup ist, aber ich kann es nicht verwenden ip a a 192.168.0.2/24
, um das Gateway zu erreichen. Aus irgendeinem Grund ist das gesamte / 24-Subnetz über das Gateway in diesem Subnetz erreichbar. Diese Standardroute gilt also nicht nur für Sammelrouten, sondern auch zum Erreichen des Subnetzes. Also habe ich /etc/systemd/network/enp0s3.network erstellt:
[Match]
Name=enp0s3
[Address]
Address=192.168.0.2/32
[Route]
Destination=192.168.0.1/32
[Route]
Gateway=192.168.0.1
Das Problem bei diesem Setup ist, dass der zweite Route
Block niemals ausgeführt wird. Ich habe einige Fehlerbehebungen durchgeführt und hier ist der Unterschied zwischen dem, was ip
und was systemd-networkd
für den ersten Route
Block getan wird .
# ip
192.168.0.1 dev enp0s3 scope link
# networkd
192.168.0.1 dev enp0s3 proto static
Fügt systemd-networkd
also nicht scope link
zur Route hinzu. Aus diesem Grund 192.168.0.1
schlägt ein Versuch, eine Standardroute über hinzuzufügen , mit einem Network is unreachable
Fehler fehl . Dies kann durch behoben werden
ip r c 192.168.0.1/32 dev enp0s3 # automatically adds `scope link`
ip r a default via 192.168.0.1 # added successfully
Meine Frage ist also: Sollte ein solches Verhalten als systemd-networkd
Fehler angesehen werden oder verwende ich es falsch? Ich konnte keine Dokumentation zu direkten Routen in networkd finden. Im Moment habe ich den Dienst deaktiviert systemd-networkd
und erstellt, um ip
Befehle direkt auszuführen. Ich möchte jedoch den Standardansatz verwenden, da dies CoreOS ist, das ich konfigurieren möchte.