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
経由でそのルートを正しく追加する方法
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から使用できます。