保留基于策略的路由的 ip 路由和 ip 规则配置 (iproute2)

保留基于策略的路由的 ip 路由和 ip 规则配置 (iproute2)

目前在 Fedora Server 23 上运行,我一直在寻找保存命令的正确方法,例如:

ip route add default via 10.0.2.1 dev ens32 table EXAMPLE_TABLE
ip rule add from 10.1.2.50 lookup EXAMPLE_TABLE prio 1000

通过 nmcli (理想情况下)或通过其他类似的方式,理智的方式。

我见过类似的例子路由名称文件,但似乎没有正确执行默认规则。

如果您ip route show table EXAMPLE_TABLE在重新启动后运行,您会发现它不会粘住 - 至少根据我的经验。

任何对此的见解都会很有趣,谢谢。

答案1

据我所知,保留默认路由的最简单方法是将默认路由目标添加到文件中/etc/sysconfig/network-scripts/ifcfg-<device>作为 GATEWAY 的值。每次启动该界面时,都会创建该默认路由,其他路由将通过route-<device>同一目录中的文件保留。

答案2

需保存的物品rules应放置在:

/etc/sysconfig/network-scripts/rule-lo

需保存的物品routes应放置在:

/etc/sysconfig/network-scripts/route-lo

您会注意到我建议使用规则-和路线-无论您为哪个设备保存相应的配置,都会保存文件,就好像规则和路由用于环回接口一样。前段时间,我在 CentOS 7.8 上观察到可能与您在这里观察到的问题相同,其中保存在各自正确的设备文件中的 PBR 规则被忽略,但保存在 *- 中的所有规则被授予荣誉。我希望我能更多地阐明造成这种情况的原因,但当时我没有进一步调查。一些日志指向 NetworkManager 调度程序对此负责。

为了答案的完整性,路由表通过它们的表号来标识。如果要通过名称引用路由表,则必须创建名称映射。例如,通过名称“EXAMPLE_TABLE”引用编号为 100 的表:

echo '100 EXAMPLE_TABLE' | sudo tee -a /etc/iproute2/rt_tables

相关内容