Networking

如何在 systemd-networkd 中添加靜態路由?

  • January 18, 2019

我有一個主機,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,仍然存在於 version240中。

根據上面的執行緒,一種解決方法(或解決方案,我不確定狀態,因為該錯誤仍處於打開狀態)是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 可用。

引用自:https://unix.stackexchange.com/questions/495016