如何使用systemd做策略路由?

我需要在使用systemd的CoreOS实例上进行策略路由。 但是我还没有find关于如何使用systemd-network的文档或例子。

我怎么做?

到目前为止,我只设法通过向一个新文件/etc/iproute2/rt_tables添加一个条目来创build另一个路由表,并且它被命令行工具识别。

最终,我在同一子网上有两个独立的路由器。 我想确保从一台路由器发往我的主机的stream量由同一台路由器返回。

目前在networking中不支持多路由表。 这是可以肯定的东西,虽然; 也许你可以分享你的rt_tables设置,并在systemd-devel上解释你的用例?

systemd在版本235中添加策略路由支持。 如果您的systemd版本是235或更高版本,则可以使用[RoutingPolicyRule]部分来设置策略路由。

支持的选项有:

  • TypeOfService=指定与0到255之间的数字相匹配的服务types。
  • From=指定要匹配的源地址前缀。 可能跟着斜线和前缀长度。
  • To=指定要匹配的目标地址前缀。 可能跟着斜线和前缀长度。
  • FirewallMark=指定要匹配的iptables防火墙标记值(1到4294967295之间的数字)。
  • Table=指定要查找的规则select器是否匹配的路由表标识符。 路线的表格标识符(介于1和4294967295之间的数字)。
  • Priority=指定此规则的优先级。 Priority =是一个无符号整数。 数字越大意味着优先级越低,规则按照越来越多的顺序被处理。