目前在 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