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