對于許多初學者來說,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文件,省略多行。)
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
(下面為正常的啟動過程,故省略)
提示:Cisco ROM Monitor模式下還有其他很多不同功能的命令,我們可以使用它們對路由器進行一系列的測試與排錯,有關該模式的詳細說明請訪問Cisco 站點:www.Cisco.com,進行相關搜索,搜索關鍵字:Using the ROM Monitor。