Ubuntu Server 22.04, 24.04 LTS版本下, 有一部分ip route
, ip rule
是通过脚本添加的, 但是周期性会消失, 有时apt upgrade
, apt install
也会莫名其妙的丢失. 查了一圈发现到一个非常类似的问题:
结果发现是systemd-networkd
的操作删除了不受其管理的路由和规则, 顺带又发现了若干个Issue:
Pod routing policies deleted by systemd #1600 - aws/amazon-vpc-cni-k8s
network: add ManageForeignRoutingPolicyRules= boolean setting #19287 - systemd/systemd
解决方案如下:
判断systemd版本: systemd --version
编辑networkd配置文件: /etc/systemd/networkd.conf
1 | [Network] |
修改为:
1 | ManageForeignRoutingPolicyRules=no |
PS: 一大早上被警报叫起来说网络出问题了结果查了半天发现是systemd的问题, 我只能说大家讨厌systemd不是没有原因的 :-|