基于安全的考虑,网络管理员要对网络设备的配置信息和IOS进行备份,如果需要将新的特性部署到网络设备上,很多时候就需要对IOS的版本进行升级。
不小心把IOS误删掉或者在升级IOS失败,重启后进入ROMMON(ROMMON状态是ROM MONITOR的缩写)状态,是比较常见的事情。本文内容将介绍IOS备份与恢复的两种方法。
问题:网络设备操作系统的偿试困难
很多想考CISCO认证的朋友经常苦于实战演练没有设备,北京某培训中心根据业务发展的情况,对部分VIP学员免费开放了实验环境。并且在这些设备所组成的拓扑上,配置和实现很多复杂的功能,但学员经常拔插Console线,这会对Console口造成极大的损伤。基于以上考虑,培训中心在原有培训实验室的基础上建立了一套远程试验室,大部分的实验环境都实现了隔离,也就是说,练习学员很少能接触到真实的设备。
实验室也进行了一些规定,例如一些危险性的命令(erase flash)是不允许操作的。但是还有一些学员并没有很好的遵守这些规定,导致一些设备出现了IOS损坏的情况。一些设备已经无法使用,只能进入ROMMON状态,不能进行正常的路由转发功能和软件配置,在这种模式下,原IOS中的大部分命令都无法使用。
网络管理员在修复这些设备时,首先检查了 config-register设置的情况(正常config- register应该是0x2102的),但发现没有问题,已经可以确认是IOS遭到了致命的伤害。另外,一些网络设备的IOS版本特性已经升级了,在获取新的IOS后也需要对这些设备进行更新操作。培训中心的网络维护需求如下:
* 升级一些交换机的IOS版本,让交换机支持更多的特性。
* 修复被破坏的路由器IOS。
提示:
在实验环境中,升级IOS的情况也是比较常见的,例如,CISCO 2950 交换机频繁发生吊死故障,发生吊死的交换机无任何警告信息,重启后即恢复正常。通过将交换机IOS版本由12.11(EA1)升级到12.12(EA2) 之后的版本,故障现象就可以消失。
操作系统备份解决思路
在利用config-register检查寄存器没有问题的情况下,就需要检查IOS大小和文件名是否出现了改动。用dir flash: 命令;注意命令中flash后面跟冒号“:”,执行命令后会显示flash现存的IOS大小和文件名,如下:
rommon 1 dir flash:
File size Checksum File name
2179331 bytes (0x214103) 0x7b95 c1600-nsy-mz_112-15a_p
如果File name和File size的两项都和系统之前的快照不一致,那就需要操作系统恢复的步骤了。此时,管理员可以根据IOS的备份恢复系统,可以利用“TFTP”和“XMODEM”两种方式。下面介绍一下升级与备份前的准备工作。
1.选择传输协议
升级或恢复IOS的方法可以有3种:TFTP、XMODEM和FTP,但前面两种比较常用。
在实验室升级网络设备的操作系统还是比较简单的,风险只存在实验网络,但在生产网络中升级IOS的风险是无处不在的。在高端设备的升级中,很有可能会发生一些意想不到的事,比如,用TFTP传输Cisco 6509 交换机IOS就会出现问题,这是因为TFTP(Trivial File Transfer Protocol)普通文件传输协议最大就支持传输32MB的文件,而新的IOS要超过这个限制,所以需要使用FTP进行升级。
(1)TFTP
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议集中的一个用来在客户机与服务器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。TFTP承载在UDP上,提供不可靠的数据流传输服务,不提供存取授权与认证机制,使用超时重传方式来保证数据的到达。
可以从它的名称上看出,它适合传送“简单”的文件。与FTP不同的是:它使用的是UDP的69接口,因此它可以穿越许多防火墙。不过它也有缺点,比如传送不可靠、没有密码验证等。虽然如此,它还是非常适合传送小型文件的,就比如网络设备的IOS文件。
(2)XMODEM
XMODEM协议是最早出现的两台计算机间通过RS232异步串口进行文件传输的通信协议标准,相对于YMODEM、ZMODEM等其他文件传送协议来说,XMODEM协议实现简单,适合于那些存储器有限的场合。
XMODEM文件发送方将文件分解成128字节的定长数据块,每发送一个数据块,等待对方应答后才发送下一个数据块,数据校验采用垂直累加和校验,也可以采用16位的CRC校验。属于简单ARQ(自动请求重发)协议,所以也适合于2线制的半双工的RS485网络中使用。
2.升级准备与注意事项
操作系统作为一个复杂系统,不论在发布之前多么仔细地进行测试,总会有缺陷产生的。出现缺陷后的唯一办法就是尽快给系统打上补丁;如果是网络设备的操作系统,它与其他通用操作系统(Windows和Linux)的区别在于IOS需要将整个系统更换为打过补丁的系统。IOS的恢复也不存在恢复部分文件的情况,因为IOS本身就是一个镜像文件。
(1)获取最新的IOS版本
新版本的IOS可以从供应商、思科网站及一些第三方工具等渠道获得。例如IOSHunter,IOSHunter是一款可以在网上自动查找对于路由器或交换机合适的IOS Image的工具,操作方法非常简单,图6-5为IOSHunter的操作界面。
在选择新的IOS软件时要考虑下面两个因素:
a.降低成本
现有网络设备中的FLASH/DRAM一旦不满足大尺寸IOS的要求,不得不采购新的FLASH/ DRAM,这会带来成本开销和一定的采购周期。
b.运行稳定
新的IOS如果刚刚问世不久,也许会有新的安全漏洞和不稳定因素。对于企业生产网络来说,稳定、连续运行才是我们追求的目标,而不是功能齐全但暂时超出我们所需的软件,更不必说这些太新的软件会带给生产网的潜在风险。所以,最新的软件不一定稳定可靠,我们需要的是被广泛使用了一段时间并且被证明能够稳定运行、消除了大量BUG的软件,而且尽量选择与现有软件主版本号一致的软件。
(2)确认升级范围与顺序
在此步骤中,以Cisco的网络设备为例,主要是要确认有安全漏洞的IOS软件版本和受影响的设备范围。首先从Cisco网站上查出有安全漏洞的IOS软件版本及替代版本。其次,根据IT资产数据库,确定受影响的硬件设备范围。
根据企业网络环境、数据流向及业务特点分析,需要确定升级原则,即首先升级次要节点中的次要设备,再升级主要节点中的次要设备,然后升级次要节点中的主要设备,依此类推。
之所以先升级次要节点的次要设备,是因为无法预测在实际升级后的生产网运行期间还会出现什么未知问题。而首先升级最次要的设备,即使真的出现问题,相对其他主要节点的影响而言,它对用户业务的影响也会小些。换句话说,次要节点可以作为整体升级的“试验田”,一旦出现问题,使我们有机会回退并降低风险和项目压力,后续的升级也可以及时中止。
(3)评估FLASH/DRAM容量
对于新的替代IOS软件,其文件尺寸往往大于旧的软件,此时需要在升级前检查网络设备的Flash/DRAM的有效容量是否满足新IOS软件的运行要求。Flash/DRAM的有效容量有以下两种情况:
a.容量大
当Flash/DRAM的有效容量可同时容纳两个IOS软件时,可以在不删除旧IOS软件的情况下将新IOS软件上传到即将升级设备的Flash卡中,这是最理想的情形。其好处是:当升级失败时,可以立即回退启用原来的IOS软件,降低升级过程中的风险。
b.容量小
有效容量只能容纳一个IOS软件时,上传新的IOS软件前需要删除旧的IOS软件,然后重新启动网络设备,这可能带来一定的风险,一旦重启动失败,需要现场人工干预重新启用旧的IOS软件。
(4)物理准备
在升级操作过程中,切记不可断电,所以需要配置UPS(不间断电源)供电。另外,使用的物理线路也需要提前测试,保证其传输性能稳定。
(5)操作准备
绝大部分的升级工作都需要管理员直接接触到网络设备,准备操作的平台(台式机、笔记本均可),用于对交换机进行配置操作及作为TFTP服务器存储IOS文件,以及连接设备的直通线和Console线。操作系统升级与恢复方案
如果是通过网络升级IOS,运行TFTP Server主机连接交换机的接口没有限制,TFTP Server的地址可以随意定义,但必须与网络设备定义的地址在同一网段上。连接至路由器时,必须使用路由器的第一个以太网口,即Ethernt0(对Cisco 2500系列等)和Ethernet0/0(对Cisco 2600系列等),其他系列略有差别,可根据使用手册进行确定。下面将详细介绍IOS文件修复的步骤。
1.部署TFTP
首先需要安装TFTP Server软件,这里使用Cisco TFTP Server的TFTP服务器软件,可以从Cisco网站上下载。Cisco TFTP Server的配置十分简单,几乎不用更改它的配置,如需要可以更改其根目录,在图6-6中的位置中选择。
将IOS文件放在TFTP Server所在目录的根目录下,如果TFTP Server软件在机器装的是Cisco TFTP Server目录,那么就把新的IOS文件放在Cisco TFTP Server目录下就可以了。也可以自行指定IOS文件的存放位置。
2.升级交换机IOS
首先,用Console连接交换机的Console口与电脑的COM1口(或USB口,依据配置线不同而定,设置方法请查看第5章的相关内容),网线连接交换机Fast Ethernet0/1口与计算机的以太网口,打开TFTP服务器软件,并将其根目录设为IOS文件所在的目录。
为使交换机能与TFTP服务器相互通信,需要为交换机和TFTP服务器设置IP地址。
(1)设置TFTP服务器地址
首先需要将运行TFTP的计算机IP地址设为192.168.0.1。
(2)设置交换机IP地址
使用Windows自带的超级终端软件,将交换机的地址设为与计算机的IP地址相同网段。三层交换机可以针对接口设置IP,而二层交换机需要针对升级用VLAN,设置IP地址。具体步骤如下。
第1步:进入全局配置模式
Switch#configure terminal
第2步:进入管理VLAN接口模式
Switch(config)# interface vlan 99
第3步:配置IP地址
Switch(config-if)# ip address 192.168.0.2 255.255.255.0
第4步:将Fasethernet 0/1划分到VLAN
Switch(config-if)# interface fasethernet 0/1
Switch(config-if)# witch access vlan 99
第5步:退回全局配置模式
Switch#exit
此时,如果能够在超级终端界面上Ping通192.168.0.1,就表明交换机和TFTP服务器(电脑)连接与通信正常了。
(3)备份旧IOS
在特权模式下输入Show Flash命令,查看当前交换机Flash内IOS的文件名:c2950-c3h2s- mz.120-5.3.WC.1.bin 及相关信息。在升级前,需要将这份IOS文件备份出来,以防在升级中出现意外无法恢复到初始状态。
Switch#copy flash tftp
Source filename []?c2950-c3h2s-mz.120-5.3.WC.1.bin //输入IOS文件名
Address or name of remote host []? 192.168.0.1 //输入TFTP地址
Destination filename [c2950-c3h2s-mz.120-5.3.WC.1.bin]? //可以更改名称或使用默认
(4)删除旧IOS
复制的时间和IOS的大小有关,请耐心等待。备份完成后,就要将新的IOS文件复制到flash中。但通过show flash命令发现Flash中的剩余存储空间比要升级的IOS文件要少,为了使新的IOS文件能拷入交换机的Flash中,必须要先删除原IOS文件。
Switch#delete flash: c2950-c3h2s-mz.120-5.3.WC.1.bin //复制文件从Flash到tftp
Delete filename [c2950-c3h2s-mz.120-5.3.WC.1.bin] //确认,回车
Delete flash:c2950-c3h2s-mz.120-5.3.WC.1.bin? [confirm] //确认,回车
(5)升级新IOS
确认Flash中的IOS文件已经删除,在新的IOS文件被复制到交换机之前,一定要确保交换机不会重新启动,否则交换机就无法正常启动了。
Switch#copy tftp flash: //复制文件从tftp到flash
Address or name of remote host []? 192.168.0.1 //输入TFTP地址
Source filename []? c2950-i6k2l2q4-mz.121-22. EA8a.bin //输入升级的新版IOS名称
Destination filename [c2950-i6k2l2q4-mz.121-22.EA8a.bin]? //确认,回车
新的IOS文件成功复制到Flash中之后,输入reload 重启交换机。如果交换机能够正常的重启动,查看Flash中的IOS文件已经变成c2950-i6k2l2q4-mz.121-22.EA8a.bin。至此,IOS的升级工作完成,最后可以删除临时性的VLAN。3.使用TFTP修复路由器的IOS
装有TFTP Server软件的PC,在PC上启动TFTP Server软件,并把用控制线将调试机器与路由器连接起来。用TFTP修复IOS可以分为以下几个步骤。
第1步:设置路由器的IP地址,TFTP软件所在的机器必须在同一网段内。
第2步:设置路由器的子网掩码。
第3步:设置默认网关地址(可忽略,或者指向TFTP Server)。
第4步:设置TFTP 服务器IP地址。
第5步:指定需要恢复的IOS名称。
第6步:确认执行恢复,执行tftpdnld。
ROMMON区分命令的大小写,请注意前面的几条命令必须使用大写,而最后的tftpdnld则要用小写。设置完后要用sync命令保存环境变量到NVRAM。用set命令进行查看设置,具体恢复步骤如下:
rommon 2 IP_ADDRESS=172.16.0.1
rommon 3 IP_SUBNET_MASK=255.255.255.0
rommon 4 DEFAULT_GATEWAY=172.16.0.2
rommon 5 TFTP_SERVER=172.16.0.2
rommon 6 TFTP_FILE=c2600-is-mz.113-2.0.3.Q
rommon 7 tftpdnld
IP_ADDRESS: 172.16.0.1
IP_SUBNET_MASK: 255.255.255.0
DEFAULT_GATEWAY: 172.16.0.2
TFTP_SERVER: 172.16.0.2
TFTP_FILE: c2600-is-mz.113-2.0.3.Q
Invoke this command for disaster recovery only.
WARNING: all existing data in all partitions on flash will be lost!
Do you wish to continue? y/n: [n]: y
Receiving c2600-is-mz.113-2.0.3.Q from 172.16.0.2 !!!!!.!!!!!!!!!!!!!!!!!!!.!!
File reception completed.
Copying file c2600-is-mz.113-2.0.3.Q to flash.
Erasing flash at 0x607c0000
program flash location 0x60440000
rommon 8
4.使用XMODEM修复IOS
IOS升级失败的原因有很多,比如升级过程中网线松动、用来升级的IOS文件和设备不匹配、突然停电等。遇到上述情况,设备将无法正常启动。除TFTP修复IOS之外,下面介绍XMODEM恢复(升级)IOS的方法,只是比起前一种更加复杂,传输速度也比较慢,所以不太常用。
(1)修复交换机
将交换机连接以后,控制台会出现交换机IOS丢失的界面。此时需要重新启动交换机,重新为交换机加电,此时,请按住交换机面板左侧的Mode键,进入MINI模式。
在超级终端输入flash_init 会出现大量提示,继续输入load_helper,输入复制指令copy XMODEM: c2950-i6k2l2q4-mz.121-22.EA8a.bin。出现Begin the XMODEM or XMODEM-1K transfer now...提示,系统提示不断出现C这个字母就可以开始传输IOS文件了。
选择超级终端中【传送】→【发送文件】命令,在协议选项中选择XMODEM或者XMODEM-1K协议,然后选择IOS文件,开始传送。
提示:
因为此前没有改变控制台的传输速率,所以传送得很慢,一个普通的Cisco IOS文件大致需要50分钟左右,请耐心等待。在修复路由器IOS中将介绍改变传输速率的方法。
文件传送结束后,在提示符下输入:boot(启用新的IOS系统)。经过几十秒钟,交换机就进入正常的状态了,这时查看Flash,里面应该有了新的IOS文件,至此IOS恢复工作完成。
(2)修复路由器
IOS丢失以后,所有的设备都会启动最小启动模式。由于Cisco 3640 版本路由器恢复没有提供tftpdnld命令,只提供了XMODEM 命令,使用方法与Cisco 2600系列相同。为了加快修复的速度,需要配置路由器Console口和超级终端软件的传输速率。
rommon 2 confreg
do you wish to change the configuration? y/n [n]: y
enable "diagnostic mode"? y/n [n]: n
enable "use net in IP bcast address"? y/n [n]: n
disable "load rom after netboot fails"? y/n [n]: n
enable "use all zero broadcast"? y/n [n]: n
enable "break/abort has effect"? y/n [n]: n
enable "ignore system config info"? y/n [n]: n
change console baud rate? y/n [n]: y
enter rate: 0 = 9600, 1 = 4800, 2 = 1200, 3 = 2400
4 = 19200, 5 = 38400, 6 = 57600, 7 = 115200 [7]: 7
change the boot characteristics? y/n [n]: y
enter to boot:
0 = ROM Monitor
1 = the boot helper image
2-15 = boot system
[0]: 0
Configuration Summary
enabled are:
load rom after netboot fails
console baud: 115200
boot: the ROM Monitor
do you wish to change the configuration? y/n [n]: n
You must reset or power cycle for new config to take effect
rommom 2 reset
在enter rate:部分,需要选择7,用最大的115200速率的XMODEM传输。在输入reset命令之前,需要重新定义串口传输速度,如图所示,将超级终端里设置速率为115 200,否则会出现乱码。
关闭这个超级终端,重新建立一个超级终端连接(115200速率),系统重新启动后会出现:
rommon 1
rommon 1 XMODEM -r
Do not start the sending program yet...
Invoke this application only for disaster recovery.
Do you wish to continue? y/n [n]: y
Ready to receive file ...
此时,选择超级终端中【传送】→【发送文件】命令,在协议选项中选择XMODEM或者XMODEM-1K协议,选择IOS文件,开始传送。
当传输完毕后,重新启动路由后开始使用被恢复的IOS。此时,需要再次启动路由器,将传输速度恢复到默认状态,即在enter rate: 部分选择0,即9 600的传输速度。