systemd-networkd に静的ルートを追加するにはどうすればいいですか?

systemd-networkd に静的ルートを追加するにはどうすればいいですか?

192.168.0.0/24IP が のホストがあります192.168.0.13。DHCP 提供のゲートウェイは です192.168.0.254

設定は を介し​​て行われsystemd-networkd、以下の問題は少なくとも バージョンまで存在します240(現在使用しているバージョン - それ以降のバージョンについては私の回答を参照してください)。

このホストがゲートウェイ10.0.0.0/8経由で利用可能なネットワークに到達できるようにする必要があります192.168.0.10。これは、静的ルートを追加することで実現できます。

# ip r add 10.0.0.0/8 via 192.168.0.10

正常に動作します(トラフィックは通過します)。

私は今、現在の定義にをsystemd-networkd追加することで、このエントリを私の構成に追加したいと考えていました[Route]

[Match]
Name=eth0

[Network]
DHCP=yes

# the entry below is added to ensure a static route

[Route]
Gateway=192.168.0.10
Destination=10.0.0.0/8

それは動作しません:

  • 静的ルートは追加されません
  • ログにネットワークが到達できないことを示すエラーメッセージがあります
Jan 17 11:29:32 rpi-dmz systemd[1]: Stopping Network Service...
Jan 17 11:29:32 rpi-dmz systemd[1]: Stopped Network Service.
Jan 17 11:29:32 rpi-dmz systemd[1]: Starting Network Service...
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: wlan0: Gained IPv6LL
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: eth0: Gained IPv6LL
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: Enumeration completed
Jan 17 11:29:33 rpi-dmz systemd[1]: Started Network Service.
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: eth0: Could not set route: Network is unreachable
Jan 17 11:29:33 rpi-dmz systemd-networkd[14584]: eth0: DHCPv4 address 192.168.0.13/24 via 192.168.0.254

経由でそのルートを正しく追加するにはどうすればよいですかsystemd-networkd?

答え1

これはバグsystemdバージョン にはまだ存在します240

上記のスレッドによると、回避策(または解決策、バグがまだ開いているため、ステータスはわかりません)は、GatewayOnlink=yes次のセクションに追加することです[Route]

[Match]
Name=eth0

[Network]
DHCP=yes

[Route]
Gateway=192.168.0.10
Destination=10.0.0.0/8
GatewayOnLink=yes

このパラメータはsystemdバージョン ~237 から使用できます。

関連情報