核心交換機(jī)嵌入式重啟裝置研究與設(shè)計(jì)
交換機(jī)是局域網(wǎng)中用來交換、傳輸數(shù)據(jù)信息的樞紐,其工作狀態(tài)的好壞直接關(guān)聯(lián)著局域網(wǎng)網(wǎng)絡(luò)的數(shù)據(jù)傳輸穩(wěn)定性。特別是作為整個(gè)局域網(wǎng)中心的核心交換機(jī),一旦出現(xiàn)問題,則意味著整個(gè)網(wǎng)絡(luò)癱瘓。因此,保障核心交換機(jī)的穩(wěn)定運(yùn)行是網(wǎng)絡(luò)管理的一項(xiàng)重要工作。
實(shí)踐表明,核心交換機(jī)出現(xiàn)硬件故障的概率極少,但交換機(jī)在長時(shí)間工作過程中,很容易出現(xiàn)一些軟件故障,如死機(jī)、緩存溢出、交換機(jī)端口“假死”等情況,解決這類問題的簡單方法就是重啟機(jī)器。所以重啟交換機(jī)是網(wǎng)絡(luò)管理員經(jīng)常做的工作。而管理員的辦公地點(diǎn)有時(shí)距離交換機(jī)很遠(yuǎn),而且很多核心交換機(jī)沒有開關(guān),只能通過拔插電源的方法進(jìn)行重啟,這種方法對(duì)機(jī)器會(huì)造成不良影響。通過超級(jí)終端與交換機(jī)連接,用命令進(jìn)行重啟,也不太方便。
雖然遠(yuǎn)程監(jiān)控已很普遍,但遠(yuǎn)程監(jiān)控基于網(wǎng)絡(luò)和交換機(jī)端口,一旦網(wǎng)絡(luò)堵塞或交換機(jī)死機(jī)就無法實(shí)現(xiàn)信息的監(jiān)測和控制。而基于SNMP的嵌入式重啟裝置可以解決這一問題,它不需人工干預(yù),便可在特殊情況下自動(dòng)實(shí)現(xiàn)對(duì)交換機(jī)的重啟工作。
1 設(shè)計(jì)思路
所設(shè)計(jì)的嵌入式系統(tǒng)應(yīng)具備:RJ-45口和RS-232接口,RJ-45口與交換機(jī)的一個(gè)Ethernet口相連,通過SNMP協(xié)議獲取交換機(jī)管理對(duì)象庫MIB信息[1],檢測交換機(jī)是否正常;RS-232接口與交換機(jī)的Console口相連,通過帶外管理方式實(shí)現(xiàn)異常情況下對(duì)交換機(jī)重啟功能。
2 硬件實(shí)現(xiàn)
嵌入式裝置的硬件結(jié)構(gòu)框圖如圖1所示。
2.1微處理器選擇
傳統(tǒng)的8位/16位微控制器由于速度慢、功耗大,并且實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議困難,已越來越不能滿足高速發(fā)展的網(wǎng)絡(luò)管理需要,隨著ARM(Advanced RISC Machine)RISC處理器的不斷成熟和嵌入式Linux的不斷完善,ARM+Linux嵌入式解決方案日益流行,因此,本系統(tǒng)微處理器選用ARM920T。ARM920T具有5級(jí)指令流水線,采用哈佛結(jié)構(gòu),具有16/32位RISC體系結(jié)構(gòu)和ARM指令集,處理速度為1.1 MIPS/MHz,內(nèi)置MMU、獨(dú)立的16 KB數(shù)據(jù)Cache、16 KB指令Cache和高速AMBA(Advanced Microcon-troller Bus Architecture)總線接口等功能[2]。
2.2 網(wǎng)卡接口設(shè)計(jì)
該系統(tǒng)需要連接交換機(jī)以太網(wǎng)端口,通過SNMP協(xié)議獲取交換機(jī)管理對(duì)象庫MIB信息。系統(tǒng)采用DAVICOM公司的DM9000AEP作為以太網(wǎng)MAC控制器與處理接口。該器件具有10 Mb/s和100 Mb/s的自適應(yīng)物理層收發(fā)器,支持802.3x全雙工控制流標(biāo)準(zhǔn),具有4 KB的雙字SRAM,可以減輕CPU的負(fù)擔(dān),因此使系統(tǒng)更穩(wěn)定,處理和傳輸數(shù)據(jù)速度更快。RJ-45插座采用HanRun公司的內(nèi)置網(wǎng)絡(luò)變壓器、狀態(tài)顯示燈和電阻網(wǎng)絡(luò)的HR911105A,具有信號(hào)耦合、電氣隔離、阻抗匹配、抑制干擾等優(yōu)點(diǎn)。
ARM920T網(wǎng)絡(luò)接口設(shè)計(jì)電路如圖2所示。DM9000AEP芯片的SD0~SD15為16根數(shù)據(jù)線,與ARM920T數(shù)據(jù)線相連;命令選擇引腳CMD為高電平,訪問數(shù)據(jù)端口,CMD為低電平,訪問地址端口;IOR#為讀信號(hào)引腳,與ARM920T的讀信號(hào)LnOE引腳相連;IOW#為寫信號(hào)引腳,與ARM920T的寫信號(hào)LnWE引腳相連;CS#為片選信號(hào),與ARM920T的片選信號(hào)nGCS3引腳相連;INT為中斷請(qǐng)求信號(hào),高電平有效,與ARM920T的IRQ-LAN相連;發(fā)送端TX+、TX-和接收端RX+、RX-分別連接到HR911105A的發(fā)送端和接收端。
2.3 串口接口設(shè)計(jì)
該系統(tǒng)用帶外管理方式對(duì)交換機(jī)實(shí)現(xiàn)重啟操作,需要RS-232接口與交換機(jī)Console口相連。ARM920T本身就具有串行通信接口,只需將TTL電平轉(zhuǎn)化為RS-232電平即可。Sipex公司的SP3232芯片可以實(shí)現(xiàn)這一功能,而且SP3232芯片所需的供電電壓低,適合嵌入式系統(tǒng)應(yīng)用,其外圍電路連接簡單,僅需幾個(gè)0.1 μF的電容即可。串口接口設(shè)計(jì)如圖3所示。圖3中TXD表示接收數(shù)據(jù),RXD表示發(fā)送數(shù)據(jù),RTS表示請(qǐng)求發(fā)送,CTS表示清除發(fā)送。當(dāng)RTS請(qǐng)求發(fā)送數(shù)據(jù)時(shí),需經(jīng)CTS信號(hào)檢測,只有CTS信號(hào)允許才能發(fā)送數(shù)據(jù)。
2.4 存儲(chǔ)器設(shè)計(jì)
存儲(chǔ)器由SDRAM和Flash構(gòu)成。SDRAM存儲(chǔ)器用來存放操作系統(tǒng)(從Flash解壓縮拷入)以及存放各類動(dòng)態(tài)數(shù)據(jù)。設(shè)計(jì)中系統(tǒng)采用SAMSUNG公司的K4S561632,容量為32 MB。用2片K4S561632實(shí)現(xiàn)位擴(kuò)展,使數(shù)據(jù)總線寬度達(dá)到32 bit,總?cè)萘窟_(dá)到64 MB,將其地址空間映射在ARM920T的bank6;Flash存儲(chǔ)器有NOR和NAND兩種,用來存放Linux引導(dǎo)加載程序(BootLoader)。NOR Flash的特點(diǎn)是芯片內(nèi)執(zhí)行(Execute In Place),即程序可直接在Flash閃存內(nèi)運(yùn)行,不必把代碼讀到系統(tǒng)RAM中。NOR Flash的傳輸效率很高,在1~4 MB的小容量時(shí)具有很高的成本效益,但是很低的寫入和擦除速度大大影響了它的性能。NAND Flash結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫入和擦除的速度也很快,應(yīng)用NAND Flash的困難在于Flash的管理和需要特殊的系統(tǒng)接口。本系統(tǒng)采用Intel公司的NOR Flash 28F640芯片,其容量為8 MB,將其地址空間映射在ARM920T的bank0。
3 軟件實(shí)現(xiàn)
3.1操作系統(tǒng)
ARM芯片獲得了許多實(shí)時(shí)操作系統(tǒng)供應(yīng)商的支持,有:Windows CE、Linux、Palm OS、VxWorks、pSOS、 Nucleus等。因Linux源代碼的公開特性,Linux系統(tǒng)的應(yīng)用越來越廣泛。將Linux應(yīng)用于ARM芯片,可以采用一些現(xiàn)成的針對(duì)ARM芯片的嵌入式Linux系統(tǒng),也可根據(jù)需要自行對(duì)Linux內(nèi)核進(jìn)行裁剪。本系統(tǒng)采用自行裁剪的方法,使用make menuconfig命令對(duì)Linux內(nèi)核進(jìn)行配置,整個(gè)配置以維持系統(tǒng)運(yùn)行的最小化為原則。需要注意的是內(nèi)核應(yīng)支持proc、ext2文件系統(tǒng)、UNIX domain sockets、TCP/IP networking、UART等選項(xiàng),以保證系統(tǒng)能實(shí)現(xiàn)RJ-45口和RS-232接口對(duì)外通信。實(shí)現(xiàn)這些功能的內(nèi)核靜態(tài)壓縮映像大約為500 KB[3]。為了實(shí)現(xiàn)系統(tǒng)功能,還需編寫相應(yīng)的網(wǎng)絡(luò)接口和串口驅(qū)動(dòng)程序,建立根文件系統(tǒng)。
3.2 引導(dǎo)加載程序
操作系統(tǒng)的啟動(dòng)離不開引導(dǎo)程序,Linux引導(dǎo)加載程序(BootLoader)由NOR Flash的地址0x0處開始執(zhí)行,完成存儲(chǔ)設(shè)備初始化、堆棧初始化、用戶環(huán)境初始化等,最終BootLoader把操作系統(tǒng)內(nèi)核映像加載到RAM中。本系統(tǒng)引導(dǎo)加載程序采用ARM-BOOT修改而成。
3.3主程序
主程序每次在設(shè)備開機(jī)后自動(dòng)運(yùn)行,在交換機(jī)上先配置一個(gè)VLAN接口用于與嵌入式設(shè)備通信。嵌入式設(shè)備的網(wǎng)絡(luò)接口IP地址應(yīng)與交換機(jī)的這個(gè)VLAN接口IP處于同一網(wǎng)段。為避免與常用私網(wǎng)地址沖突,可以將VLAN接口IP設(shè)為192.168.255.1,將嵌入式設(shè)備的網(wǎng)絡(luò)接口IP地址設(shè)為192.168.255.2。定時(shí)器時(shí)間設(shè)為1 min,每隔1 min對(duì)交換機(jī)發(fā)送1次SNMP報(bào)文,獲取交換機(jī)狀態(tài)進(jìn)行分析,如連續(xù)3次(3 min)發(fā)現(xiàn)通信失敗或判定交換機(jī)狀態(tài)異常,則對(duì)交換機(jī)進(jìn)行重啟。主程序流程圖如圖4所示。
3.4 交換機(jī)狀態(tài)監(jiān)測程序
簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)是Internet組織用來管理Internet的網(wǎng)絡(luò)協(xié)議,其定義了傳送管理信息的協(xié)議消息格式及管理者和設(shè)備代理相互之間進(jìn)行消息傳送的規(guī)程。在SNMP管理模型中有三個(gè)基本組成部分:管理者(Manager),被管代理(Agent)和管理信息庫(MIB)。管理者的管理工作是通過輪詢代理來完成的,管理者可以通過SNMP 操作直接與被管代理通信,獲得即時(shí)的設(shè)備信息,對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行遠(yuǎn)程配置管理或者操作,也可以通過對(duì)數(shù)據(jù)庫的訪問獲得網(wǎng)絡(luò)設(shè)備的歷史信息,以決定網(wǎng)絡(luò)配置變化等操作。SNMP被管代理是指用于跟蹤監(jiān)測被管理設(shè)備狀態(tài)的特殊軟件或硬件,每個(gè)代理都擁有自己本地的MIB。MIB信息即被管資源,而網(wǎng)絡(luò)管理中的資源是以對(duì)象表示的,每個(gè)對(duì)象表示被管資源的某方面屬性,這些對(duì)象形成了MIB庫。MIB是一個(gè)樹形結(jié)構(gòu),SNMP協(xié)議消息通過遍歷MIB樹形目錄中的節(jié)點(diǎn)來訪問網(wǎng)絡(luò)中的設(shè)備。網(wǎng)絡(luò)管理者通過對(duì)MIB庫的存取訪問實(shí)現(xiàn)配置管理、性能管理、故障管理、安全管理、計(jì)費(fèi)管理等五大管理功能。SNMP提供有三類操作:Get、Set和Trap。Get操作實(shí)現(xiàn)對(duì)被管理對(duì)象所表示的管理信息的讀操作,Set操作實(shí)現(xiàn)對(duì)被管理對(duì)象的管理信息進(jìn)行寫操作,Trap 操作實(shí)現(xiàn)被管理設(shè)備向管理工作站報(bào)告設(shè)備出現(xiàn)的異常事件。
交換機(jī)狀態(tài)異?;蛩罊C(jī)的原因主要有:散熱不好致溫度過高;病毒攻擊;交換機(jī)背板帶寬過低;負(fù)荷過大等。交換機(jī)狀態(tài)異常或死機(jī)最終表現(xiàn)為:CPU利用率和內(nèi)存利用率過高、端口丟包率過大、與交換機(jī)端口連接不通等。因此,需要對(duì)交換機(jī)的CPU利用率、內(nèi)存利用率、端口丟包率等進(jìn)行監(jiān)測,同時(shí)依據(jù)與交換機(jī)的SNMP通信是否正常來判斷交換機(jī)是否出現(xiàn)異?;蛩罊C(jī)。本系統(tǒng)通過SNMP協(xié)議與交換機(jī)的SNMP被管代理通信,讀取(Get)相應(yīng)MIB節(jié)點(diǎn)數(shù)據(jù),獲知CPU利用率、內(nèi)存利用率、端口丟包率等信息。
下面以華為3com公司的S7500系列交換機(jī)為例,說明本系統(tǒng)需要使用的MIB節(jié)點(diǎn),如表1所示。
狀態(tài)監(jiān)測程序的流程圖如圖5所示。
3.5 交換機(jī)重啟程序
遠(yuǎn)程監(jiān)控一般是通過網(wǎng)絡(luò)經(jīng)交換機(jī)以太網(wǎng)口對(duì)交換機(jī)實(shí)行控制,大多數(shù)情況下是可行的,但在交換機(jī)死機(jī)時(shí),所有端口都不通,無法通過以太網(wǎng)口對(duì)交換機(jī)發(fā)送命令,對(duì)交換機(jī)實(shí)行帶內(nèi)管理。對(duì)這種特殊情況,帶外管理是唯一可行的方法。
帶外管理是通過RS232總線與交換機(jī)的Console口進(jìn)行串行通信,給交換機(jī)下達(dá)命令。一般波特率為9 600 b/s,無流控,每幀包括8位數(shù)據(jù)、1位起始位、1位停止位共計(jì)10 bit,無奇偶校驗(yàn)位。
需要注意的是,不同交換機(jī)要實(shí)現(xiàn)重啟,發(fā)送的指令字符可能不一樣,要根據(jù)具體交換機(jī)型號(hào)而定。以華為3com公司的S7500系列交換機(jī)為例,重啟程序的流程圖如圖6所示。
本嵌入式系統(tǒng)實(shí)現(xiàn)了在核心交換機(jī)死機(jī)等特殊情況下自動(dòng)對(duì)其進(jìn)行重啟的功能,大大減輕了網(wǎng)絡(luò)管理員的負(fù)擔(dān)。將本系統(tǒng)進(jìn)行擴(kuò)展,可以根據(jù)需要實(shí)現(xiàn)對(duì)交換機(jī)特定方面的本地監(jiān)測和控制功能。特別是該系統(tǒng)將來可以與核心交換機(jī)融為一體,有效增強(qiáng)核心交換設(shè)備的智能化和自我修復(fù)能力。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)交換機(jī)相關(guān)文章:交換機(jī)工作原理
評(píng)論