3. Catalyst交换机配置备份与恢复

为什么备份要同时覆盖 running-config 与 startup-config

Catalyst 交换机的 running-config 是内存中的当前生效配置,掉电或重启即丢失;startup-config 是 NVRAM 中的开机加载配置。日常变更只改 running-config,必须 write memory(或 copy running-config startup-config)才落盘。因此备份策略要区分两类文件:

  • running-config:反映"此刻真实生效"的状态,用于快速比对变更、回滚误操作。
  • startup-config:反映"下次重启后生效"的状态,是设备真正能自恢复的基线。

两者不一致时,重启会"丢失"未保存的变更,这是运维中最常见的配置事故来源。备份时把两份都取回,并记录时间戳与设备标识,才能保证恢复时选对版本。

备份通道选择:TFTP 与 SCP 的取舍

对比项TFTPSCP(SSH)
传输层UDP 69TCP 22
认证无(部分平台支持ACL限制)用户名+密码/密钥
完整性无校验,易受丢包影响SSH加密+完整性校验
适用场景内网隔离环境、临时快速取配置生产网、跨网段、合规要求场景
IOS命令copy running-config tftp:copy running-config scp:

生产环境优先 SCP;若交换机 IOS 版本不支持 SCP server 端,可用 TFTP 但需限制源地址并放在管理 VLAN 内。

实操:SCP 备份 running-config 与 startup-config

假设管理网内已有一台 Linux 备份服务器 10.10.10.50,交换机管理地址 10.10.10.11,SSH 用户 backup。先在交换机上确认 SSH 与 SCP 可用:

Switch# show ip ssh
SSH Enabled - version 2.0
Authentication timeout: 120 secs; Authentication retries: 3

Switch# show running-config | include aaa|username
username backup privilege 15 secret 5 $1$xxxx$xxxxxxxx

执行备份(IOS 会提示输入远端用户名与目标文件名):

Switch# copy running-config scp:
Address or name of remote host []? 10.10.10.50
Destination username [backup]? backup
Destination filename [switch-running-config]? SW1-running-20240612.cfg
Writing SW1-running-20240612.cfg
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 4821 bytes]

4821 bytes copied in 1.732 secs (2783 bytes/sec)

Switch# copy startup-config scp:
Address or name of remote host []? 10.10.10.50
Destination username [backup]? backup
Destination filename [switch-startup-config]? SW1-startup-20240612.cfg
Writing SW1-startup-20240612.cfg
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
[OK - 4790 bytes]

若使用 TFTP,命令形式为 copy running-config tftp:,随后输入 TFTP 服务器地址与文件名。TFTP 无认证,务必在 ACL 中只允许管理网段访问。

恢复验证:从备份文件回灌并确认生效

恢复前先确认当前配置与备份的差异,避免覆盖掉合法的新变更。以下为一次受控恢复验证流程(在维护窗口内执行):

  1. 将备份文件放回 SCP/TFTP 服务器可访问路径。
  2. 交换机执行 copy scp: running-config,把备份内容合并进 running-config。
  3. 用 show running-config 与备份文件比对关键段落(VLAN、接口、路由)。
  4. 确认无误后 write memory 落盘为 startup-config。
  5. 执行 reload 重启,验证重启后配置与备份一致。
Switch# copy scp: running-config
Address or name of remote host []? 10.10.10.50
Source username [backup]? backup
Source filename []? SW1-running-20240612.cfg
Destination filename [running-config]? 
Accessing scp://backup@10.10.10.50/SW1-running-20240612.cfg...
Loading SW1-running-20240612.cfg ... [OK]
4821 bytes copied in 2.104 secs (2291 bytes/sec)

Switch# show running-config | include hostname|interface Vlan1|ip address
hostname SW1
interface Vlan1
 ip address 10.10.10.11 255.255.255.0

Switch# write memory
Building configuration...
[OK]
恢复 running-config 会与现有配置合并,可能产生重复接口配置或覆盖管理地址。恢复前务必确认带外 Console 可用,避免管理地址被覆盖后失联。

定期备份的自动化思路

手工备份不可持续。可在备份服务器上用脚本按日拉取,文件名带设备名与日期,例如 SW1-running-20240612.cfg。核心逻辑:SSH 登录交换机 → 执行 show running-config 或 copy running-config scp: → 保存到按设备分目录的仓库 → 保留最近 N 份。关键是把"备份成功"与"文件非空、含 hostname"作为校验条件,而不是只看命令返回。

Catalyst 配置备份与恢复数据流 Catalyst 交换机 running-config (RAM) startup-config (NVRAM) 备份服务器 SW1-running-20240612.cfg SW1-startup-20240612.cfg copy running-config scp: copy startup-config scp: copy scp: running-config(恢复) 恢复后校验 show run / write memory 重启验证 reload → 配置一致 备份周期 每日 02:00 变更后即时 恢复前快照 季度恢复演练

验证通过条件

  • 备份文件在服务器上存在且大小与交换机 show running-config 输出量级一致(非 0 字节)。
  • 恢复后 show running-config 中 hostname、管理 VLAN 地址、关键接口配置与备份文件一致。
  • write memory 后 show startup-config 与 running-config 关键段落一致。
  • 重启后设备可正常 SSH 登录,管理地址可达,说明 startup-config 已正确加载。