SRX设备升级步骤:CLI安装Junos

SRX设备升级步骤

本文整理 Juniper SRX 系列防火墙升级 Junos OS 的完整流程,涵盖升级前的检查与备份、三种常用的软件安装方式(U 盘安装、远程服务器安装、J-Web 上传安装)、升级后的验证命令、版本回滚方法,以及双机(机箱集群)环境下的升级顺序与常见故障排查。所有命令均在 SRX 系列(含 SRX300、SRX1500、SRX4100 等)的 Junos CLI 上通用,不同版本之间只有细节差异。

一、背景:为什么 SRX 升级需要规范流程

SRX 是部署在业务边界的安全网关,它的升级失败往往不只是"设备起不来",而是整条业务链路的出口中断。与路由器相比,SRX 的升级还有三个额外的风险点:安全策略、NAT 规则和 IPsec 隧道都保存在配置中,配置兼容性问题会直接导致隧道不建立;机箱集群(Chassis Cluster)环境下两个节点必须运行兼容的版本,升级顺序错误会造成主备脑裂或转发中断;此外 SRX 的磁盘分区空间有限,镜像文件放不下是最常见的"升级卡住"原因之一。

因此规范流程的核心是四件事:确认版本与兼容性、备份当前配置和系统快照、选择正确的安装方式、升级后逐项验证。下面按照这个顺序展开。

二、升级前准备

1. 确认当前版本与目标版本。先记录当前运行的 Junos 版本、各 RE 的启动分区和型号,再对照 Juniper 的 Release Notes 确认目标版本被本平台支持,且升级路径有效(某些大版本跨越需要先升级到中间版本)。

show version
show system software
show chassis hardware
show chassis routing-engine

2. 检查存储空间。升级包通常 300MB~900MB,需要解压到 /var/tmp 或 /cf,空间不足会导致安装中途失败。经验值是保留 1GB 以上可用空间。

show system storage
request system software delete <旧版本包名>
request system storage cleanup

3. 备份配置。至少做三份:当前配置文件的本地副本、外部服务器副本、以及系统快照(snapshot 会把当前运行的根文件系统和配置备份到备用分区,是回滚的最后一道保险)。

show configuration | save /var/tmp/srx-config-backup.txt
file copy /config/juniper.conf.gz /var/tmp/juniper.conf.$(date +%Y%m%d).gz
request system snapshot

4. 检查告警与冗余状态。升级前应当没有任何未处理的告警,双机环境要确认集群状态正常、两个节点都处于可管理状态。带着告警升级,事后无法区分是新版本引入的问题还是老问题。

show system alarms
show chassis alarms
show chassis cluster status
show chassis cluster interfaces

5. 记录许可与外部依赖。执行 show system license 记录已安装的许可,确认新版本不需要更换许可文件;同时把管理访问方式(带外管理口、Console)准备好,避免升级过程中失去管理通道。

三、方法一:通过 CLI 从 U 盘安装(原文档中的"方法 3")

通过 CLI 安装软件(方法 3 - 将 Junos 软件复制到 USB 记忆棒)。这种方法适用于设备无法访问 TFTP/FTP 服务器、或需要在现场无网络环境下升级的场景。请按照以下步骤通过 CLI 从 USB 记忆棒安装软件:

将 Junos 升级文件下载到 U 盘。找到 Junos 与 USB 记忆棒关联的 USB 设备 ID:

user@srx> start shell
user@srx% ls /dev/ > /var/tmp/before_USB.txt

将 USB 设备插入 USB 插槽。例如,插槽 0 将返回以下内容:

root# umass0: USB USBFlashDrive, rev 2.00/1.00, addr 2
da0 at umass-sim0 bus 0 target 0 lun 0
da0: <USB USBFlashDrive 0100> Removable Direct Access SCSI-0 device
da0: 1.000MB/s transfers
da0: 980MB (2007040 512 byte sectors: 64H 32S/T 980C)

运行以下命令:

user@srx% ls /dev/ > /var/tmp/after_USB.txt

使用"diff"命令查找"before_USB.txt"和"after_USB.txt"输出中的差异,以找到驱动器标签。(通常是 da#s1,即 da0s1)

user@srx% diff /var/tmp/before_USB.txt /var/tmp/after_USB.txt
35a36,37
> da1
> da0s1
58a61
> pass1

在此示例中,USB 为"da0s1"。

创建挂载目录:

user@srx% mkdir /tmp/usb

将 USB 挂载到以下目录:

user@srx% mount -t msdosfs /dev/<drivelabel> /tmp/usb

示例:

user@srx% mount -t msdosfs /dev/da0s1 /tmp/usb   (标签名和 /tmp 之间有一个空格)

验证 USB 是否已挂载到设备:

root@% pwd
/cf/root
root@% cd /tmp/usb/
root@% pwd
/cf/tmp/usb
root@% ls
junos-srxsme-12.1X46-D40.2-domestic.tgz

退出 shell 并安装软件:

user@srx% exit
user@srx> request system software add /tmp/usb/<upgrade filename> no-copy

有关软件安装的更多详细信息,请参阅安装软件中的说明。完成后,重新启动 SRX:

user@srx> request system reboot

两点现场经验:其一,U 盘建议格式化为 FAT32(对应 Junos 的 msdosfs),NTFS 或 exFAT 无法挂载;其二,部分高版本 Junos 对 USB 3.0 大容量盘兼容性不佳,如果 umass0 没有任何回显,换一只容量较小的 USB 2.0 盘通常可以解决。

四、方法二:从远程服务器安装(最常用)

生产环境最常用的方式是把升级包放在 TFTP 或 FTP/HTTP 服务器上,让 SRX 直接拉取。这种方式不需要插拔硬件,适合远程操作。执行前请确认设备到服务器的可达性,以及服务器上文件的校验值。

user@srx> ping 10.0.0.100
user@srx> request system software add tftp://10.0.0.100/junos-srxsme-XX.XRXXX.tgz no-copy no-validate

参数说明:no-copy 表示安装完成后不把安装包保留在本地磁盘,可以节省空间;no-validate 跳过配置校验,用于升级速度优先、且已确认配置兼容的场景。如果需要查看配置兼容性检查结果,请省略 no-validate,让设备在安装前先校验一次配置,或单独执行:

user@srx> request system software add /var/tmp/junos-srxsme-XX.XRXXX.tgz validate
user@srx> request system reboot

安装过程中如果终端断开,命令会继续在设备上执行,重新登录后用 show system software 或 request system software list 确认结果。重启完成后,设备会从新分区的镜像启动,旧的运行镜像仍然保留在另一个分区上,这正是回滚的基础。

五、方法三:通过 J-Web 上传安装

对于不习惯 CLI 或没有 Console 的环境,可以通过 J-Web 完成升级:登录 J-Web 后进入 Maintain > Update > Upload Package,选择本地升级包上传,上传完成后设备会提示选择安装到当前分区或备用分区。J-Web 上传的注意事项与 CLI 相同——上传前确认 Flash 空间充足,上传过程不要关闭浏览器,上传完成后同样需要重启才能生效。由于 J-Web 上传依赖浏览器会话,大文件上传在网络抖动时容易失败,批量升级仍推荐使用 CLI。

六、升级后验证清单

重启完成后不要急着离开,按下面的顺序逐项确认。

show version
show system alarms
show chassis alarms
show chassis cluster status
show interfaces terse | except "up up"
show chassis fpc
show system storage
show system license
show security ike security-associations
show security ipsec security-associations
show configuration | compare rollback 1

验证要点:版本号是否与预期一致;是否有新的黄色或红色告警;接口是否全部 up;IPsec SA 是否重新建立(升级重启后隧道需要重新协商,通常在一到两分钟内恢复);show configuration | compare rollback 1 用来确认升级过程没有意外改动配置。最后做一次实际的业务验证——从内部主机访问外部地址、检查安全策略命中计数、确认 NAT 会话正常建立。只有业务验证通过,升级才算结束。

七、版本回滚

如果新版本出现无法绕过的问题,Junos 提供了两条回滚路径。

第一条是软件回滚,把运行镜像切回上一个分区并重启:

user@srx> request system software rollback
user@srx> request system reboot

第二条是配置回滚,仅撤销配置变更而不换镜像,适用于配置问题而非版本问题:

user@srx> rollback 1
user@srx> show | compare
user@srx> commit

如果升级过程中配置被破坏到无法登录的程度,使用 Console 进入 Junos 的救援模式(单用户模式)重新加载之前备份的 juniper.conf.gz,或从 request system snapshot 生成的备用分区启动。这也是为什么升级前的快照与配置备份必须落到设备之外的服务器上。

八、机箱集群(双机)升级顺序

SRX 双机环境下,两个节点运行相同版本的 Junos 是官方推荐状态,升级必须串行进行,绝不能同时重启。标准顺序如下:

  • 确认集群状态健康,节点优先级与预期的 Active/Standby 角色一致。
  • 先升级备份节点(Secondary)。升级过程中备份节点会短暂离线,此时由主节点单独转发,业务短时处于无冗余状态。
  • 备份节点重启并重新加入集群后,用 show chassis cluster status 确认 `RG0`/`RG1` 的优先级和状态恢复正常,冗余链路重新 up。
  • 执行主备切换(request chassis cluster failover redundancy-group 0),业务流量切到已升级的节点上。
  • 升级原主节点,完成后确认集群回到预期的主备关系。

如果两个节点的版本暂时不一致,Junos 允许短时间共存,但某些安全特性(如 IPsec 隧道与 NAT 的同步、会话状态同步)在版本不匹配时可能降级,因此应尽快完成第二个节点的升级。集群相关的详细机制可参考站内 Juniper SRX 机箱群集配置详解。

九、常见问题与排障

1. 安装时报空间不足(No space left on device)。先删除旧版本的安装包与日志:request system software delete <package>、request system storage cleanup,必要时清理 /var/tmp 下的历史文件。SRX 的 Flash 空间普遍不大,这是升级中断最常见的原因。

2. 上传后校验失败(Checksum/Validation failed)。重新下载升级包并用 md5 或 sha256 比对官方公布的校验值。通过 TFTP 传输时用二进制模式,FTP 用 passive 模式,避免文本模式破坏二进制文件。

3. 重启后接口起不来。检查 show interfaces terse 与 show log messages。常见原因是新版本改变了某个接口模块的默认行为、或者配置中的某个 set interfaces ... unit 0 family inet 在新版本下被要求显式声明。用 show configuration | compare rollback 1 对比配置变化最有帮助。

4. IPsec 隧道不建立。升级会重启 IKE 进程,SA 需要重新协商。先确认 show security ike security-associations 是否有状态卡在 IN_PROGRESS,再检查对端是否也在同一时间升级。两侧算法不一致或对端仍处于旧版本时,短期内属于正常现象。

5. 无法登录管理界面。如果管理接口所在区域的安全策略被新版本重置,或者管理流量的 host-inbound-traffic 在新版本中要求显式放行,就会出现"设备启动了但进不去"的情况。此时从 Console 登录,检查 show configuration security zones 中管理接口的 host-inbound-traffic system-services 配置。

6. 升级后性能下降。部分版本改变了会话处理的默认参数或数据包缓冲策略,可通过 show security flow session summary、show security monitoring performance spu 观察,并在确认后向 Juniper 提交 JTAC 案例。

十、FAQ

Q:升级需要多长的业务中断时间?单机升级从执行安装到重启完成通常 10~20 分钟,其中真正的流量中断只有重启的几分钟;双机串行升级可以把中断做到近乎为零,代价是长时间处于无冗余状态。

Q:可以不重启就生效吗?不可以。Junos 的软件安装只是把镜像写入分区,必须 request system reboot 后从新分区启动才生效。

Q:升级前必须做 snapshot 吗?强烈建议。snapshot 会把当前根文件系统与配置复制到备用分区,是软件回滚的前提条件;没有 snapshot 时 request system software rollback 的能力会受限。

Q:如何确认升级包适用于我的型号?SRX 的软件包名中包含平台标识(例如 srxsme 用于分支型 SRX,srxp 用于高端平台)。用 show version 确认型号后,到 Juniper 支持站点按型号下载对应包,不要跨平台混用。

Q:升级后发现新版本有 Bug 想回退,配置怎么办?软件回滚不改变当前配置,但新版本可能会对配置做自动迁移。稳妥做法是回滚前先 show configuration | display set | save /var/tmp/after-upgrade.txt 保存一份,回滚后与升级前的备份对比,手工补齐差异。

Q:日常排障时应该看哪些命令?可以参考站内的 Juniper SRX 排障命令速查表,覆盖 show、log 与 flow 三类常用命令;如果是从旧版本迁移过来,建议同时阅读 SRX 防火墙配置教程 重新确认策略与 NAT 的行为差异。

相关文章

Junos OS 通过 request system software add 升级 · Juniper SRX 防火墙配置教程 · SRX300 系列初始化配置教程 · Cisco IOS-XE Install Mode 升级流程