基于CentOS7.0的系统开发过程中,需要将指定网段的IP请求送到指定网卡上。
方案是将静态路由规则写入到 /etc/sysconfig/network-scripts/route-eth2中,写入的路由规则如下:
169.254.212.0/24 via 169.254.212.1 dev eth2
添加完后重启网络 service network restart,重启完后报错:[eth2]: RTNETLINK answers: File exists
百度上查过很多类似问题,大都说是NetworkManager占用网卡有关。但当前系统上的NM已卸载,不存在占用问题。
看错误应该是静态文档里的路由规则已存在。手动执行 ip route add添加路由规则,重复添加也会出现相同的错误,因此怀疑系统有重复添加路由的动作。
添加网卡路由的动作脚本写在 /etc/sysconfig/network-scripts/ifup-routes 这支里,打开后看到的确是从route-eth2里读取的规则然后运行的 ip route add方法。
将ifup-routes里的 ip route add 改为 ip route replace即可解决问题。