CISCO交换机IOS升级排障实例


各公司的网络治理员在选购网络设备的时候都是精挑细选 , 在同等级别的不同厂商之间反复研究 , 多次比较后选出最佳性价比的产品来 。不过有一点可能很多网络治理员都忽略了 , 那就是网络产品的未来 , 一个产品不可能一直使用肯定会有出问题的时候 , 出问题后厂家的服务就显得尤为重要了 。同样网络技术是在不断发展前进的 , 网络产品也要有一定的可升级可扩展性 。最近笔者就碰到升级核心设备的问题 , 现记录如下:
>
一 , 升级环境:
事情的原因是这样的 , 公司下属部门申请到一定的经费用于网络升级 , 因此该部门前几天新买了一台思科的Catalyst6509交换机 , 并且配备了WS- X6548-GE-TX这个思科在去年四月才新推出的10M、100M、1000M自适应的48口RJ-45交换模块 。6509一共有9个插槽 , 所以可以插上9个模块 , 为核心设备升级添加模块是习以为常的事情了 。不过由于思科的软件推出总是滞后于硬件 , 所以拿到手的Catalyst6509交换机标准配置的12.2(14)SX1版本的IOS并不能支持该模块 。这就涉及到了升级问题 , 需要升级6509交换机的IOS 。于是我和子部门网络治理员从CISCO 官方网站找来支持WS-X6548-GE-TX模块的新版本的IOS预备升级 。没有想到 , 这次简单的升级工作缺弄得我们两个“准高手”麻烦连连 , 问题接二连三地出现 。
二 , 没有RJ-45接口
对于本次采用的这个WS-X6548-GE-TX模块一共有48个 RJ-45端口 , 然而6509交换机又没有配其他的带RJ-45接口的模块 。这可怎么办呢?究竟用思科的TFTP Server升级IOS就必须得将交换机和网络上的一台装有TFTP Server的PC相连 。经过一番寻找 , 终于发现超级引擎720上面有一个RJ-45模样的接口 , 旁边写着Link的字样 , 结果拿来网线插上一试 , 发现指示灯都不亮 。本来我们两个以为有了希望 , 然而指示灯不亮就说明该接口无法使用 , 不过因为这个接口是惟一的希望 , 否则只能用xmodem方式传输41MB的 IOS , 传输时间恐怕让我望而却步 。
小提示:
使用XMODEM传输IOS速度上是非常让人头疼的 , 笔者曾经用XMODEM方式传过一个2950交换机的IOS , 总容量也就2MB左右 , 足足用了两个钟头 。按照这个速度来说41MB最快也得30几个小时 。
既然使用XMODEM方式传输IOS不太现实 , 那么还要从超级引擎720上面那个RJ-45模样的接口入手 。从网上搜索到相关资料 , 原来超级引擎720 上的port2 有两种模式:一种是RJ-45接口 , 还有一种是SFP(a small form-factor pluggable)接口 。而默认的设置是SFP , 要使用RJ-45接口就必须更改设置 。输入以下命令进行修改――
Router(config)#interface gigabitethemet 5/2
//进入该接口进行设置
Router(config-if)#media-type rj45
//修改模式为RJ45 , 默认是SFP
Router(config-if)#no shutdown
//启用该接口
执行命令后发现橘红色的指示灯终于变成了绿色 , 接下来就可以使用传统的TFTP方法将升级所需的IOS文件传到到交换机中 。本来以为接下来的事情就应该很轻松 , 谁知道拦路虎并没有就此罢休 。
三 , TFTP传输协议不支持32兆
接下来给接口配上治理地址 , 再把原来的IOS备份出来 。在超级终端全局模式下输入命令:
Router#copy sup-rootflash: s72033-pk9sv-mz.122-14.SX1.bin tftp://192.168.1.1
TFTP Server 出现一连串#字号 , 开始传输数据 , 本来以为一切OK 。谁知道眼看着就要传完的时候 , 系统提示:“timeout! Write error!” 。
根据系统提示的信息我查询了网线是否断了 , 磁盘空间是否不足 , 答案都是否定的 。再次执行传输命令故障依旧 。到6509上查看传输完毕的IOS大小为32MB , 比完整的IOS32.1MB稍微小一点 。为什么多出的0.1MB就无法传送呢?
开始以为是TFTP的软件有问题 , 版本过低造成的 。从网上下载了一个第三方的TFTP server一试 , 结果还是这样 。又找来3Com的TFTP Server , 这次效果更差 , 传到16MB的时候就断开了 , 系统提示还是超时和写入错误 。仔细分析 , 终于发现了问题要害所在 。两次传输 , 一次正好 32MB , 一次正好16MB , 连字节数都不差 , 肯定不是传输线路问题 。找来资料一查 , 原来TFTP(Trivial File Transfer Protocol)普通文件传输协议最大就支持传输32MB的文件 。于是又找来思科文档 , 一番查询 , 找出了第2种解决方法 , 用FTP就行了 。于是在PC上建好FTP服务 , 键入如下命令:
Router# configure terminal
//进入交换机配置模式
Router(config)# ip ftp username username
//设置FTP的访问用户名
Router(config)# ip ftp passWord password
//设置登录FTP的密码
Touter(config)# end
//结束 , 退出
Router#copy sup-bootflash:s72033-pk9sv-mz.122-14.SX1.bin ftp:[//[username[:password]@]192.168.1.1]
//执行FTP传输命令 , 传输文件为s72033-pk9sv-mz.122-14.SX1.bin , 已经建立好的FTP服务器地址为192.168.1.1 。
使用FTP传输更新IOS后文件复制非常正常 , 等待了几分钟 , 系统提示“sUCcessful!” 。看来FTP比TFTP就是强大灵活 , 限制也少很多 。
四 , 协议错误
将IOS成功备份到FTP上后就轮到将新的用于升级的IOS进行上传了 。进入6509配置模式使用如下命令进行操作:
Router# configure terminal
//进入配置模式
Router(config)#ip ftp username username
//设置登录FTP的用户名
Router(config)#ip ftp password password
//设置登录FTP的密码
Router(config)#end
//退出设置
Router# copy ftp:[[//[username[:password]@192.168.1.1] / s72033-jk9o3sv-mz.122-17a.SX.bin] sup-bootflash:
//复制s72033-jk9o3sv-mz.122-17a.SX.bin新版IOS到本交换机 。
本来以为轻轻松松完成的 , 结果系统这次提示“Protocol error!” 。协议错误?重试一次 , 下载没有问题的 , 上传还是提示协议错误 。经过笔者分析怀疑问题可能出在FTP Server上 , 我的FTP Server是用Server-U这个第三方软件做的 , 会不会是兼容性问题造成的呢?于是换成微软Windows2000自带IIS中的FTP组件建立 FTP服务器 。再次尝试下载与上传都没有任何问题了 , 不再提示协议错误 。屏幕显示Loading… 。几秒钟后又出现提示信息:“Flash空间不足” 。
五 , Flash空间不足
出现FLASH空间不足信息后我非凡查询了6509核心设备的硬件配置 , 默认6509标准配置的Flash为64MB , 标配IOS大小为32.1MB , 要升级的12.2(17a)SX 版本IOS大小为40.6MB , 这样看来空间不足再所难免 。但是这个问题还是相对好解决的 , 将Flash里原来的IOS删除了然后再上传 。于是输入命令:
Router#delete sup-bootflash:s72033-pk9sv-mz.122-14.SX1.bin
然后再传 。提示信息还是空间不足!这个时候交换机的IOS已经被我删除了 , 要是不小心掉电或者重起的话 , 交换机就起不来了 。在治理界面中用show命令看 , IOS文件已经没有了 , 但是空间还是剩余30多兆 , 就是说flash没有被清空 。这时候想起以前删除vlan.dat文件后要重启交换机才能生效 , 可是现在重启是万万不行的 。怎么办?上思科网站查找有利用价值的信息 , 终于找到一条命令squeeze , 该命令是将已经删除的文件彻底清空 , 就好比清空回收站一样 。运行:
Router#squeeze sup-bootflash:后再用SHOW命令查看 , 发现Flash已经被彻底清空 , 可用空间为64MB 。这时候再用FTP上传 , 几分钟以后就会看见屏幕上提示的成功信息 。Reload一下 , 用show flash命令看IOS版本已经变成了12 .2(17a)SX 。插上新模块WS-X6548-GE-TX一试 , 一切OK , 新模块可以正常运行了 。
经验总结:
本来以为轻松完成的工作却是一波三折 , 看来高端产品升级也是非常复杂的 , 很多原来没有重视的环节都会出现这样或那样的问题 。本次故障排除使我也明白了一个道理 , 技术没有尽头 , 碰到问题到官方网站查询是最好的办法 。还有就是做事情之前一定要三思 , 假如删除FLASH后想当然的执行了RELOAD的话 , 交换机就无法启动了 , 那样的后果将会非常严重 。操作前请停手思考30秒往往可以减少很多不必要的损失 。