web-dev-qa-db-ja.com

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

192.168.0.0/24にIPが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経由でそのルートを正しく追加する方法

4
WoJ

これは 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から使用できます。

5
WoJ