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

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

发表回复

Zebra
如何安装部署路由软件 FRRouting?

1 基础知识 1.1 软件简介 – FRRouting(FRR)是一个适用于Linux和 …

Zebra
如何使OSPF的任播节点离线?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要维护基于任播技术的服务器节点,该服务器使用OS …

Zebra
如何编译安装Quagga?

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