Zebra
1 前言
一个问题,一篇文章,一出故事。
笔者生产环境Docker集群有用到Quagga做OSPF路由,因客观因素导致服务器重启后发现OSPF宣告失败,错误提示如下,
Nov 12 09:56:48 hd19.cmdschool.org ospfd[62094]: 2021/11/12 09:56:48 OSPF: MPLS-TE(initialize_lin Hint: Some lines were ellipsized, use -l to show in full.
我们通过查看配置文件,发现有大量的虚拟接口定义,
#... interface veth0a00b40 ! interface veth0a0b361 ! interface veth0a0b532 ! interface veth0a0bd8e ! interface veth0a0bf1f ! #...
如果使用如下命令统计该类接口个数,
cat /etc/quagga/ospfd.conf | grep "interface veth" | wc -l
显示如下,
283089
注:表示有283089个
2 最佳实践
2.1 手动备份并清理配置的无用虚拟接口
cp /etc/quagga/ospfd.conf /etc/quagga/ospfd.conf.save sed -i '/interface veth/,/!/d' /etc/quagga/ospfd.conf sed -i '/interface vx-/,/!/d' /etc/quagga/ospfd.conf
2.2 设置服务启动自动清理
2.2.1 增加服务启动前的配置文件清理
vim /usr/lib/systemd/system/ospfd.service
增加如下配置,
ExecStartPre=-/usr/bin/sed -i '/interface veth/,/!/d' /etc/quagga/ospfd.conf ExecStartPre=-/usr/bin/sed -i '/interface vx-/,/!/d' /etc/quagga/ospfd.conf
配置修改后,需要运行如下命令重载使修改生效,
systemctl daemon-reload
2.2.2 测试启动脚本
systemctl restart ospfd.service
没有评论