李 想
(中國(guó)電子科技集團(tuán)公司第五十四研究所,河北石家莊050081)
隨著衛(wèi)星通信的迅猛發(fā)展,衛(wèi)星通信網(wǎng)絡(luò)逐漸呈現(xiàn)規(guī)模大、結(jié)構(gòu)復(fù)雜的趨勢(shì),網(wǎng)管對(duì)衛(wèi)星網(wǎng)絡(luò)規(guī)劃和資源分配的重要意義日益顯現(xiàn)。網(wǎng)管代理是實(shí)現(xiàn)網(wǎng)管對(duì)所需信息進(jìn)行收集和下發(fā)的基礎(chǔ),避免了所有站點(diǎn)網(wǎng)管信息的采集全部依賴于中心的管理站,降低了網(wǎng)絡(luò)流量,避免了網(wǎng)絡(luò)阻塞;同時(shí)利于多站點(diǎn)的統(tǒng)一管理、合理分配信道資源,在衛(wèi)星通信中具有重要意義。在Red Hat Linux 2.6.4環(huán)境下,使用agent++、snmp++開(kāi)發(fā)包實(shí)現(xiàn)基于SNMP協(xié)議嵌入式網(wǎng)管代理軟件(Agent),很好地實(shí)現(xiàn)了信息管理。
衛(wèi)星通信網(wǎng)管代理主要作用是搭建中心站與小站之間聯(lián)系的橋梁?,F(xiàn)階段衛(wèi)通站中被管理設(shè)備多采用適合自己的串口通信協(xié)議,而網(wǎng)管中心也只提供唯一的對(duì)外接口,協(xié)議不統(tǒng)一造成了網(wǎng)絡(luò)設(shè)計(jì)、系統(tǒng)集成的困難。使用統(tǒng)一的網(wǎng)管代理設(shè)備進(jìn)行協(xié)議轉(zhuǎn)換,對(duì)上級(jí)網(wǎng)管接口采用SNMP協(xié)議格式,使管理信息的傳輸具有統(tǒng)一的標(biāo)準(zhǔn)。
設(shè)計(jì)完成的代理程序具有如下技術(shù)特性:
①代理性。Agent能代表用戶完成某些工作或與被管理設(shè)備進(jìn)行通信,主要體現(xiàn)在衛(wèi)通子站網(wǎng)管代理與設(shè)備監(jiān)控軟件進(jìn)行通信,根據(jù)要求上報(bào)設(shè)備狀態(tài);進(jìn)行按需分配(DAMA)方式分配資源等;
②獨(dú)立性。Agent本身是一個(gè)獨(dú)立實(shí)體,能不依賴管理服務(wù)器監(jiān)控各設(shè)備狀態(tài),并與網(wǎng)管中心數(shù)據(jù)交互;
③主動(dòng)性。Agent能根據(jù)用戶的需求,適應(yīng)環(huán)境的變化主動(dòng)為用戶提供服務(wù);
④直觀性。Agent內(nèi)嵌設(shè)備監(jiān)控web server,能夠通過(guò)網(wǎng)頁(yè)監(jiān)控本地設(shè)備,提交各種業(yè)務(wù)申請(qǐng),顯示下發(fā)信息。
嵌入式網(wǎng)管代理軟件采用B/S軟件構(gòu)架,運(yùn)行在ARM硬件平臺(tái)上,通過(guò)RS485、RS232串口監(jiān)控站內(nèi)設(shè)備,操作人員可以通過(guò)IP地址訪問(wèn)網(wǎng)管代理Web服務(wù)器,通過(guò)網(wǎng)頁(yè)完成對(duì)衛(wèi)通站內(nèi)各設(shè)備的監(jiān)控以及衛(wèi)通站主要指標(biāo)監(jiān)視。根據(jù)網(wǎng)絡(luò)劃分修改XML文件,轉(zhuǎn)變站角色。與此同時(shí),自動(dòng)接收網(wǎng)管中心各種SNMP類型請(qǐng)求,根據(jù)業(yè)務(wù)類型做出相應(yīng)處理,工作流程如圖1所示。
圖1 網(wǎng)管代理設(shè)計(jì)方框圖
2.2.1 設(shè)備監(jiān)控Web服務(wù)器
使用GoAhead Web服務(wù)器,通過(guò)CGI進(jìn)程,定義的ASP、form函數(shù)實(shí)現(xiàn)頁(yè)面與服務(wù)器之間的數(shù)據(jù)交互。通過(guò)C語(yǔ)言編輯實(shí)現(xiàn)其功能,采用自動(dòng)輪詢的機(jī)制,實(shí)時(shí)監(jiān)視設(shè)備狀態(tài)。HTML語(yǔ)言設(shè)計(jì)的監(jiān)控網(wǎng)頁(yè)增加了密碼管理、權(quán)限管理和容錯(cuò)處理,不同權(quán)限口令登錄操作權(quán)限不同,輸入超出范圍提示用戶,令使用更加安全、人性化。
2.2.2 MIB庫(kù)的創(chuàng)建
MIB庫(kù)即“管理信息庫(kù)”,基于編碼規(guī)則的抽象語(yǔ)法規(guī)則1(ASN.1)的語(yǔ)法來(lái)描述,是網(wǎng)絡(luò)管理數(shù)據(jù)的標(biāo)準(zhǔn)。在這個(gè)標(biāo)準(zhǔn)里管理信息結(jié)構(gòu)與標(biāo)識(shí)(SMI)規(guī)定了每一個(gè)對(duì)象或表項(xiàng)都有對(duì)象類型、語(yǔ)法、存取和狀態(tài)4個(gè)屬性。
網(wǎng)管代理的MIB采用樹(shù)形結(jié)構(gòu)組織,MIB中每個(gè)對(duì)象都被賦予一個(gè)對(duì)象標(biāo)識(shí)符(OID)來(lái)命名對(duì)象。對(duì)象標(biāo)識(shí)符能夠唯一標(biāo)識(shí)某個(gè)對(duì)象,其值由一個(gè)整數(shù)序列構(gòu)成。針對(duì)在衛(wèi)通站中同一類型的設(shè)備可能有多臺(tái)的情況對(duì)MIB樹(shù)進(jìn)行拓展。將同種設(shè)備定義成一個(gè)類作為MIB樹(shù)的一個(gè)子葉,相同參數(shù)定義成一個(gè)參數(shù)組,且每個(gè)參數(shù)的OID唯一??梢詫⒚總€(gè)參數(shù)組看作由設(shè)備葉子節(jié)點(diǎn)組成的縱向列表,這樣就生成了一個(gè)設(shè)備子樹(shù),主線程會(huì)在初始化中根據(jù)配置文件中設(shè)備的數(shù)量自動(dòng)生成列表。例如:3臺(tái)同類調(diào)制解調(diào)器設(shè)備的modemTemperaturehigh參數(shù)組對(duì)應(yīng)著列表中的1列,OID分別是1.6.9.4.62.1.1、1.6.9.4.62.1.2 和1.6.9.4.62.1.3,modemTemperaturelow同理作為列表中的一列,相關(guān)代碼如下:
2.2.3 SNMP代理軟件通信模塊
(1)Socket通信端口
UDP協(xié)議傳輸具有網(wǎng)絡(luò)資源開(kāi)銷較小、數(shù)據(jù)處理速度快的優(yōu)點(diǎn),在對(duì)數(shù)據(jù)安全性要求不高的情況下,采用UDP協(xié)議是一個(gè)非常不錯(cuò)的選擇。網(wǎng)管代理軟件Socket通信時(shí)在數(shù)據(jù)幀中加入幀長(zhǎng)、設(shè)備的類型、地址和校驗(yàn)等會(huì)使UDP變得靈活而可靠,保證了數(shù)據(jù)實(shí)時(shí)性、準(zhǔn)確性,整體流程如圖2所示。
圖2 進(jìn)程間的通信流程
網(wǎng)管代理設(shè)備各模塊間廣泛使用UDP通信方式,發(fā)送線程使用UDP廣播方式傳遞數(shù)據(jù),便于本地界面顯示、上報(bào)設(shè)備狀態(tài)同步進(jìn)行,接收線程創(chuàng)建Socket采用地址重用的方式,使多線程間用相同端口號(hào)進(jìn)行接收,簡(jiǎn)化了代碼設(shè)計(jì),其方法如下:
①創(chuàng)建Socket端口:
②發(fā)送、接收數(shù)據(jù):通過(guò)調(diào)用sendto()、recv()函數(shù)發(fā)送、接收數(shù)據(jù)報(bào)。
(2)隊(duì)列初始化
隊(duì)列在串口通信、socket通信和數(shù)據(jù)存儲(chǔ)中起著重要作用,通信數(shù)據(jù)隊(duì)列避免了收發(fā)阻塞現(xiàn)象出現(xiàn)。設(shè)備隊(duì)列根據(jù)設(shè)備類型分配存儲(chǔ)空間,便于數(shù)據(jù)幀解析后填充,通過(guò)遍歷隊(duì)列,取得所需監(jiān)控設(shè)備的參數(shù)。
2.2.4 代理軟件SNMP協(xié)議處理模塊
SNMP協(xié)議處理模塊是一個(gè)單任務(wù)模塊,采用先進(jìn)先出隊(duì)列,一次處理一個(gè)PDU(協(xié)議數(shù)據(jù)單元)。從網(wǎng)管中心接收消息后,對(duì)其進(jìn)行語(yǔ)法分析,將其轉(zhuǎn)換成內(nèi)部數(shù)據(jù)結(jié)構(gòu),驗(yàn)證版本號(hào)、認(rèn)證信息。將收到MIB變量對(duì)應(yīng)成本地格式,判斷請(qǐng)求的MIB對(duì)象是否在代理的MIB樹(shù)中,如果存在,調(diào)用對(duì)應(yīng)的MIB變量處理例程來(lái)處理。命令執(zhí)行完后,再將內(nèi)部數(shù)據(jù)格式轉(zhuǎn)換回 ASN.1格式創(chuàng)建響應(yīng) PDU,調(diào)用Socket的sendto()函數(shù)將消息發(fā)出。
將一臺(tái)調(diào)制解調(diào)器通過(guò)RS485接口與網(wǎng)管代理設(shè)備進(jìn)行連接。使用PC模擬網(wǎng)管中心,使用HP的Mib Browser軟件進(jìn)行Get、Set操作測(cè)試;登錄網(wǎng)管代理Web頁(yè)面,以主動(dòng)申請(qǐng)資源、入退網(wǎng)功能為測(cè)試用例,進(jìn)行Trap功能測(cè)試。物理連接關(guān)系如圖 3所示。
圖3 仿真環(huán)境連接關(guān)系
通過(guò)對(duì)Mib Browser、Ethereal軟件捕獲的SNMP協(xié)議網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行分析,對(duì)OID為1.6.9.4.62.1.1(調(diào)制解調(diào)器參數(shù)OID)的對(duì)象值獲取及修改成功;網(wǎng)管計(jì)算機(jī)收到OID為1.6.9.4.100.1(入退網(wǎng)功能OID)、1.6.9.4.200.1(主動(dòng)申請(qǐng)資源功能OID)的Trap請(qǐng)求,數(shù)據(jù)正確,返回成功應(yīng)答。分析結(jié)果表明,網(wǎng)管代理軟件實(shí)現(xiàn)了 Get、Set、Trap三大核心功能。
針對(duì)衛(wèi)通地球站的具體需求設(shè)計(jì)并實(shí)現(xiàn)了基于SNMP協(xié)議的網(wǎng)管代理,成為衛(wèi)通網(wǎng)絡(luò)的重要組成部分。該代理軟件在工程上廣泛應(yīng)用,極大提高了整個(gè)網(wǎng)管系統(tǒng)的工作效率,能夠在網(wǎng)管系統(tǒng)信息流量較大時(shí)穩(wěn)定工作。實(shí)現(xiàn)了對(duì)整個(gè)網(wǎng)絡(luò)的資源分配、全網(wǎng)規(guī)劃以及子站管理。
[1]楊家海,任憲坤.網(wǎng)絡(luò)管理原理與實(shí)現(xiàn)技術(shù)[M].北京:清華大學(xué)出版社,2000:41-54.
[2]蔡 琳.在VC++6.0平臺(tái)下基于SNMP網(wǎng)絡(luò)管理軟件的開(kāi)發(fā)[J].信息與電子工程,2005,3(3):67-70,74.
[3]周冀松,雷震甲.SNMP網(wǎng)管協(xié)議的原理與實(shí)現(xiàn)[J].無(wú)線電通信技術(shù),2004,30(3):1-2.
[4]RFC 1213.ManagementInformation Base forNetwork Management of TCP/IP-based Internets MIB-Ⅱ[S],1991.