用虚拟机搭建路由器交换机配置备份工具

公司网络设备一多,每次改配置都提心吊胆。上周刚做完策略调整,结果第二天一台核心交换机配置丢了,只能靠记忆一点点还原。这种事经历一次就明白:自动备份不是可选项,而是刚需。

为什么选虚拟机跑备份工具

物理服务器占地方还费电,而家里或机房的ESXi、Proxmox这类虚拟化平台通常有富余资源。在虚拟机里部署备份服务,既能隔离运行环境,又能随时快照回滚。比如我在PVE上开个Ubuntu Server虚拟机,分配1核2G内存,专门干这事儿,稳定跑了大半年没出过问题。

常用工具推荐:Rancid + Git

Rancid是个老牌网络设备配置抓取工具,支持主流厂商的路由器和交换机。它通过SSH或Telnet登录设备,执行show running-config这类命令,把输出存下来。搭配Git做版本控制,每次变更都能追溯。

安装过程很简单,在Ubuntu虚拟机里执行:

sudo apt update
sudo apt install rancid git

配置完设备列表和认证信息后,Rancid会定期轮询。我设了个cron任务每天凌晨两点跑一次:

0 2 * * * /usr/lib/rancid/bin/clogin -f /home/rancid/.cloginrc && /usr/lib/rancid/bin/rancid-run

别忘了处理密码加密问题

明文存密码太危险。我用cloginrc的encrypted password功能,配合OpenSSL生成密文。例如:

add password cisco-switch {enable-secret} {encrypted:U2FsdGVkX1+ABC123...}

这样即使别人拿到配置文件,也看不到原始密码。

进阶玩法:Web界面查看变更

纯命令行对团队不友好。我在同一台虚拟机上搭了个简单的Web服务,用Python Flask读取Git提交记录,高亮显示配置差异。同事想查某天改了什么ACL规则,打开网页搜一下就能看到前后对比。

遇到设备不支持标准协议也不用慌。有些老型号只能用串口,我用USB转Serial线连到宿主机,再把设备直通给虚拟机,照样能跑备份脚本。

现在我的备份虚拟机成了网络运维的“黑匣子”。新员工误操作导致断网?翻一下昨天的配置快照,十分钟恢复。设备固件升级失败?直接导入升级前的配置文件,业务立马接续。