公司刚搬完办公室,新上了一套网络设备,交换机、防火墙、路由器全换了。运维小李忙活了几天总算调通了,结果第三天早上一来,发现核心交换机的配置不知道被谁改了,VLAN 划分全乱,整个办公网瘫痪了两小时。后来查日志才发现是同事误操作,而最近一次配置备份还是两周前的。
为什么配置备份不能拖?
网络设备的配置就像房子的地基图。哪怕只是改了一个IP地址或ACL规则,都可能引发连锁反应。一旦出问题又没有及时备份,恢复就得靠记忆或者重新推演,费时还容易出错。
多长时间备份一次才算合理?
这没有统一标准,得看你的网络环境变化频率和业务重要性。但可以按场景来分:
1. 高频变动型网络(如互联网公司、开发测试环境)
每天都有人改策略、加端口、调路由。这种环境下,建议每天自动备份一次,最好在下班后执行。
2. 稳定型生产网络(如传统企业、学校)
平时很少动配置,偶尔升级或调整。这类可以每3天到每周备份一次,前提是确认近期无变更计划。
3. 关键节点设备(如核心交换机、出口防火墙)
不管整体网络多稳定,这些设备一旦出事影响巨大。建议独立设置,每次有人登录修改后立即触发备份,或至少每天执行。
怎么实现自动备份?
手动备份容易忘,自动化才是正道。可以用脚本结合定时任务,比如用 Python 调用 Paramiko 连接设备导出配置:
import paramiko
import datetime
# 连接设备并获取配置
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('192.168.1.1', username='admin', password='pass123')
stdin, stdout, stderr = ssh.exec_command('display current-configuration')
config = stdout.read().decode()
# 保存带时间戳的文件
filename = f"backup_192.168.1.1_{datetime.datetime.now().strftime('%Y%m%d_%H%M')}.cfg"
with open(filename, 'w') as f:
f.write(config)
ssh.close()
然后配合 Linux 的 cron 定时运行:
0 22 * * * /usr/bin/python3 /scripts/backup_network.py
这样每天晚上10点自动跑一遍,不用操心。
别忘了验证备份的有效性
存了一堆 .cfg 文件,真要用的时候打不开或格式不对就尴尬了。定期抽查几个备份文件,用文本编辑器打开看看是否完整,有没有敏感信息泄露(比如密码明文)。也可以写个小脚本检查文件大小是否异常——空文件或几KB的可能是登录失败导致的无效输出。
另外,备份文件别放在本地电脑,万一硬盘坏了全没了。建议同步到NAS、私有云或Git仓库(注意脱敏),至少做到异地一份。
变更驱动备份也是一种思路
有些单位采用“有变更才备份”的策略。比如通过日志监控发现设备配置被提交(commit),就立刻触发备份脚本。这种方式更精准,适合变更稀疏但关键的场景。不过对日志采集和响应机制要求高,中小单位用定时任务更省心。
说到底,备份频率不是越高越好,而是要匹配实际风险。一天变五次的网络,一周备一次显然不够;一年只调两次的内网,天天备份也浪费资源。找到那个平衡点,让运维既不焦虑,也不踩坑,才是真稳妥。