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 的取舍
| 对比项 | TFTP | SCP(SSH) |
|---|---|---|
| 传输层 | UDP 69 | TCP 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 中只允许管理网段访问。
恢复验证:从备份文件回灌并确认生效
恢复前先确认当前配置与备份的差异,避免覆盖掉合法的新变更。以下为一次受控恢复验证流程(在维护窗口内执行):
- 将备份文件放回 SCP/TFTP 服务器可访问路径。
- 交换机执行
copy scp: running-config,把备份内容合并进 running-config。 - 用
show running-config与备份文件比对关键段落(VLAN、接口、路由)。 - 确认无误后
write memory落盘为 startup-config。 - 执行
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]
定期备份的自动化思路
手工备份不可持续。可在备份服务器上用脚本按日拉取,文件名带设备名与日期,例如 SW1-running-20240612.cfg。核心逻辑:SSH 登录交换机 → 执行 show running-config 或 copy running-config scp: → 保存到按设备分目录的仓库 → 保留最近 N 份。关键是把"备份成功"与"文件非空、含 hostname"作为校验条件,而不是只看命令返回。
验证通过条件
- 备份文件在服务器上存在且大小与交换机
show running-config输出量级一致(非 0 字节)。 - 恢复后
show running-config中 hostname、管理 VLAN 地址、关键接口配置与备份文件一致。 write memory后show startup-config与 running-config 关键段落一致。- 重启后设备可正常 SSH 登录,管理地址可达,说明 startup-config 已正确加载。