2 つのインターフェイスを持つ systemd-networkd ルーティングの設定

2 つのインターフェイスを持つ systemd-networkd ルーティングの設定

有線接続と無線接続がこのように構成されています

[Match]
Name=eth01

[Network]
Address=10.0.0.120/24
Gateway=10.0.0.1

[Route]
Destination=0.0.0.0/0
Metric=1000

ワイヤレス構成は次のとおりです。

[Match]
Name=wlan0

[Network]
Address=10.0.0.129/24
Gateway=10.0.0.1

[Route]
Destination=0.0.0.0/0
Metric=2000

もう一度ターゲットをゲートウェイに設定してみました。

私が何を試しても、次のパスを取得します。

default via 10.0.0.1 dev wlan0 proto static 
default via 10.0.0.1 dev eth01 proto static 
10.0.0.0/24 dev wlan0 proto kernel scope link src 10.0.0.129 
10.0.0.0/24 dev eth01 proto kernel scope link src 10.0.0.120 
10.0.0.1 dev wlan0 proto static metric 2000 

しかし、有線デバイスがない場合を除いて、デフォルトルートが有線デバイスを通過するようにしたいと思います。

答え1

次のようにする必要があります。

[Match]
Name=eth01 # or wlan0

[Network]
Address=10.0.0.120/24 # or 10.0.0.129/24
RouteMetric=1000 # or 2000

# This section is probably optional
[Route]
Destination=10.0.0.1
Scope=link
PreferredSource=10.0.0.120 # or 10.0.0.129
Metric=1000 # or 2000

[Route]
# Destination=0.0.0.0/0 is implied when the option is not explicitly set
Gateway=10.0.0.1
PreferredSource=10.0.0.120 # or 10.0.0.129
Metric=1000 # or 2000

答え2

これは私にとって効果的です。清潔でシンプルです。

/etc/systemd/network/eth.network

[Match]
Name=eth01

[Network]
Address=10.0.0.120/24

[Route]
Gateway=10.0.0.1
Metric=1000

そして

/etc/systemd/network/wlan.network

[Match]
Name=wlan0

[Network]
Address=10.0.0.129/24

[Route]
Gateway=10.0.0.1
Metric=2000

与える

$ ip r
default via 10.0.0.1 dev eth01 proto static metric 1000 
default via 10.0.0.1 dev wlan0 proto static metric 2000 
10.0.0.0/24 dev wlan0 proto kernel scope link src 10.0.0.129 
10.0.0.0/24 dev eth01 proto kernel scope link src 10.0.0.120 

関連情報