IOS(Internetwork Operating System)是Cisco交换机中的操作系统,以映象文件(.bin格式)的形式保存在交换机的闪存中。同其它的操作系统一样,Cisco公司每年都会定期发布新的IOS操作系统,网络管理员升级IOS的主要目的是:
 修补漏洞,消除BUG
同其它的操作系统和应用软件一样,Cisco交换机的IOS操作系统,每年都会被发现大约几十个漏洞,通常情况下这些漏洞会带来严重的安全风险。因此,需要定期更新Cisco公司发布的新版IOS,来修补这些漏洞。
 增加新功能
由于Cisco交换机的特殊性,新版IOS的发布,除了针对漏洞的修补以外,还会增加新的功能。如果交换机的功能无法满足工作需要,也可以升级IOS来解决。比如,早期的交换机不支持SSH、HTTPS、SNMP V3等安全功能,可以通过升级为支持加密功能的K9版IOS,来实现这些功能。
 解决交换机兼容性问题
一个规模较大网络的交换机通常都是逐年分批采购的,不同批次交换机的IOS版本肯定不一样。通过将IOS全部升级为最新修订版,可以减少因IOS版本不同而引发交换机之间不兼容的隐患,避免配置管理上的不一致性。
一、环境介绍
公司网络的核心层为两台Catalyst 6509做双机热备,汇聚层为多台Catalyst 4506和Catalyst 3560G,接入层使用了Catalyst 3560、2960、2950交换机,总共使用了五种不同型号的Cisco交换机,整个网络拓扑如图1。

图1
二、升级前的准备工作
对正在网络中使用的交换机进行IOS升级需要冒一定风险的,稍有不慎就会造成网络中断的严重后果。因此,必须做好充分的准备工作。
由于公司网络中的交换机地域分布广,现场升级太麻烦,只能进行远程升级。为此,我们架设了FTP服务器,交换机通过网络从FTP服务器下载最新版的IOS来完成升级。为了防止升级失败而导致网络无法连接的情况,我们还准备了几台备用交换机,一旦出现问题,及时调换。升级之前,在测试网络上对所要使用的IOS操作系统进行了充分的测试。另外,利用晚上和周末等业余时间来升级IOS,以减少对网络使用的干扰和影响。
三、查看交换机信息
Cisco IOS软件与交换机的硬件是相匹配的,因此在开始升级前需要查看交换机的内存、FALSH大小及当前IOS版本和交换机型号,使用的命令是show version。对于Catalyst 4506 和Catalyst 6509这两种型号的交换机,除了要查内存、FALSH大小等信息以外,还要查明它所使用的引擎,可以使用命令show  module,也可以查看交换机引擎前面板上的标识。
1、查看IOS版本、内存大小
Catalyst 3560上查看的信息:
C3560_jr_01#show version
Cisco IOS Software, C3560 Software (C3560-IPBASE-M), Version 12.2(25)SEE2, RELEASE SOFTWARE (fc1)
……
cisco WS-C3560-24TS (PowerPC405) processor (revision D0) with 118784K/12280K bytes of memory.
……
第一行的信息显示当前IOS版本是12.2(25)SEE2,第二行的信息显示内存为128M(将118784K/12280K两个数字加起来),其中WS-C3560-24TS为交换机型号。
Catalyst 4506上查看的信息:
C4506_hj_01#show version
……
IOS (tm) Catalyst 4000 L3 Switch Software (cat4000-I9S-M), Version 12.2(25)EWA11, RELEASE SOFTWARE (fc1)
……
cisco WS-C4506 (MPC8245) processor (revision 14) with 524288K bytes of memory.
……
main-4506#show module
Chassis Type : WS-C4506
Power consumed by backplane : 0 Watts
Mod Ports  Card Type                           Model              Serial No.
---+-----+--------------------------------------+------------------+-----------
 1   2  Supervisor IV 1000BaseX (GBIC)      WS-X4515           JAE1222JNA1
 2   6  1000BaseX (GBIC)                  WS-X4306-GB        JAE110323WL
 6   24  10/100/1000BaseT (RJ45)           WS-X4424-GB-RJ45   JAE1236U5N2
......
当前IOS版本是12.2(25)EWA11,内存为512M,交换机型号是WS-C4506。Catalyst 4506的引擎板插在插槽1中,在show module命令中可以看引擎的型号是Supervisor IV  WS-X4515。
 Catalyst 6509上查看的信息:
C6509_hx_01#show version
……
IOS (tm) s72033_rp Software (s72033_rp-IPSERVICES_WAN-M),Version 12.2(33)SXH5, RELEASE SOFTWARE (fc2)
……
cisco WS-C6509-E (R7000) processor (revision 1.5) with 458720K/65536K bytes of memory.
……
C6509_hx_01#show  module
Mod Ports Card Type                       Model              Serial No.
--- ----- -------------------------------------- ------------------ -----------
  1    6  Firewall Module              WS-SVC-FWM-1       SAL1434RNX2
  5    2  Supervisor Engine 720 (Active)  WS-SUP720-3B       SAL1435S0ZR
  8   24  CEF720 24 port 1000mb SFP    WS-X6724-SFP       SAL1426LBT0
  9   48  SFM-capable 48 port 10/100/1000mb RJ45 WS-X6548-GE-TX     SAL1435S712
……
Mod  Sub-Module                Model              Serial       Hw     Status
---- --------------------------- ------------------ ----------- ------- -------
  5  Policy Feature Card 3       WS-F6K-PFC3B       SAL1435S1N0  2.6    Ok
  5  MSFC3 Daughterboard       WS-SUP720         SAL1434RB4D  5.0    Ok
  8  Centralized Forwarding Card WS-F6700-CFC       SAL1424KB6K  4.1    Ok
……
当前IOS版本是12.2(33)SXH5,内存为512M,交换机型号是WS-C6509-E。Catalyst 6509的引擎板插在插槽5中,在show module命令中可以看引擎的型号是Supervisor Engine 720  WS-SUP720-3B。
由于Catalyst 2950、2960与3560查看信息的方法是一样的,在此就不再赘述。
2、查看FLASH容量
要确定闪存容量,需要使用dir flash 命令,在Catalyst 4506中要将flash:改为bootflash:,Catalyst 6509中要改为sup-bootflash:。Catalyst 2950、2960的查看方法参考Catalyst 3560。
C3560_jr_01#dir flash:
Directory of flash:/
   ……
32514048 bytes total (24340480 bytes free)
Catalyst 3560的当前FLASH总容量是32MB,还有约23MB的可用空间。
main-4506#dir bootflash:
Directory of bootflash:/
   ……
61341696 bytes total (41738864 bytes free)
Catalyst 4506的当前FLASH总容量是64MB,还有约40MB的可用空间。
C6509_hx_01#dir sup-bootflash:
Directory of sup-bootdisk:/
    ……
512106496 bytes total (358231808 bytes free)
Catalyst 6509的当前FLASH总容量是512MB,还有约240MB的可用空间。
四、下载最新版的Cisco IOS软件
使用注册帐户登录Cisco网站,依次打开”Support”→“Download software” →”Products” →“Switches”,根据交换机的型号、引擎型号找到该交换机最新版的IOS映象,并核实最新版对交换机内存大小和Flash容量的最低要求,必要时还需查看发行说明,确认无误后再下载。
例如Catalyst 6509的IOS下载路径: Switches→LAN Switches - Core→Cisco Catalyst 6500 Series Switches→Cisco Catalyst 6509-E Switch→Cisco Catalyst 6500 Series Supervisor Engine 720 / MSFC3→IOS Software
在Cisco的下载列表中,通常会提供两种封装形式的IOS映象,一种是以bin为扩展名;另一种是以tar为扩展名,这种文件是一个压缩文件包,文件中包含了一个.bin映象文件,一个info文件——指出映象文件内容列表,一个html子目录——用于交换机Web管理的文件。两相比较,最好是选以tar为扩展名的IOS文件。
为了让交换机支持加密特性,必须下载“K9”版本的IOS映象。针对Catalyst 3560交换机,我们下载的是c3560-ipbasek9-tar.122-55.SE1.tar,以下是Cisco网站提供的关于这个文件的简要说明。
IP BASE WITH WEB BASED DEV MGR
c3560-ipbasek9-tar.122-55.SE1.tar
Release Date: 09/DEC/2010
Size: 14680.00 KB (15032320 bytes)
Minimum Memory: DRAM:128MB   Flash:16MB
从这个说明中除了能看到发布日期、文件大小之外,还能看到此版本IOS映象对交换机内存和FLASH的最低要求。如果交换机的内存或FLASH无法满足要求,要么使用对交换机要求更低的IOS映象,要么升级交换机的内存和FLASH。如果使用与交换机硬件不符的IOS文件,很容易导致升级失败。
关于这个版本的详细说明,可以查看下载页面中的Release Notes(发行说明)。另外,对于普通用户,只能下载最基本特性集的软件包,高级特性集需要有高级权限的用户才能下载。关于交换机的IOS版本及特性集,请查看Cisco白皮书:http://www.cisco.com/web/about/security/intelligence/ios-ref.html
按照上面的方法,也下载了其它型号交换机的最新IOS映象,并将下载的文件上传至FTP服务器。Catalyst 4506 和Catalyst 6509两种型号的交换机只提供以bin为扩展名的IOS下载。如下表:
交换机型号 新版IOS映象
WS-C2950G-24-EI c2950-i6k2l2q4-tar.121-22.EA14.tar
WS-C2960-24TC-L c2960-lanbasek9-tar.122-55.SE1.tar
WS-C3560-24TS-S c3560-ipbasek9-tar.122-55.SE1.tar
WS-C4506 cat4500-ipbasek9-mz.122-54.SG.bin
WS-C6509-E s72033-advipservicesk9_wan-mz.122-33.SXI5.bin
根据笔者的经验,通常情况下各型号Cisco交换机的IOS版本:Catalyst 2950为12.1EA,Catalyst 2960、3560为12.2SE,Catalyst 4506 S为12.2SG,Catalyst 6509为12.2SX。
五、备份配置文件及IOS
1、备份配置文件
下面的命令,将Catalyst 3560的启动配置文件备份到FTP服务器,服务器的IP地址为192.168.10.16,用户名为pldy,密码为123456,目标文件名为C3560_jr_01-confg。其它型号的交换机也使用相同的方法,将配置文件备份至FTP服务器。
C3560_jr_01# copy nvram:startup-config ftp://pldy:123456@192.168.10.16/ C3560_jr_01-confg
Address or name of remote host [192.168.10.16]?
Destination filename [C3560_jr_01-confg]?
Writing host1-confg !
1774 bytes copied in 1.174 secs (1511 bytes/sec)
2、IOS的备份
 Catalyst 2960和3560使用archive命令备份。
C3560_jr_01#archive upload-sw ftp://pldy:123456@192.168.10.16/c3560-ipbase-tar.122-25.SEE2.tar
System software to be uploaded:
System Type:             0x00000000
Writing c3560-ipbase-tar.122-25.SEE2.tar !
archiving /c3560-ipbase-mz.122-25.SEE2 (directory)
archiving /c3560-ipbase-mz.122-25.SEE2/c3560-ipbase-mz.122-25.SEE2.bin (6428863
bytes)!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.........
上面的命令自动将Catalyst 3560的flash:/c3560-ipbase-mz.122-25.SEE2目录中的内容打包成c3560-ipbase-tar.122-25.SEE2.tar文件,并上传至ftp服务器。
 Catalyst 2950、4506和6509使用copy命令备份。
C2950_jr_02#copy flash:/c2950-i6q4l2-mz.121-13.EA1.bin ftp://pldy:123456@192.168.10.16
Address or name of remote host [192.168.10.16]?
Destination filename [c2950-i6q4l2-mz.121-13.EA1.bin]?
Writing /c2950-i6q4l2-mz.121-13.EA1.bin !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
C2950_jr_02#archive tar /create c2950_jr_02-html.tar flash:/html
C2950_jr_02#copy flash:/c2950_jr_02-html.tar ftp://pldy:123456@192.168.10.16
Address or name of remote host [192.168.10.16]?
Destination filename [c2950_jr_02-html.tar]?
Writing /c2950_jr_02-html.tar !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
上面的第一条命令将Catalyst 2950的bin文件备份至FTP服务器,第二、三条命令将html文件夹压缩备份至FTP服务器。Catalyst 4506和6509没有html文件夹,只需备份bin文件即可。
六、开始升级
此次升级的五种型号的交换机,概括起来一共采用了三种升级方式:
 Catalyst 2950,删除原有IOS以腾出足够的FLASH空间,使用archive tar命令将IOS映象解压。
 Catalyst 2960、3560,使用archive download-sw命令直接安装。
 Catalyst 4506、6509,使用copy命令直接将bin文件拷贝至flash。
1、Cisco 2950的升级
Cisco 2950中FLASH的剩余空间无法完成升级,因此需要删除一些文件,以腾出足够的FLASH空间。下面的三条命令分别将备份时生成的tar文件、html文件夹及bin文件删除。
C2950_jr_02#delete flash:/c2950_jr_02-html.tar
Delete filename [c2950_jr_02-html.tar]?
Delete flash:/c2950_jr_02-html.tar? [confirm]
C2950_jr_02#delete /force /recursive flash:/html
Delete filename [html]?
C2950_jr_02#delete flash:/c2950-i6q4l2-mz.121-13.EA1.bin
Delete filename [c2950-i6q4l2-mz.121-13.EA1.bin]?
Delete flash:/c2950-i6q4l2-mz.121-13.EA1.bin? [confirm]
接下来,使用archive命令从FTP服务器下载相应的IOS映象,并解压缩至flash。完成后使用reload命令重启交换机。
C2950_jr_02#archive tar /xtract ftp://pldy:123456@192.168.10.16/c2950-i6k2l2q4-tar.121-22.EA14.tar flash:
Loading c2950-i6k2l2q4-tar.121-22.EA14.tar
...
C2950_jr_02#reload
2、Catalyst 2960、3560的升级
Catalyst 2960和3560的升级方法是一样的,所以就以Catalyst 3560的升级过程为例进行说明。这两种型号的交换机,升级前不需要手动删除文件,升级过程中,老版本的IOS映象将被自动删除,完成后使用reload命令重启交换机。
C3560_jr_01# archive download-sw ftp://pldy:123456@192.168.10.16/c3560-ipbasek9-tar.122-55.SE1.tar
Loading c3560-ipbasek9-tar.122-55.SE1.tar !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!......
……
Installing (renaming): `flash:update/c3560-ipbasek9-mz.122-55.SE1' ->                                       `flash:c3560-ipbasek9-mz.122-55.SE1'
New software image installed in flash:c3560-ipbasek9-mz.122-55.SE1
Removing old image: flash:/c3560-ipbase-mz.122-25.SEE2
All software images installed.
C3560_jr_01#reload
升级小插曲:
在升级Catalyst 2960时,将archive命令添加了一个/overwrite参数,以便升级时强制覆盖原有映象文件。大部分的Catalyst 2960交换机都能顺利升级,只有两台交换机无法升级,出现下面的错误信息。
C2960_jr_21#archive download-sw /overwrite ftp://pldy:123456@192.168.10.16/c2960-lanbasek9-tar.122-55.SE1.tar
Loading c2960-lanbasek9-tar.122-55.SE1.tar from 192.168.10.16
......
%Error, "flash:" is a directory.
%Error, "flash:" is a directory.
%Error opening flash:update/info (No such file or directory)
ERROR: Malformed `info' file.
ERROR: Image is not a valid IOS image archive.
从上面的信息分析来看,在打开flash:update/info文件时出错了。于是,通过dir flash:命令查看FLASH中文件,发现update文件夹是一个空文件夹。
C2960_jr_21#dir flash:
Directory of flash:/
    2  -rwx        3136  Mar 15 2010 13:59:52 +11:00  vlan.dat
    3  -rwx        8853   May 5 2010 11:10:38 +10:00  config.text
    4  -rwx        8746   May 5 2010 11:10:38 +10:00  private-config.text
    5  drwx           0   May 5 2010 11:13:31 +10:00  update
    6  -rwx        2072   May 5 2010 11:10:38 +10:00  multiple-fs
  473  drwx         192  Feb 13 2008 06:33:40 +11:00  c2960-lanbase-mz.122-44.SE6
32514048 bytes total (24393216 bytes free)
在尝试删除update文凭夹时,又出现了下面的错误信息(设备忙),无法删除update。
#rmdir flash:/update
Remove directory filename [update]?
Delete flash:/update? [confirm]
%Error Removing dir flash:/update (Device or resource busy)
重新启动交换机后,可以将update文凭夹删除。重新升级IOS,故障依旧。后来,在升级Catalyst 3560 过程中,发现在archive命令中不加/overwrite参数,也可以顺利升级。于是网络管理员抱着试试看的心理,在这两台Catalyst 2960上重新使用不带/overwrite参数的archive 命令升级,结果升级成功。
3、Catalyst 4506的升级
利用copy命令,从FTP服务器下载最新版的IOS文件,存储到Catalyst 4506的bootflash:。
C4506_hj_01#copy ftp://pldy:123456@192.168.10.16/ cat4500-ipbasek9-mz.122-54.SG.bin bootflash:
下载完成后,设置交换机引导所使用的IOS文件。
C4506_hj_01(config)#boot system flash bootflash:cat4500-ipbasek9-mz.122-54.SG.bin
将寄存器的值修改为0x2102。
C4506_hj_01(config)#config-register 0x2102
保存配置,并重启交换机,升级完成。

小知识:
在Catalyst 4506的升级过程中,牵扯到了寄存器的修改。寄存器是一个16位的二进制数,在交换机中以十六进制数来表示,用于指定交换机启动的次序、中断参数和设置控制台波特率等。
Catalyst 4506的默认寄存器值为0x2101,这个值指定交换机从第一个IOS文件引导,忽略boot system flash指定的IOS文件。寄存器值若为0x2102,交换机将使用boot system flash命令指定的IOS文件引导。
因此,当新版的IOS映象复制到bootflash:后,由于老版IOS文件的存在,新版IOS将成为第二个文件。如果使用默认的寄存器值0x2101,只有删除老版的IOS文件,让新版IOS成为第一个文件,升级才能成功。而通过修改寄存器值为0x2102,就可以保留老版的IOS文件成功升级了。
4、Catalyst 6509的升级
利用copy命令,从FTP服务器下载最新版的IOS文件,存储到Catalyst 6509的sup-bootflash:。
C6509_hx_01#copy ftp://pldy:123456@192.168.10.16/ s72033-advipservicesk9_wan-mz.122-33.SXI5.bin sup-bootflash:
下载完成后,设置交换机引导所使用的IOS文件。
C6509_hx_01(config)#boot system sup-bootflash:/ s72033-advipservicesk9_wan-mz.122-33.SXI5.bin
保存配置,并重启交换机,升级完成。
对于Catalyst 4506和6509交换机,FLASH容量通常比较大,老版的IOS文件最好保留,当新版本出现不稳定现象时,可以及时回撤到老版本。除此之外,这两种交换机还可以使用外置CF卡中的IOS文件启动,从而为IOS升级提供了另一条途径。
七、升级失败的处理
在升级过程中难免会碰到特殊情况,如升级过程中断电,原IOS文件被删除了,而新的IOS文件又未完成上传,这时交换机将陷入瘫痪而无法正常启动,这种情况下可以采用Xmodem方式上传IOS文件。
1、进入交换机的Rommon模式,执行flash_init命令,初始化flash:。
switch: flash_init
Initializing Flash...
……
2、格式化flash。
Switch: format flash:
Are you sure you want to format "flash:" (all data will be lost) (y/n)?y
……
这一步不是必做步骤,要根据交换机的情况而定。
3、调整波特率为115200。
switch: set BAUD 115200
这样可以大大减少传送文件的时间,如果使用默认的9600,需要数小时,修改后只需要几十分钟。更改后屏幕出现乱码,超级终端需要重新连接,并且将波特率设为115200。
4、使用xmodem方式,将IOS文件传送至交换机的flash。
switch: copy xmodem: flash: c3560-ipbasek9-mz.122-55.SE1.bin
Begin the Xmodem or Xmodem-1K transfer now...
CCC
Starting xmodem transfer.  Press Ctrl+C to cancel.
Transferring c3560-ipbasek9-mz.122-55.SE1.bin..
执行完copy命令后,交换机进入接收状态,此时在超级终端上选择“传送” →“发送文件”→选xmodem协议→ 选IOS文件,开始传送。
5、设置BOOT参数
switch: set BOOT flash: c3560-ipbasek9-mz.122-55.SE1.bin
拷贝完IOS文件后,需要设置BOOT引导参数,指定引导所用的bin文件。
6、恢复波特率为默认值。
switch: unset BAUD
将波特率重设为默认值9600,超级终端需要使用新的波特率重新连接。
7、启动交换机。
switch: boot
这时就会使用新的IOS文件启动交换机了。
8、启动完成后,再配置其它参数。

至此,整个升级过程介绍完毕。在升级过程中,有几个地方需要注意:
一、尽力保障电力供应,避免升级过程中断电或重启交换机,否则会导致升级失败。
二、要从正规渠道获取IOS文件,如Cisco的官方网站和授权的经销商,以保证IOS的权威、干净和完整。
三、要注意版权问题,不要侵犯版权。
四、升级完成之后,一定要进行安全性、可靠性测试,密切注视升级后的网络运行情况,如有异常及时处理。

文章如转载,请注明转载自:http://www.5iadmin.com/post/1022.html