systemd-networkdを使用して静的IPのルーティングメトリックを設定しますか?

systemd-networkdを使用して静的IPのルーティングメトリックを設定しますか?

systemd-networkd私は最近(nukedとネットワーク管理者)が直接ネットワークを管理するサーバーを設定し、次netplan.ioの固定IPを提供しました。

/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

再起動後のデフォルトsystemd-networkd.serviceパスは次のとおりです。

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
                                               ^^^

ネットワークカードが複数あり、eno1好みのネットワークカードを選択したいので、ルーティングを次のようにしようとします。

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
                                               ^^^^^^^^^^

値がない場合、metricデフォルトは 0 です。これは、すべてのパスが同じ優先順位(最も高い)を持つことを意味し、これは私が避けたいものです。

私はこの設定を試しました:

[Route]
Gateway=192.168.1.1
Metric=100

しかし、1つだけが生成されます。追加元のメトリック(欠落)が残っている間に必要なメトリックがあるパスmetric

私はSystemd 240を使用しています。これをどのように達成すべきですか?

答え1

このスレッドでは、開発者がどのように動作するのか、どのように動作するのかについて議論する様子を見ることができます。https://github.com/systemd/systemd/issues/928

彼らはいくつかの例を挙げました:

ルートタブの下

[Route]
Destination=192.168.0.0/24
Metric=2048

DHCPタブの下

[DHCP]
RouteMetric=1024

説明:

IPを取得するときは、networkd-address.cのaddress_configureを介してサブネットパスを設定しないでください。後でnetworkd-dhcp4.cのlink_set_dhcp_routesを介してメトリックとしてdhcp提供パスを処理してください。

次の警告もあります。

RouteMetricはパケットルーティングには機能しますが、ローカルサブネットに残っているパケットには機能しません。

私が参照したチケットは現在開いているので、あなたが望む正確な機能がまだ存在しないかもしれません。どのように機能するかを知っていると思われる場合は、開発者に直接フィードバックを提供し、ディスカッションに参加してください。

関連情報