Upgrading a Cisco XR router involves several steps to ensure a smooth transition and minimize downtime. It’s essential to follow best practices and perform backups before proceeding with the upgrade
Environment
Cisco NCS540 router with XR 7.7.2 installed
Target version XR7.7.21
Upgrade via TFTP server
Preparation
- Backup configuraiton. Before starting the upgrade process, it’s crucial to back up the current configuration.
- Download the Cisco recommended XR images – .tar file
- Start up the TFTP server
- Check what packages are installed before the upgrade
RP/0/RP0/CPU0:RTR01#show install active
Mon Mar 11 11:03:34.723 AEST
Label : 7.7.2
Node 0/RP0/CPU0 [RP]
Boot Partition: xr_lv0
Active Packages: 11
ncs540-xr-7.7.2 version=7.7.2 [Boot image]
ncs540-lictrl-1.0.0.0-r772
ncs540-eigrp-1.0.0.0-r772
ncs540-li-1.0.0.0-r772
ncs540-isis-1.0.0.0-r772
ncs540-mcast-1.0.0.0-r772
ncs540-mgbl-1.0.0.0-r772
ncs540-mpls-1.0.0.0-r772
ncs540-ospf-1.0.0.0-r772
ncs540-k9sec-1.0.0.0-r772
ncs540-mpls-te-rsvp-1.0.0.0-r772
Node 0/0/CPU0 [LC]
Boot Partition: xr_lcp_lv0
Active Packages: 11
ncs540-xr-7.7.2 version=7.7.2 [Boot image]
ncs540-lictrl-1.0.0.0-r772
ncs540-eigrp-1.0.0.0-r772
ncs540-li-1.0.0.0-r772
ncs540-isis-1.0.0.0-r772
ncs540-mcast-1.0.0.0-r772
ncs540-mgbl-1.0.0.0-r772
ncs540-mpls-1.0.0.0-r772
ncs540-ospf-1.0.0.0-r772
ncs540-k9sec-1.0.0.0-r772
ncs540-mpls-te-rsvp-1.0.0.0-r772
Upgrade Procedure
Check where to put the Image, switch to run mode to create a new folder in “harddisk” directory
10:20:43(220):RP/0/RP0/CPU0:RTR01#dir ?
10:20:43(280): /all List all files
10:20:43(280): /ena Recognize sub directories
10:20:43(281): /recurse Recursively list subdirectories encountered
10:20:43(281): WORD file name
10:20:43(281): apphost: apphost: file system
10:20:43(282): config: config: file system
10:20:43(282): disk0: disk0: file system
10:20:43(282): harddisk: harddisk: file system
10:20:43(282): location Fully qualified location specification
10:49:36(221):RP/0/RP0/CPU0:RTR01#run
10:49:36(232):Mon Mar 11 10:49:36.226 AEST
10:49:41(671):[xr-vm_node0_RP0_CPU0: mkdir harddisk://ios/
Copy the image and specify the vrf and source interface, if needed.
10:31:07(658):RP/0/RP0/CPU0:RTR01#copy tftp://192.168.4.4/NCS540-iosxr-k9-7.7.21.tar harddisk://ios/ vrf Mgmt-intf source-interface mg0/RP0/CPU0/0
10:31:07(673):Mon Mar 11 10:31:07.667 AEST
10:31:09(356):Destination filename [/harddisk:/ios//NCS540-iosxr-k9-7.7.21.tar]?
10:31:09(368):Accessing tftp://10.252.244.15;Mgmt-intf/NCS540-iosxr-k9-7.7.21.tar
10:31:11(002):CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
Switch the run mode and check the file is listed or not
10:49:36(221):RP/0/RP0/CPU0:RTR01#run
10:49:36(232):Mon Mar 11 10:49:36.226 AEST
10:49:41(671):[xr-vm_node0_RP0_CPU0: cd harddisk://ios/
10:49:41(671):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$dir
10:49:41(683):NCS540-iosxr-k9-7.7.21.tar
Extract the image files out
10:58:03(257):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$tar -xvf NCS540-iosxr-k9-7.7.21.tar
10:58:03(271):ncs540-eigrp-1.0.0.0-r7721.x86_64.rpm
10:58:03(271):ncs540-isis-1.0.0.0-r7721.x86_64.rpm
10:58:03(271):ncs540-k9sec-1.0.0.0-r7721.x86_64.rpm
10:58:03(281):ncs540-li-1.0.0.0-r7721.x86_64.rpm
10:58:03(281):ncs540-lictrl-1.0.0.0-r7721.x86_64.rpm
10:58:03(282):ncs540-mcast-1.0.0.0-r7721.x86_64.rpm
10:58:03(292):ncs540-mgbl-1.0.0.0-r7721.x86_64.rpm
10:58:03(326):ncs540-mini-x-7.7.21.iso
10:58:09(232):ncs540-mpls-1.0.0.0-r7721.x86_64.rpm
10:58:09(243):ncs540-mpls-te-rsvp-1.0.0.0-r7721.x86_64.rpm
10:58:09(290):ncs540-ospf-1.0.0.0-r7721.x86_64.rpm
10:58:09(301):README-NCS540-iosxr-k9-7.7.21.txt
10:58:11(133):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$
Remove the original tar ball file to save space
10:58:13(450):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$ls
10:58:13(466):NCS540-iosxr-k9-7.7.21.tar ncs540-k9sec-1.0.0.0-r7721.x86_64.rpm ncs540-mgbl-1.0.0.0-r7721.x86_64.rpm ncs540-ospf-1.0.0.0-r7721.x86_64.rpm
10:58:13(467):README-NCS540-iosxr-k9-7.7.21.txt ncs540-li-1.0.0.0-r7721.x86_64.rpm ncs540-mini-x-7.7.21.iso
10:58:13(468):ncs540-eigrp-1.0.0.0-r7721.x86_64.rpm ncs540-lictrl-1.0.0.0-r7721.x86_64.rpm ncs540-mpls-1.0.0.0-r7721.x86_64.rpm
10:58:13(470):ncs540-isis-1.0.0.0-r7721.x86_64.rpm ncs540-mcast-1.0.0.0-r7721.x86_64.rpm ncs540-mpls-te-rsvp-1.0.0.0-r7721.x86_64.rpm
10:58:26(251):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$rm NCS540-iosxr-k9-7.7.21.tar
10:58:28(093):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$ls
10:58:28(107):README-NCS540-iosxr-k9-7.7.21.txt ncs540-k9sec-1.0.0.0-r7721.x86_64.rpm ncs540-mcast-1.0.0.0-r7721.x86_64.rpm ncs540-mpls-1.0.0.0-r7721.x86_64.rpm
10:58:28(109):ncs540-eigrp-1.0.0.0-r7721.x86_64.rpm ncs540-li-1.0.0.0-r7721.x86_64.rpm ncs540-mgbl-1.0.0.0-r7721.x86_64.rpm ncs540-mpls-te-rsvp-1.0.0.0-r7721.x86_64.rpm
10:58:28(111):ncs540-isis-1.0.0.0-r7721.x86_64.rpm ncs540-lictrl-1.0.0.0-r7721.x86_64.rpm ncs540-mini-x-7.7.21.iso ncs540-ospf-1.0.0.0-r7721.x86_64.rpm
10:58:29(906):[xr-vm_node0_RP0_CPU0:/misc/disk1/ios]$
Install the ios base image file and other packages, check the installation progress, try to install all the .iso and .rpm files at once.
RP/0/RP0/CPU0:RTR01#install add source /harddisk:/ios/ ncs540-mini-x-7.7.21.iso ncs540....rpm ncs540....rpm ....
11:16:26(733):Mon Mar 11 11:16:26.725 AEST
11:16:29(322):2024-03-11 11:16:29 Install operation 5 started by admin:
11:16:29(323): install add source /harddisk:/ios/ ncs540-mini-x-7.7.21.iso
RP/0/RP0/CPU0:RTR01#sh install request
Mon Mar 11 12:01:11.327 AEST
No install operation in progress
Last operation performed:
Operation Id : 8
Request : Install add
State : Success
Activate all the packages including the iso base image
RP/0/RP0/CPU0:RTR01#sh install inactive
Mon Mar 11 12:01:26.908 AEST
11 inactive package(s) found:
ncs540-mgbl-1.0.0.0-r7721
ncs540-li-1.0.0.0-r7721
ncs540-mpls-te-rsvp-1.0.0.0-r7721
ncs540-mpls-1.0.0.0-r7721
ncs540-lictrl-1.0.0.0-r7721
ncs540-mini-x-7.7.21
ncs540-eigrp-1.0.0.0-r7721
ncs540-ospf-1.0.0.0-r7721
ncs540-k9sec-1.0.0.0-r7721
ncs540-isis-1.0.0.0-r7721
ncs540-mcast-1.0.0.0-r7721
RP/0/RP0/CPU0:RTR01#install activate ncs540-mgbl-1.0.0.0-r7721 ncs540xxxxxxx ncs540xxxx .....
Mon Mar 11 12:08:19.157 AEST
2024-03-11 12:08:32 Install operation 12 started by fmglocal:
2024-03-11 12:08:32 install activate pkg ncs540-mgbl-1.0.0.0-r7721 ncs540-li-1.0.0.0-r7721 ncs540-mpls-te-rsvp-1.0.0.0-r7721 ncs540-mpls-1.0.0.0-r7721 ncs540-lictrl-1.0.0.0-r7721 ncs540-mini-x-7.7.21 ncs540-eigrp-1.0.0.0-r7721 ncs540-ospf-1.0.0.0-r7721 ncs540-k9sec-1.0.0.0-r7721 ncs540-isis-1.0.0.0-r7721 ncs540-mcast-1.0.0.0-r7721
2024-03-11 12:08:36 No install operation in progress at this moment
2024-03-11 12:08:36 Checking system is ready for install operation
2024-03-11 12:08:37 'install activate' in progress
2024-03-11 12:08:37 ISO ncs540-mini-x-7.7.21 in input package list. Going to upgrade the system to version 7.7.21.
This install operation will reload the system, continue?
[yes:no]:[yes] yes
2024-03-11 12:08:47 Optimized list to prepare after sanitizing input list for superseded packages:
ncs540-isis-1.0.0.0-r7721
ncs540-lictrl-1.0.0.0-r7721
ncs540-mpls-te-rsvp-1.0.0.0-r7721
ncs540-eigrp-1.0.0.0-r7721
ncs540-mini-x-7.7.21
ncs540-k9sec-1.0.0.0-r7721
ncs540-li-1.0.0.0-r7721
ncs540-mgbl-1.0.0.0-r7721
ncs540-ospf-1.0.0.0-r7721
ncs540-mcast-1.0.0.0-r7721
ncs540-mpls-1.0.0.0-r7721
2024-03-11 12:08:47 Package list:
2024-03-11 12:08:47 ncs540-isis-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-lictrl-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-mpls-te-rsvp-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-eigrp-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-mini-x-7.7.21
2024-03-11 12:08:47 ncs540-k9sec-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-li-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-mgbl-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-ospf-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-mcast-1.0.0.0-r7721
2024-03-11 12:08:47 ncs540-mpls-1.0.0.0-r7721
2024-03-11 12:08:47 The operation is past point-of-no-return and can no longer be stopped!
2024-03-11 12:08:47 Action 1: install prepare action started
2024-03-11 12:08:47 Triggering prepare operation.
This may take a while...
2024-03-11 12:14:41 Action 1: install prepare action completed successfully
2024-03-11 12:14:44 Prepare operation completed. Trigger activate.
This may take a while...
2024-03-11 12:14:44 Prepare completed. Operation ID 12 will be taken up for activate operation
2024-03-11 12:14:45 Activate operation ID is: 12 for 'install activate' ID:12
2024-03-11 12:14:47 Install operation 12 started:
install activate noprompt
RP/0/RP0/CPU0:Mar 11 12:15:17 AEST: fpd-serv[196]: %PKT_INFRA-FM-3-FAULT_MAJOR : ALARM_MAJOR :FPD-NEED-UPGRADE :DECLARE :0/RP0:
2024-03-11 12:15:48 Install operation will continue in the background
RP/0/RP0/CPU0:RTR01#2024-03-11 12:17:58 Install operation 12 finished successfully
(IMPORTANT) Install commit to save the boot config
RP/0/RP0/CPU0:RTR01#install commit