使用 netplan 的 fwmark 路由策略

使用 netplan 的 fwmark 路由策略

我正在将旧版 Debian 设置迁移到新版 Ubuntu 设置。我之前已在 中设置/etc/network/interfaces

post-up /sbin/ip rule add fwmark 1 table table.tunnel
pre-down /sbin/ip rule del fwmark 1 table table.tunnel

现在我在使用 Ubuntu,看起来我需要使用 netplan 和路由策略部分。具体来说,我认为我应该能够使用:

network:
  version: 2
  renderer: networkd
  ethernets:
eno1:
  dhcp4: yes
  dhcp6: yes
  routing-policy:
   - table: 201
     fwmark: 1

其中 table.tunnel 为 201。/etc/iproute2/rt_table我刚刚升级到 Ubuntu 18.04,因为没有记录显示 fwmark 在 17.10 中包含的 netplan 版本中可用。

当我尝试应用配置时,出现错误:

The overwriting error message was: Error in network definition 
//etc/netplan/01-netcfg.yaml 
  line 10 column 7: IP routing policy must include either a 'from' or 'to' IP
Error in network definition //etc/netplan/01-netcfg.yaml
  line 10 column 9: unknown key fwmark

我需要在路由策略(而不是路由)中有一个 to/from,这似乎是不正确的,并且在手册页中建议这样做:

routes (mapping)
          The  routes  block  defines  standard  static  routes   for   an
          interface.  At least to and via must be specified.
....
routing-policy (mapping)
          The  routing-policy  block  defines  extra  routing policy for a
          network, where traffic may be handled  specially  based  on  the
          source IP, firewall marking, etc.

即使我输入一个随机地址,它仍然会抛出未知密钥 fwmark(即使手册页中说明了这一点)。

有人有什么想法吗?

答案1

这原来是 netplan 的一个 bug。我已将此作为上游 bug 报告在此处报告:https://bugs.launchpad.net/netplan/+bug/1767955

相关内容