2. 固件升级前的准备工作:设备型号与当前版本确认、固件文件获取与校验(MD5/SHA256)、备份当前配置、升级窗口与回滚计划
说实话,我见过太多工程师一上来就急着刷固件,结果刷成砖头。嗯,我自己也翻过车。有一次在数据中心升级核心交换机,没仔细核对版本号,刷完直接起不来,半夜被叫去机房…从那以后,我养成了一个习惯:升级前,把准备工作做到位。这步省不了,也急不得。
核心原则:升级前准备做得好,升级过程没烦恼。准备阶段花1小时,可能帮你省下1整天的故障排查时间。
2.1 设备型号与当前版本确认
你想想看,固件文件跟设备型号是严格绑定的。拿错了型号的固件,轻则升级失败,重则设备变砖。我建议你按下面几步来确认:
- 查看设备型号标签——通常在设备背面或侧面,有个白色标签,写着Model/Product Name。比如 Cisco Catalyst 9300-48T,或者华为 S5720-28P-LI。
- 登录设备查看当前版本——用命令行或Web界面确认。以Cisco为例:
# Cisco IOS 查看版本
show version | include "Cisco IOS Software|System image file"
# 华为设备查看版本
display version
# H3C 设备查看版本
display version
我个人习惯把设备型号、当前版本、目标版本记在一个小本子上。别太相信你的记忆力,写下来最靠谱。
小技巧:有些设备支持通过SNMP或网管平台批量获取版本信息。如果你管理几十台设备,建议写个脚本自动采集,省时省力。
2.2 固件文件获取与校验(MD5/SHA256)
固件文件从哪来?当然是官方渠道。千万别去第三方网站下载,我见过有人从百度网盘下固件,结果里面带木马。嗯,这不是开玩笑。
获取固件后,第一件事就是校验文件完整性。厂商通常会提供MD5或SHA256校验值。你下载完固件后,自己算一遍,对比一下。
# Linux/Mac 下计算MD5
md5sum cat9k_iosxe.17.09.01.SPA.bin
# Windows 下用 certutil
certutil -hashfile cat9k_iosxe.17.09.01.SPA.bin MD5
# 计算SHA256
sha256sum cat9k_iosxe.17.09.01.SPA.bin
为什么要校验?说白了,网络传输过程中可能丢包、磁盘可能坏道,文件损坏了你还不知道。我曾经遇到过,固件下载到一半网络断了,文件只有80%大小,刷上去直接报错。还好提前校验发现了,不然又得跑一趟机房。
| 校验算法 | 长度 | 安全性 | 推荐场景 |
|---|---|---|---|
| MD5 | 128位 | 较低(已不推荐安全场景) | 快速校验,非关键设备 |
| SHA256 | 256位 | 高 | 核心设备、安全敏感场景 |
警告:如果厂商同时提供了MD5和SHA256,优先用SHA256。MD5已经被证明存在碰撞攻击,虽然日常使用问题不大,但安全起见,选更可靠的。
2.3 备份当前配置
升级固件后,配置可能会被重置或部分丢失。所以,升级前必须备份配置。这不是建议,是必须。
备份方式有几种:
- 本地备份——通过TFTP/FTP/SCP把配置文件传到本地电脑或服务器
- 远程备份——直接复制配置内容,粘贴到文本文件里
- 自动备份——用脚本定时备份到集中管理平台
# Cisco 备份启动配置到TFTP服务器
copy running-config tftp://192.168.1.100/backup/config_20250101.txt
# 华为备份配置
save backup.cfg
tftp 192.168.1.100 put backup.cfg
# 查看当前配置并手动复制
show running-config
我个人习惯备份两份:一份放在本地服务器,一份放在云盘或邮件里。万一服务器挂了,还有另一份。别问我为什么这么谨慎,问就是吃过亏。
避坑指南:我曾经备份完配置,升级后发现配置恢复不回去——因为备份的是running-config,但设备重启后用的是startup-config。所以,记得先保存配置(write memory 或 save),再备份startup-config。
2.4 升级窗口与回滚计划
升级不是你想升就能升的。生产环境必须选业务低峰期,比如凌晨2点到6点。你得提前申请变更窗口,通知相关方。
回滚计划呢?说白了就是:如果升级失败了,怎么退回去?
- 保留旧版本固件文件,不要删
- 确认设备支持回滚(有些设备升级后不能降级)
- 准备好回滚步骤文档,最好打印出来带进机房
# Cisco 设置下次启动为旧版本(回滚)
boot system flash:old_image.bin
write memory
reload
# 华为设置下次启动为旧版本
startup system-software old_version.cc
reboot
升级窗口检查清单:
- ☐ 已确认设备型号和当前版本
- ☐ 已下载正确固件并校验通过
- ☐ 已备份当前配置(至少两份)
- ☐ 已申请变更窗口并通知相关人员
- ☐ 已准备回滚方案和旧版本固件
- ☐ 已准备好Console线、远程访问工具
嗯,准备工作做到这步,基本就稳了。别嫌麻烦,这些步骤都是前人用血泪换来的经验。你按这个流程走,升级成功率至少能到99%。剩下的1%,交给运气吧。
公众号:蓝海资料掘金营,微信deep3321