我正在将旧版 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