路由器保存配置或者輸入特殊命令時(shí),設(shè)備提示startup-config open failed (device or resource busy)。
路由器在執(zhí)行write、show startup-config和copy running-config startup-config命 令 時(shí),設(shè)備提示startup-config open failed (device or resource busy)告警信息,主要原因可以分為兩個(gè)方面:一是路由器NVRAM資源空間不足;二是路由器被其他用戶登錄使用,連接資源被占用。
首先使用“dir nvram:”命令查看路由器NVRAM資源使用情況。若被大量占用,刪除不必要的文件,釋放資源空間即可。如果故障依舊,使用“show user”命令查看路由器登錄的用戶情況。因?yàn)檫^(guò)多用戶連接會(huì)占用大量NVRAM資源并使得NVRAM資源被鎖定,導(dǎo)致device or resource busy,可 以 執(zhí) 行“clear line”命令清除路由器上連接的登錄用戶,這樣可釋放NVRAM資源,確保路由器正常存儲(chǔ)、使用配置。
路由器的內(nèi)存不足、CPU過(guò)載,或路由器受病毒攻擊,都會(huì)導(dǎo)致路由器處理能力下降,造成大量報(bào)文丟失。
首先使用“Show memory”命令檢查路由器的內(nèi)存利用率,包括已用內(nèi)存、剩余內(nèi)存,以及內(nèi)存碎片大小等信息。如執(zhí)行這條命令后,會(huì)顯示當(dāng)前可用內(nèi)存(Free)與最大可用塊(Largest)的數(shù)值。網(wǎng)絡(luò)管理員把這兩個(gè)值進(jìn)行比較,就可以判斷碎片對(duì)路由器性能的影響。這主要是把路由器的可用內(nèi)存與最大可用塊的大小進(jìn)行比較。如果路由器的可用內(nèi)存與最大的可用塊大小比較接近時(shí),表示雖然路由器存在碎片但是影響不大。但是若最大可用的塊很小,如只有最大可以用內(nèi)存的幾十分之一,那么就說(shuō)明路由器內(nèi)存碎片問(wèn)題比較嚴(yán)重了。
通過(guò)檢查發(fā)現(xiàn)該路由器可用內(nèi)存為8.48兆字節(jié),但是其中最大的內(nèi)存碎片僅為0.58兆字節(jié),表明連續(xù)內(nèi)存中沒(méi)有足夠大的可用塊,導(dǎo)致嚴(yán)重的內(nèi)存分配問(wèn)題。因?yàn)檫^(guò)多的內(nèi)存碎片將會(huì)造成內(nèi)存利用率降低,影響路由器性能,表現(xiàn)為一個(gè)或多個(gè)接口間歇性的丟失報(bào)文。
通??捎脡K的大小不應(yīng)小于可用內(nèi)存的一半。這種情況下,一般采用重啟路由器來(lái)解決此問(wèn)題,重啟過(guò)程中系統(tǒng)將重新分配內(nèi)存和緩存空間。當(dāng)然到目前為止,還沒(méi)有哪一種內(nèi)存管理技術(shù)說(shuō)可以完全避免產(chǎn)生內(nèi)存碎片,只是這個(gè)碎片要保證一個(gè)合理的值,具體這個(gè)值是多少,也沒(méi)有人可以給出一個(gè)具體的標(biāo)準(zhǔn)。根據(jù)筆者的經(jīng)驗(yàn),最好能夠保證可用塊的大小在可用內(nèi)存的二分之一到三分之一之間。當(dāng)然可用塊大小跟可用內(nèi)存越接近越好。
再 使 用“Show process cpu”命令檢查CPU利用率,判斷路由器CPU是否過(guò)載,同時(shí)了解路由器中不同進(jìn)程的CPU占用情況。通常情況,5分鐘以內(nèi)路由器的CPU平均利用率應(yīng)小于60%。若CPU利用率超過(guò)80%則表示過(guò)載,需要鎖定并關(guān)閉無(wú)用或非法的進(jìn)程,釋放被占用的CPU資源。還可以通過(guò)“show process memory”命令查詢路由器的內(nèi)存分配信息。通過(guò)執(zhí)行這個(gè)命令,系統(tǒng)會(huì)反饋當(dāng)前路由器內(nèi)存的可用量、已使用量等信息,還會(huì)反映每個(gè)進(jìn)程所占用的內(nèi)存空間。如果某個(gè)進(jìn)程所占用的內(nèi)存與上面顯示的所占用的CPU都很大的話,則說(shuō)明這個(gè)進(jìn)程很有問(wèn)題。網(wǎng)絡(luò)管理員要逐一排查這些可以的進(jìn)程,因?yàn)槁酚善鰿PU過(guò)載往往是由這些進(jìn)程所造成的。
接下來(lái)使用“show ip cache flow | include 端口號(hào)”命令,查看流經(jīng)路由器的數(shù)據(jù)包。端口號(hào)為0087表示沖擊波病毒,01BD表示震蕩波病毒,059A表示蠕蟲(chóng)王病毒,0080表示沖擊波殺手病毒,0050表示紅色代碼病毒。當(dāng)發(fā)現(xiàn)有這些代碼的數(shù)據(jù)流時(shí),記錄被感染的主機(jī)地址,通告其接入節(jié)點(diǎn)斷網(wǎng)查殺病毒。同時(shí)升級(jí)路由器IOS軟件版本,封堵設(shè)備漏洞。
路由器無(wú)法正常加載配置文件,可能是NVRAM故障,或配置文件損壞。
先使用“show startupconfig”命令,如果系統(tǒng)提示“%error opening nvram:/startup-config (invalid checksum)”,或 輸 入 test memory命令后,系統(tǒng)提示failed,說(shuō)明NVRAM故障,嘗試執(zhí)行“write erase”命令重新加載路由器,若故障依舊,則需要更換NVRAM硬件。
若非NVRAM故障,使用命令“copy tftp runningconfig”,將 TFTP服務(wù)器上備份的配置文件復(fù)制到路由器,重新存儲(chǔ)配置,重啟路由器即可。
在日常的維護(hù)管理中,大部分情況下都可以通過(guò)重新啟動(dòng)路由器解決不少的問(wèn)題。因此筆者建議各位網(wǎng)絡(luò)管理員,應(yīng)該花時(shí)間與精力了解路由器的啟動(dòng)過(guò)程,畢竟路由器是靠操作系統(tǒng)來(lái)運(yùn)作的。了解路由器的啟動(dòng)過(guò)程,特別是了解啟動(dòng)的每個(gè)階段路由器都會(huì)做些什么,調(diào)用了哪些系統(tǒng)文件,了解了這些內(nèi)容之后,網(wǎng)絡(luò)管理員就可以在路由器啟動(dòng)的過(guò)程中,對(duì)其進(jìn)行干預(yù),如更換操作系統(tǒng)的文件路徑等等,來(lái)修復(fù)一些常見(jiàn)的路由器故障。