如何解决Quagga受Docker虚拟接口影响?

Quagga

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
没有评论

发表评论

Quagga
如何编译安装Quagga?

1. 理论部分 1.1 软件简介 Quagga中文翻译斑驴,是一种先进的路由软件包,提供一套基于TC …

Quagga
如何熟悉斑驴(Quagga)静态路由命令?

1 环境配置 1.1 基础环境搭建 请参阅以下文章完成环境配置,并理解Quagga的基础理论, ht …

Quagga
如何熟悉斑驴(Quagga)接口配置命令?

1 环境配置 1.1 基础环境搭建 请参阅以下文章完成环境配置,并理解Quagga的基础理论, ht …