对于许多初学者来说,Cisco路由器的ROM Monitor常常令人感到陌生甚至望而生畏,原因很简单,一是我们并不经常用到该模式,对其相关操作不熟悉;二是在ROM Monitor模式下的操作失误,往往会对路由器造成致命的伤害(比如破坏flash中的IOS文件,导致系统崩溃),以至于很多人对它束手束脚,望而却步。
其实,ROM Monitor并不复杂,它只是Cisco路由器的一个低级操作系统,通常用于测试和排错,我们只需花费很少的时间,就可以轻松搞定。下面笔者就以网管员在实际工作中最常遇到的两种需要使用ROM Monitor的情况为例,做一个说明。
情景一:路由器的口令恢复
为了防止别人知道路由器的口令(特别是特权口令),威胁本地网络安全,许多管理员将口令设得特别复杂。但由于路由器的配置完成后,我们就很少再去操作路由器,这样过了一段时间后,我们因为某种需要需对路由器进行配置时,就可能因忘记口令而无法进行。
这时候,我们只需要一台PC机(操作系统为Windows系列),一条Console电缆及相应的接口转换器,然后按照下面的操作,就可以轻松搞定。
1. 设置PC机的超级终端,使我们能够使用路由器的Console口直接对路由器进行操作(因其过程非常简单,笔者为节省篇幅,将其省略)。
2.启动路由器,并在前60秒内按下Break或Ctrl+Break键,进入路由器的ROM Monitor模式。
3.下面以初学者最常接触到的Cisco 2600系列路由器为例,做一些简要描述。
(按下Ctrl+Break键,进入ROM Monitor模式)
rommon 2 > confreg 0x2142
使用该命令修改路由器的配置寄存器的值,使路由器在下次重启时不要加载启动配置,从而跳过用户口令及特权口令的验证,进入特权模式。
You must reset or power cycle for new config to take effect
rommon 3 > reset
使用该命令重新启动路由器,重启后,系统提示:
Would you like to enter the initial configuration dialog? [yes/no]: n
选择no直接进入CLI模式
Press RETURN to get started!
按回车键继续下一步。
Router>en
Router#show version
此时使用show version命令查看配置寄存器的值为0x2142。
Router#copy star run
使用该命令加载启动配置,然后设置新口令。若没有该步操作,会导致在下次重启后,新口令设置失败。
Router#conf t
Router(config)#config-register 0x2102
路由器下次重启后将加载启动配置,需使用新口令进行验证。
Router(config)#end
Router#copy run star
保存运行配置到启动配置
Destination filename [startup-config]?
Building configuration...
[OK]
提示:Cisco 2500、2000、3000、4000和7000系列路由器的口令恢复与上述操作基本相同,其主要差别为修改配置寄存器的命令为“o/r 0x2142”,以及重启命令为“i”,其他系列的路由器与2600系列基本一致。
情景二:路由器flash中IOS文件的升级或损坏后的恢复
相比较而言,第二种情况更为少见,但也更为严重,它常常发生在对路由器IOS版本升级操作失误或其他软硬件故障原因导致路由器系统崩溃无法进行工作,致使整个网络的瘫痪。
此时,我们常常需要在路由器的ROM Monitor模式下将其修复。
下面就以笔者的一个学生遇到的问题为例,做一下探讨。该学生在对一台Cisco 2600路由器的IOS进行升级时,出现如下故障:
System Bootstrap, Version 11.3(2)XA4, RELEASE SOFTWARE (fc1)
Copyright (c) 1999 by Cisco Systems, Inc.
TAC:Home:SW:IOS:Specials for info
C2600 platform with 32768 Kbytes of main memory
loadprog: bad file magic number: 0x0
boot: cannot load "flash:"
然后,路由器引导程序在重复上述过程,失败后,进入ROM Monitor模式。
rommon 1 >boot
使用该命令,使路由器重新加载flash中的IOS文件,失败。
boot: cannot determine first file name on device "flash:"
在确定故障是由路由器不能确定flash中的IOS文件后,我们需要将IOS文件从TFTP Server中恢复到路由器的flash中。此时我们可以通过两种方法完成此任务:其一,使用安装了Cisco TFTP Server的PC机通过以太网对路由器IOS进行恢复,其二,在ROM Monitor模式下使用xmodem(一种能使用Console电缆传输文件的传输协议)命令对路由器IOS进行恢复。
在这里,我们优先使用第一种方法,其步骤为:
1.将安装了Cisco TFTP Server的PC机通过以太网与路由器的以太网接口相连,运行Cisco TFTP Server 程序。
2.使用超级终端登录路由器Console口控制台(路由器已启动,查询故障时已登录),终端屏幕显示如下:
rommon 2 > set
该命令显示路由器相关默认设置
PS1=rommon ! >
IP_ADDRESS=192.168.1.1
IP_SUBNET_MASK=255.255.255.0
DEFAULT_GATEWAY=192.168.1.2
TFTP_SERVER=192.168.1.2
TFTP_TIMEOUT=20000
TFTP_RETRY_COUNT=10
TFTP_FILE=/c2600-ik8o3s-mz.122-11.T/
?=1
3.检查路由器的默认设置,将PC机的IP地址改为192.168.1.2(我们同样可以使用命令TFTP_SERVER=192.168.1.x修改该设置,但要保证路由器的IP、默认网关与PC机的IP在同一网段),这样更简单。
4.指定要恢复的IOS文件名,并保证该文件在Cisco TFTP Server根目录下。
Rommon 3 > TFTP_FILE=/c2600-i-mz.121-3.T.bin
不要忘记加上扩展文件名.bin
5.开始恢复IOS文件:
rommon 4 > tftpdnld
执行该命令从TFTF Server下载IOS文件到flash,该命令仅适用于Cisco 2600系列路由器。
IP_ADDRESS: 192.168.1.1
IP_SUBNET_MASK: 255.255.255.0
DEFAULT_GATEWAY: 192.168.1.2
TFTP_SERVER: 192.168.1.2
TFTP_FILE: /c2600-i-mz.121-3.T.bin
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-i-mz.121-3.T.bin from 192.168.1.2
(确认后,路由器开始下载IOS文件,省略多行。)
(确认后,路由器开始下载IOS文件,省略多行。)
File reception completed.
Copying file /c2600-i-mz.121-3.T.bin to flash.
Erasing flash at 0x60fc0000
program flash location 0x60160000
6.重新启动路由器,运行新的IOS
rommon 5 > reset
(下面为正常的启动过程,故省略)