2. 固件升级前的准备工作:设备型号与当前版本确认、固件文件获取与校验(MD5/SHA256)、备份当前配置、升级窗口与回滚计划

说实话,我见过太多工程师一上来就急着刷固件,结果刷成砖头。嗯,我自己也翻过车。有一次在数据中心升级核心交换机,没仔细核对版本号,刷完直接起不来,半夜被叫去机房…从那以后,我养成了一个习惯:升级前,把准备工作做到位。这步省不了,也急不得。

核心原则:升级前准备做得好,升级过程没烦恼。准备阶段花1小时,可能帮你省下1整天的故障排查时间。

2.1 设备型号与当前版本确认

你想想看,固件文件跟设备型号是严格绑定的。拿错了型号的固件,轻则升级失败,重则设备变砖。我建议你按下面几步来确认:

  1. 查看设备型号标签——通常在设备背面或侧面,有个白色标签,写着Model/Product Name。比如 Cisco Catalyst 9300-48T,或者华为 S5720-28P-LI。
  2. 登录设备查看当前版本——用命令行或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%,交给运气吧。

固件升级准备工作流程 确认设备型号 查看标签 + show version 获取固件文件 官方渠道下载 校验文件完整性 MD5 / SHA256 备份当前配置 至少两份备份 制定回滚计划 保留旧版本固件 申请升级窗口 通知相关方 准备Console/远程工具 确保带线进机房 开始升级 按计划执行 整个准备流程建议在升级前1-2天完成,留出足够时间处理异常 每个步骤都不可跳过,尤其是校验和备份

公众号:蓝海资料掘金营,微信deep3321