1. 相关介绍


1.1 升级、降级、补丁

  • 对设备进行升级操作,即系统软件从低版本至高版本升级
    • 当增加了新特性或者需要对原有性能进行优化以及解决当前运行版本的问题时,则需要对设备进行升级。此时需要加载高版本的系统软件,并重新启动设备来实现。
  • 对设备进行降级操作(版本回退)即系统软件从高版本至低版本降级
    • 设备完成升级后,如果业务出现异常,为保证业务正常可以先将设备版本进行回退。此时需要加载低版本的系统软件,并重新启动设备来实现。
  • 对设备指定升级后的补丁操作
    • 可以在设备升级的同时指定之前未安装过的补丁文件,当设备升级完成后,补丁也会立即生效。

1.2 系统软件

设备的软件包括BootLoad软件系统软件。设备上电后,先运行BootLoad软件,初始化硬件并显示设备的硬件参数,然后运行系统软件。系统软件一方面提供对硬件的驱动和适配功能,另一方面实现了业务特性。BootLoad软件与系统软件是设备启动、运行的必备软件,为整个设备提供支撑、管理、业务等功能。

设备在升级时包括升级BootLoad软件和升级系统软件。
目前设备的系统软件(.cc)中已经包含了BootLoad软件,在升级系统软件的同时即可自动升级BootLoad。

1.3 配置文件

配置文件是命令行的集合。用户将当前配置保存在配置文件中,以便设备重启后,这些配置能够继续生效。另外,通过配置文件,用户可以非常方便地查阅配置信息,也可以将配置文件上传到别的设备,来实现设备的批量配置。

配置文件为文本文件,其规则如下:

  • 以命令格式保存
  • 为了节省空间,只保存非缺省的参数
  • 以命令视图为基本框架,同一命令视图的命令组织在一起,形成一节,节与节之间通常用空行或注释行隔开(以“#”开始的为注释行)。空行或注释行可以是一行或是多行。
  • 文件中各节的顺序安排通常为:全局配置、接口配置、各种协议配置和用户界面配置
  • 配置文件必须以“.cfg”或“.zip”作为拓展名,而且必须存放在存储设备的根目录下。
    • “.cfg”为纯文本格式,可直接查看其内容。指定为配置文件后,启动时系统对里面的命令逐条进行恢复。
    • “.zip”是“.cfg”的压缩格式,占用空间较小。指定为配置文件后,启动时先解压成“.cfg”格式,然后逐条恢复。
  • 配置文件中,命令表达式必须是全写,请勿使用缩写
  • 配置文件中,每行命令使用“/r/n”换行,禁止使用其它形式不可见字符换行。
  • 配置文件传输至设备时,推荐使用FTP的binary模式。

设备运行过程中,有出厂配置、配置文件和当前配置,区别如下表:

概念 描述 查看方式
出厂配置 设备在出厂时,通常会被安装一些基本的配置,称为出厂配置。出厂配置用来保证设备在没有配置文件或配置文件丢失、损坏的情况下,能够正常启动、运行。 -
配置文件 设备上电时,从默认存储路径中读取配置文件进行设备的初始化操作,因此该配置文件中的配置称为初始配置。如果默认存储路径中没有配置文件,则设备用缺省参数初始化配置。 使用**display startup**命令可以查看到设备本次以及下次启动的配置文件。
使用**display saved-configuration**命令可以查看设备下次启动时的配置文件信息。
当前配置 与初始配置相对应,设备运行过程中正在生效的配置称为当前配置 使用display cu命令查看设备的当前配置信息

用户通过命令行接口可以修改设备当前配置,为了使当前配置能够作为设备下次启动时的起始配置,需要使用**save**命令保存当前配置到默认存储器中,形成配置文件。

1.4 证书文件

证书文件是一个包含用户者公钥和相关身份信息的文件。设备从传统模式切换成NETCONF模式,以及从控制器获取地址时,需要用到证书文件。
当前版本设备启动时所需的证书文件有device.pemdefault_ca.cerroot.cerdefault_local.cerca_config.iniprivate-data.txt。这些文件属于系统文件,不能通过命令行删除,若从BootLoad菜单中强制删除,会导致设备注册控制器失败。

1.5 补丁文件

补丁是一种与设备系统软件兼容的软件,用于解决设备系统软件少量且急需解决的问题。在设备的运行过程中,有时需要对设备系统软件进行一些适应性和排错性的修改,如改正系统中存在的缺陷、优化某功能以适应业务需求等。
补丁通常以补丁文件的形式发布,一个补丁文件可能包含一个或多个补丁,不同的补丁具有不同的功能。当补丁文件被用户从存储器加载到内存补丁区中时,补丁文件中的补丁将被分配一个在此内存补丁区中唯一的单元序号,用于标志、管理和操作各补丁。

补丁分类:
根据补丁生效对业务运行的影响,补丁分成热补丁和冷补丁

  • 热补丁HP(Hot Patch):补丁生效不中断业务,不影响业务运行,同时可以降低设备升级成本,避免升级风险。
  • 冷补丁CP(Cold Patch):要使补丁生效需要复位单板或重启设备,影响业务的运行。

根据补丁间的依赖关系,补丁可分为增量型补丁和非增量型补丁

  • 增量型补丁:是指对在其前面的补丁有依赖性的补丁。一个新的补丁文件必须包含前一个补丁文件中的所有补丁信息。用户可以在不卸载原补丁文件的情况下直接安装新的补丁文件。
  • 非增量型补丁:只允许当前系统安装一个补丁文件。如果用户安装完补丁之后希望重新安装另一个补丁文件,则需要先卸载当前的补丁文件,然后再重新安装并运行新的补丁文件。

补丁状态:每个补丁都有自身的状态,只有在用户命令行的干预下才能发生切换。

状态 说明 各状态之间的转换关系
空闲态(Idle) 补丁文件存储在设备的存储器中,但没有被加载到内存补丁区时,补丁处于空闲状态。 当用户将补丁从存储器中加载到内存补丁区后,补丁的状态将被设置为去激活。
去激活(Deactive) 当补丁被加载到内存补丁区时,补丁处于去激活状态。 用户可以对去激活状态的补丁进行以下两种操作:
- 卸载此补丁,使补丁从内存补丁区中被删除。
- 临时运行此补丁,使补丁的状态变为激活状态。
激活(Active) 当处于去激活状态的补丁被临时运行时,补丁处于激活状态。
当单板被复位后,此单板上在复位前处于激活状态的补丁仍然恢复为激活状态。只有当整机复位后,复位前处于激活状态的补丁将会处于去激活状态。
用户可以对激活状态的补丁进行以下两种操作:
- 卸载此补丁,使补丁从内存补丁区中被删除。
- 永久运行此补丁,使补丁的状态变为运行状态。
运行(Running) 当处于激活状态的补丁被永久运行时,补丁处于运行状态。
当单板或整机被复位后,在复位前处于运行状态的补丁将保持运行状态。
用户可以卸载处于运行状态的补丁,使补丁从内存补丁区中被删除。

各状态之间的转换关系如下图所示:
补丁状态的转换关系.png
补丁安装:
为设备安装补丁也是设备升级的一种方式。补丁安装方式有以下两种:

  1. 一般均采用不中断业务的方式,在设备运行过程中直接加载运行补丁,这也是热补丁的优势。这种安装方式的详细过程请参见随补丁版本同时配套发布的补丁安装指导书,用户可以根据补丁安装指导书进行补丁安装。
  • 另外一种方式就是本章介绍的指定系统下次启动的补丁文件,这种方式需要设备重启之后补丁才能生效。一般用于设备升级的同时安装补丁文件。

2. 技术支持网站

华为:http://support.huawei.com/enterprise
image.png
华三:https://www.h3c.com/cn/Service/Document_Software/Software_Download/
image.png
思科:https://software.cisco.com/download/home
image.png
锐捷:https://www.ruijie.com.cn/fw/rj/
image.png

2.1 FTP、TFTP软件

  1. TFTP.rar

image.png
image.png
image.png
image.png
image.png

  1. 3CDeamon.zip

image.png
image.png
image.png

3. 升级流程


3.1 华为设备升级

3.1.1 升级维护注意事项

配置注意事项 规避措施 影响性

- 使用license2.0,license文件类型,要求为.dat或者.zip;
- license文件不可以被修改。
不支持ISSU升级 合理规划业务,如果需要升级,使用重启设备,中断业务的方式升级。 不支持在线业务升级
系统CPU使用率超过70%不允许补丁操作。 等系统CPU使用率降小于70%再进行补丁操作。 补丁操作失败
系统已使用内存加上加载补丁预估使用内存后的内存使用率超过90%不允许加载补丁。 等系统内存使用率降低后再加载补丁。 补丁加载失败
业务配置时,不允许进行补丁操作。可能会出现补丁操作失败。 业务配置、补丁操作不要同时进行。 补丁操作失败
用户执行降级操作时,设备会进行硬件兼容性校验。
如果当前设备上存在与低版本软件大包不兼容的子卡、单板等硬件,用户执行设置启动大包的动作时设备会提示操作失败并返回相关提示信息。
降级操作前必须清除当前环境上不支持的硬件及其配置数据。 设备上存在低版本不兼容硬件时,不能直接降级。
如果使用的是NPU480-1T大包,受大包大小与磁盘分区大小限制,不支持V8R10之前的版本与V8R13及之后版本之间直接升降级。如果从V8R13及之后版本直接降级V8R10之前的版本,设置下次启动包会提示不支持设置:Error: The system software package to be installed cannot be started because of partition settings. 间接升降级 版本升降级路径

3.1.2 软件升级前检查

  1. 在用户视图下,执行命令display version,查看设备当前运行的软件版本。
  2. 通过一系列的命令检查设备的运行状态:
    1. 使用display health,查看设备主控板内存使用率,从而保证主控板工作正常。
    2. 使用display alarm information,查看设备的告警信息,保证主控板和业务板工作正常。
    3. 使用display device,查看设备主控板和业务板工作状态,保证主控板和业务板工作正常。当Register字段显示Unregistered时,表示该槽位单板没有注册成功;当Status字段显示Abnormal时,表示该槽位运行不正常。
    4. 使用display logfile _path_记录下日志显示信息。

3.1.3 使用TFTP协议升级

  • 通过TFTP协议升级时,由于待升级设备只能做为客户端不能提供TFTP Server功能,因此用户必须在PC上先安装TFTP Server应用程序。 | 执行命令 **copy** source-filename destination-filename备份待升级设备存储介质中的重要数据。

    执行命令**dir [/all] [filename]**检查待升级设备存储介质中的剩余空间,保证有足够的空间存放待上传升级的软件文件及配套的文档。 | | —- |

tftp [ -a source-ip-address | -i { interface-name | interface-type interface-number } ] host-ip-address [ vpn-instance vpn-instance-name | public-net ] { get | put } source-filename [ destination-filename ]

参数 参数说明 取值
-a source-ip-address 指定本端设备的源IPv4地址。 点分十进制格式。
-i interface-name 指定源接口名称。 -
interface-type 指定源接口类型。 -
interface-number 指定源接口编号。 -
host-ip-address 远程TFTP服务器的IPv4地址或主机名。
可以通过执行命令display dns dynamic-host或命令display ip host查看IP地址与主机名的对应关系。

- 表示IPv4地址时,为点分十进制。
- 表示主机名时,为字符串形式,区分大小写,不支持空格。
vpn-instance vpn-instance-name 远程TFTP服务器端的VPN实例名。 字符串形式,区分大小写,不支持空格,长度范围是1~31。不能以“public”作为VPN实例名称。当输入的字符串两端使用双引号时,可在字符串中输入空格。
public-net 在公网中连接TFTP服务器。 -
get 指定从远端TFTP服务器进行下载文件操作 -
put 指定上传本地文件到远端TFTP服务器操作 -
source-filename 指定源文件名。 字符串形式,取值范围1~128,能包含字母、数字和特殊字符。
destination-filename 指定目标文件名。 字符串形式,取值范围1~128,能包含字母、数字和特殊字符。
  1. #从远端服务器下载文件
  2. <HUAWEI> tftp 10.1.1.2 get sample.txt sample1.txt
  3. #上传文件到远端服务器
  4. <HUAWEI> tftp 10.1.1.2 put sample.txt
  5. #通过名称为vrp的VPN实例从远端服务器下载文件
  6. <HUAWEI> tftp -a 10.1.1.2 vpn-instance vrp 10.1.1.1 get sample.txt sample1.txt

3.1.4 使用FTP协议升级

  • 如果待升级设备作为客户端,PC作为服务器端,用户需在自己的PC上先安装FTP Server应用程序。
  • 如果待升级设备作为服务器端(待升级设备提供FTP Server功能),PC作客户端,用户不需要安装FTP Server应用程序。缺省情况下待升级设备的FTP功能是关闭的,需要在系统视图下执行命令ftp server enable使能FTP Server功能。

ftp [ -a source-ip-address | -i { interface-type interface-number | interface-name } ] host-ip [ port-number ] [ vpn-instance vpn-instance-name | public-net ]
ftp ipv6 [ -a source-ip6 ] host-ipv6-address [ [ vpn-instance ipv6-vpn-instance-name ] | public-net ] -oi { interface-type interface-number | interface-name } [ port-number ]
ftp ipv6 [ -a source-ip6 ] host-ipv6-address [ [ vpn-instance ipv6-vpn-instance-name ] | public-net ] [ port-number ]

参数 参数说明 取值
-a source-ip-address 指定FTP客户端的IPv4地址。
该地址必须是设备上已配置的IP地址。建议在LoopBack接口上配置IP地址,然后使用该IP地址作为FTP连接的源IP地址。
基于IPv4网络,本命令中指定源地址的优先级高于ftp client-source命令中指定源地址的优先级。如果执行命令ftp client-source指定了源地址后,又在本命令中指定了源地址,则采用本命令中指定的源地址进行通信。
ftp client-source命令指定的源地址对所有的FTP连接都有效,本命令指定的源地址只对当前的FTP连接有效。
点分十进制格式。
-i interface-name 指定当前FTP客户端连接使用的源接口名称。 -
interface-type 指定当前FTP客户端连接使用的源接口类型。 -
interface-number 指定当前FTP客户端连接使用的源接口编号。 -
host-ip 指定远程FTP服务器的IP地址或主机名。
可以通过执行命令display dns dynamic-host或命令display ip host查看IP地址与主机名的对应关系。
字符串形式,区分大小写,不支持空格。
port-number 指定FTP服务器的端口号。
缺省情况下,FTP服务器端侦听端口号是21,此时访问设备可以不指定端口号。但如果使用标准的侦听端口号,可能会有攻击者不断访问此端口,导致带宽和服务器性能的下降,造成其他正常用户无法访问。所以可以执行本命令重新配置FTP服务器的侦听端口号,攻击者不知道FTP侦听端口号的更改,有效防止了攻击者对FTP服务标准端口的访问。
整数形式,取值范围是21,或1025~65535。缺省值是21。
vpn-instance vpn-instance-name 指定FTP服务器所属的VPN实例名。
选择参数vpn-instance vpn-instance-name时,必须保证已经成功配置VPN实例。
字符串形式,区分大小写,不支持空格,长度范围是1~31。不能以“public”作为VPN实例名称。当输入的字符串两端使用双引号时,可在字符串中输入空格。
public-net 指定连接的FTP服务器属于公网。
在通过命令set net-manager vpn-instance配置了网管管理设备时所需要使用的默认VPN实例后,此时如果用户想要通过FTP连接公网服务器时,则必须选择此参数。
-
ipv6 host-ipv6-address 指定远程IPv6 FTP服务器的IPv6地址或主机名。 字符串形式,区分大小写,不支持空格。
source-ip6 指定FTP客户端的IPv6地址。
该地址必须是设备上已配置的IP地址。建议在LoopBack接口上配置IP地址,然后使用该IP地址作为FTP连接的源IP地址。
基于IPv6网络,本命令中指定源地址的优先级高于ftp ipv6 client-source命令中指定源地址的优先级。如果执行命令ftp ipv6 client-source指定了源地址后,又在本命令中指定了源地址,则采用本命令中指定的源地址进行通信。
ftp ipv6 client-source命令指定的源地址对所有的FTP连接都有效,本命令指定的源地址只对当前的FTP连接有效。
32位16进制数,格式为X:X:X:X:X:X:X:X。
ipv6-vpn-instance-name 指定FTP服务器所属的IPv6 VPN实例名。 字符串形式,区分大小写,不支持空格,长度范围是1~31。不能以“public”作为VPN实例名称。当输入的字符串两端使用双引号时,可在字符串中输入空格。
-oi 指定当前IPv6 FTP客户端连接使用的源接口,包括接口类型和接口编号。此接口下配置的IPv6地址即为发送报文的源地址。如果源接口下没有配置IPv6地址,则导致FTP连接建立失败。
建议指定设备上的Loopback接口为源接口。
-

前置条件:

  1. FTP服务器端已经执行命令ftp server enable,开启设备的FTP服务器功能,允许FTP用户登录。
  2. 确保FTP服务器与FTP客户端之间路由可达,否则连接建立失败。

如果FTP服务器允许登录的用户达到了最大值,新的合法用户将无法成功登录。为了保证新的合法用户成功登录FTP服务器,已经完成FTP功能的用户需要及时断开FTP连接。根据需要,在FTP客户端视图下任意执行以下步骤:

  • 执行命令bye/quit终止与FTP服务器的连接,并退回到用户视图。
  • 执行命令close/disconnect终止与FTP服务器的连接,并终止FTP会话,仍保持在FTP客户端视图。
注意事项:
- 执行本命令,系统会提示用户输入登录FTP服务器的用户名和密码。如果用户名和密码正确,则登录成功,并进入FTP客户端视图;否则,登录失败。
- 执行本命令,如果未指定任何参数,则仅表示进入FTP视图,此时并未与任何FTP服务器建立连接。
- FTP缺少安全的认证方式,存在安全隐患。对于安全性较高的网络,建议采用SFTP方式。

与远端FTP服务器建立连接:
image.png
通过源IP地址与远端FTP服务器建立连接
image.png
连接到地址为FE80::2E0:27FF:FE35:8342(IPv6 FTP服务器接口自动生成的本地链路地址)的远程IPv6 FTP服务器。
image.png

3.1.5 指定下次启动的系统软件

在指定下次启动的系统软件进行软件升级时,必须保证系统中没有正在运行的补丁,否则无法顺利完成系统软件的升级操作。

在执行启动升级之前,用户可以在用户视图下执行命令upgrade rollback enable rollback-timer time-value使能版本回退功能,并同时设置设备升级过程中版本回退的超时时间。设置此时间后,如果在这个设置时间内没有用户从命令行成功连接系统并认证成功,登录到设备,则系统将会进行版本回退。
执行命令display upgrade rollback命令可以查看设备中版本回退功能的使能状态。
在启动升级之前,使用check system-software命令行进行数字签名校验,以保证所需升级的目标软件是安全可用的,该命令行执行需要3~10分钟。
  1. 执行命令display patch-information查看系统中是否存在状态为“Run”的补丁。
  2. (可选)在用户视图下执行命令patch delete **all**删除正在运行的补丁文件,直到检查系统中没有补丁在运行。
  3. 在用户视图下,执行命令startup system-software _system-file_指定主控板下次启动的系统软件,参数system-file是系统软件的文件名,文件形式为*.cc。
  4. 在用户视图下,执行命令startup system-software _system-file_ slave-board指定备用主控板下次启动的系统软件,参数system-file是系统软件的文件名,文件形式为*.cc。 | 下次重启时,请务必确保主用主控板和备用主控板的系统软件一致,否则无法执行reboot操作。VS模式下,该命令仅在Admin VS支持。 | | —- |

3.1.6 检查升级结果

  1. 使用dir file-name,查看设备主控板存储介质中包含的系统软件(*.cc)名称是否与上传的系统软件文件一致。
  2. 执行命令display startup,在显示内容中查看“Startup system software”字段所对应的文件名称,是否与用户所需启动的文件名称一致。

3.2 华三设备升级


3.2.1 使用TFTP协议升级

交换机作为 TFTP Client,访问 TFTP 文件服务器的制定路径,完成启动文件的备份及升级操作, 具体操作步骤如下:

  1. 备份当前启动文件和配置文件
    1. 在命令行配置界面的任意视图下,执行save命令保存交换机当前配置:image.png
    2. 在命令行配置界面的用户视图下,执行dir命令查看交换机当前的文件系统,确认启动文件及配置文件名,以及Flash的剩余空间,确保Flash有足够空间放入新的启动文件:image.pngimage.png
    3. 在命令行配置界面的用户视图下,执行tftp put命令将启动文件main.bin备份到TFTP文件服务器上:

image.png

  1. 在命令行配置界面的用户视图下,执行tftp put命令将配置文件startup.cfg备份到TFTP文件服务器上:

image.png

  1. 升级启动文件
    1. 在命令行配置界面的用户视图下,执行tftp get命令将启动文件“xxxBooT.bin”“xxxSystem.bin”导入到交换机的Flash卡中:

image.png

  1. 在命令行配置界面的用户视图下,执行boot-loader命令设置交换机下次启动使用的启动文件为“xxxBooT.bin”“xxxSystem.bin”,并指定启动文件类型为main:

image.png

  1. 在命令行配置界面的用户视图下,执行display boot-loader命令查看设备的启动程序文件信息:

image.png

  1. 在命令行配置界面的用户视图下,执行reboot命令重启设备:

image.png

  1. 交换机重启后,通过display version命令查看交换机的启动文件版本信息是否与升级的启动文件一致。

3.2.2 使用FTP协议升级

交换机作为FTP Client,访问FTP文件服务器的指定路径,完成启动文件的备份及升级操作,具体操作步骤如下:

  1. 备份当前配置文件和配置文件

(1)在命令行配置界面的任意视图下,执行save命令保存交换机当前配置信息:
image.png
(2)在命令行配置界面的用户视图下,执行dir命令查看交换机当前的文件系统,确认启动文件及配置文件名,以及Flash的剩余空间,保证Flash有足够空间放入新的启动文件:
image.png
(3)在命令行配置界面的用户视图下,执行ftp命令登录FTP文件服务器,根据系统提示输入登录用户名和密码:
image.png
(4)在FTP客户端视图下,执行put命令将启动文件main.bin备份到FTP文件服务器上:
image.png
image.png
(5)在FTP客户端视图下,执行put命令将配置文件startup.cfg备份到FTP文件服务器上:
image.png

  1. 升级启动文件

(1) 在 FTP 客户端视图下,执行 get 命令将启动文件 xxx-BOOT-test.bin、 xxx-SYSTEM-test.bin 导入到交换机的 Flash 中:
image.png
(2)在FTP客户端视图下,执行quit命令,返回到命令行配置界面的用户视图:
image.png
(3) 在命令行配置界面的用户视图下,执行 boot-loader 命令设置交换机下次启动使用的启动文件 为 xxx-BOOT-test.bin、xxx-SYSTEM-test.bin,并指定启动文件 类型为 main:
image.png
(4)在命令行配置界面的用户视图下,执行display boot-loader命令查看设备的启动程序文件信息:
image.png
(5)在命令行配置界面的用户视图下,执行reboot命令重启交换机:
image.png
(6)交换机重启后,通过display version命令查看交换机的启动文件版本信息是否与升级的启动文件一致。

3.3 思科设备升级


3.3.1 使用TFTP协议升级

  1. 先将需要升级的版本文件上传至设备

设备升级、打补丁 - 图37

  1. 指定下次启动的系统软件
    1. 在全局配置模式下:boot system flash:[文件名]
    2. 文件名可按Tab键进行补全
  2. 删除原系统软件(建议删除前备份
  3. 保存配置
  4. 使用reload重启设备
  5. 进入系统后使用show version查看当前系统软件版本,确定是否与需要升级的版本一致

3.3.2 系统升级失败恢复

  1. 断电重启Switch,同时按住Mode键,等待15秒后,交换机端口变成琥珀色,松开
  2. 进入最小模式Switch:
    1. 输入flash_init
    2. 键入load_helper
    3. 键入dir flash:
      1. 显示出flash中的文件,其中有存储配置信息的config.text
      2. 键入rename flash:config.text flash:config.old就可以跳过原有配置文件
      3. 键入boot重启,这样就可以跳过配置文件,不需要密码
    4. 当上传了错误的系统文件导致系统启动失败时,需要boot flash:(系统文件名)
      1. 使用此命令后系统会自动重启