亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        SNMP協(xié)議家族的新成員

        2016-06-06 06:07:49陶晉
        中國教育網(wǎng)絡(luò) 2016年4期
        關(guān)鍵詞:設(shè)置方法

        文/陶晉

        ?

        SNMP協(xié)議家族的新成員

        文/陶晉

        在當(dāng)前國內(nèi)高校的網(wǎng)絡(luò)管理中, SNMP一直是被普遍接受的通用網(wǎng)絡(luò)管理協(xié)議標(biāo)準(zhǔn)和工業(yè)標(biāo)準(zhǔn)。但是隨著各高校網(wǎng)絡(luò)設(shè)備數(shù)量越來越多和復(fù)雜,需管理監(jiān)控的數(shù)據(jù)日益增多,使SNMP網(wǎng)絡(luò)管理協(xié)議更高效地工作,成為了保障高校網(wǎng)絡(luò)安全運(yùn)維的重要條件。上海財(cái)經(jīng)大學(xué)網(wǎng)絡(luò)中心對此問題做了專門研究,設(shè)計(jì)出兩種新的SNMP服務(wù),并利用現(xiàn)有的SNMP4J開源庫,在其總體框架上進(jìn)行擴(kuò)展,有效地提高了網(wǎng)絡(luò)設(shè)備的管理效率。

        校園網(wǎng)絡(luò)設(shè)備管理現(xiàn)狀

        上海財(cái)經(jīng)大學(xué)現(xiàn)有網(wǎng)絡(luò)設(shè)備1000多臺,需管理的設(shè)備型號復(fù)雜多樣, 尤其是核心層設(shè)備上的管理數(shù)據(jù)量非常大,使用傳統(tǒng)的SNMP管理協(xié)議來監(jiān)控和管理效率比較低。對于學(xué)校的網(wǎng)絡(luò)管理系統(tǒng)來說,如設(shè)備告警和性能等許多業(yè)務(wù)數(shù)據(jù),是通過管理信息庫MIB表來獲取的。由于SNMP標(biāo)準(zhǔn)報(bào)文GET,GETNEXT報(bào)文的限制,如要獲取相關(guān)的業(yè)務(wù)數(shù)據(jù)信息,必須將整個MIB表中告警和性能節(jié)點(diǎn)的數(shù)據(jù)全部獲取下來,然后再進(jìn)行過濾篩選。當(dāng)整個MIB表非常龐大時,這種做法耗時較長且會消耗較多的帶寬。

        圖1

        SNMP新成員構(gòu)思方案

        針對以上問題,我們在上海財(cái)經(jīng)大學(xué)網(wǎng)絡(luò)管理系統(tǒng)中設(shè)計(jì)了新的解決方案,提出兩種新的SNMP服務(wù),getAlm和getPm。

        首先在新SNMP服務(wù)中需對過濾條件進(jìn)行設(shè)置,封裝在SNMP的GET報(bào)文中,有選擇的獲取MIB對象值。新服務(wù)沿襲了SNMP協(xié)議內(nèi)容簡單的特點(diǎn),只需對PDU報(bào)文的get-request進(jìn)行擴(kuò)充(get-Alm-request和get-Pm-request),response報(bào)文結(jié)構(gòu)維持不變,但需要在返回的PDU數(shù)據(jù)包中,增加對新服務(wù)的異常狀態(tài)處理。

        對于get-Alm-request,默認(rèn)設(shè)置的過濾選項(xiàng):cardtype板卡類型,severity嚴(yán)重級別,alarmtype告警類型,alarmtime告警產(chǎn)生時間。而對于get-Pm-request,默認(rèn)選項(xiàng)包括:pfmtime性能產(chǎn)生時間 ,pfminterval性能監(jiān)控間隔(包含15分鐘或24小時), cardtype板卡類型,pfmparameters性能監(jiān)控參數(shù)。上述這些選項(xiàng)可在SNMP管理端進(jìn)行設(shè)置,SNMP的Agent端支持按上述選項(xiàng)過濾輸出結(jié)果。

        對SNMP協(xié)議數(shù)據(jù)單元做如下新的定義:

        從上表可以看出,在使用ASN.1描述SNMP的Protocol Data Unit(協(xié)議數(shù)據(jù)單元簡稱PDU)定義中,在choice可供選擇的類型中新增了“20”和“21”兩種新類型。

        對于這兩種新PDU的定義,在下面的ASN.1中給出了具體描述。

        上述PDU設(shè)計(jì)了最多八個邏輯表達(dá)式的條件,現(xiàn)在假設(shè)這個過濾條件數(shù)為n,這n個條件將出現(xiàn)在VarBindList變量表中。對于varbindlist的變量名和值,這里的變量名指的是上述cardtype, severity等過濾選項(xiàng)所對應(yīng)的目標(biāo)Object Identifiers(簡稱OID)值。而變量值羅列出了這些目標(biāo)對象可能的取值范圍。在邏輯條件表達(dá)式中,需要邏輯運(yùn)算符來把變量名和值聯(lián)系起來。因此設(shè)計(jì)了在目標(biāo)對象名中用固定的整數(shù)值來表示相應(yīng)的邏輯運(yùn)算符:0表示“=”,1表示“<”, 2表示“>”, 3表示“<=”,4表示“>=”, 5表示“!=”。

        這樣varbindlist變量表中的名和值鍵值就可以聯(lián)系起來了。下面給出varbindlist的定義。

        (出現(xiàn)在response報(bào)文中可能返回的異常結(jié)果。)

        這里設(shè)置的endOfAlmTable和endOfPmTable標(biāo)簽,是因?yàn)榭紤]到設(shè)置的返回記錄數(shù)大于實(shí)際數(shù)目時可以提前跳出。varbindlist變量表中的字段包括了兩個條目:過濾條件和請求字段。其中的前x個varbind表示過濾條件,x的值就是number-of-logic字段值,其中每個varbind由變量名和值組成;而其余的varbind表示請求字段,其中的varbind只包含了所取的變量名。

        另外兩個PDU中的max-returnrecords字段表示了根據(jù)條件,AGENT端所返回的最大記錄行數(shù)。如果該值設(shè)置成了n,則只會返回所有結(jié)果集中的前n條記錄數(shù)據(jù)。如果max-return-records設(shè)置成了-1,那么AGENT就會返回所有的記錄結(jié)果。

        當(dāng)AGENT在處理get-Alm-request 和get-Pm-request請求報(bào)文的過程中,可能會出現(xiàn)各種異常情況,因此也需要對response報(bào)文作相應(yīng)的修改。

        下面給出它的定義。

        上述定義中,20-23是針對getAlm和getPm請求報(bào)文的響應(yīng)。numberOfLogicError指的是邏輯條件數(shù)錯誤,由于目前設(shè)計(jì)的最大條件數(shù)為8,因此取值范圍為1到8。maxReturnRecords應(yīng)為最大返回的記錄數(shù),如取值異常,maxReturnRecordsError就會顯示錯誤。myObjectNameWrong指的是由于myObjectName后的數(shù)值取值異常而引起的錯誤。正常情況下,myObjectName后的數(shù)值只能在0到5之間取整數(shù)值。最后的conditionWrong指的是在getAlm和getPm請求中使用了錯誤的過濾條件,所取數(shù)值超過了取值范圍,將會返回conditionWrong狀態(tài)的錯誤。

        SNMP新成員具體實(shí)現(xiàn)方案

        getAlm和getPm報(bào)文是用來提升現(xiàn)有SNMP管理性能的,在目前現(xiàn)有的SNMP管理端解決方案中,我們選用了SNMP4J, 在保持原有大框架不變的前提下,做簡要的擴(kuò)充,以支持這兩種新報(bào)文,滿足功能需求。

        圖2給出了相關(guān)類圖的簡要設(shè)計(jì)。主要思想是對SNMP4J中的PDU和VariableBinding類做了擴(kuò)展,新增了WDMPDU類和WDMVariableBinding類,分別繼承了SNMP4J框架中原有的PDU類和VariableBinding類。

        圖2

        在原有的PDU類中,包含了各種PDU數(shù)據(jù)包類型和各種異常情況狀態(tài)等屬性,根據(jù)新增的兩種getPDU類型,在WDMPDU類中需增加相應(yīng)的屬性,即GetWDMAlm 和GetWDMPm,同時也新增了4種異常情況狀態(tài)屬性。在PDU類中包含了一些方法,分別是addOID(),getVariable(),getBERPayloadLength(),decodeBER(),encodeBER(),getTypeString()等。其中addOID()給PDU報(bào)文增加mib號,getVariable()獲取對應(yīng)的mib節(jié)點(diǎn)數(shù)值。getBERPayloadLength()獲取PDU報(bào)文的內(nèi)容長度,是由requestID,errorstatus,errorIndex,還有variableBinding各字段長度值累加組成。其中errorstatus字段在response報(bào)文中表示報(bào)文錯誤狀態(tài)碼,在getAlm和getPm報(bào)文中表示的是邏輯操作符數(shù)目numberOfLogic;errorIndex字段在返回報(bào)文中表示錯誤索引值,在getAlm和getPm中表示的是返回記錄數(shù)maxReturnRecords。另外requestID報(bào)文標(biāo)識值長度計(jì)算方法也相同,variableBinding長度值是由VariableBinding類來計(jì)算。因此WDMPDU類中g(shù)etBERPayloadLength()和原來的計(jì)算方式相同,再加上addOID()和getVariable(),不需要在子類中重寫相關(guān)方法。PDU類中的encodeBER()和decodeBER()分別對即將進(jìn)入網(wǎng)絡(luò)傳輸?shù)腜DU數(shù)據(jù)包的輸出流,和進(jìn)入主機(jī)的PDU數(shù)據(jù)包的輸入流進(jìn)行編碼和解碼,也需要分別對上述requestID,errorStatus,errorIndex和variableBinding字段進(jìn)行編碼解碼,還需要對報(bào)文的類型是否正確進(jìn)行判斷,這就需要在WDMPDU子類中對這兩個方法進(jìn)行重寫,以支持新增加的GetAlm和GetPm報(bào)文。PDU類中的getTypeString()也需要重寫,它根據(jù)PDU報(bào)文類型返回對應(yīng)的報(bào)文描述,需要增加新增兩種報(bào)文的支持。

        在原有的VariableBinding類中,包含了oid和variable屬性,分別表示mib節(jié)點(diǎn)標(biāo)識和對應(yīng)的值。WDMVariableBind類由于新增了比較運(yùn)算符,因此新增了operator屬性。VariableBinding類含有oid和variable 的get和set方法,用來獲取和設(shè)置對應(yīng)的屬性值。它們在子類WDMVariableBind類中同樣存在,因此這里不需要被重寫,直接繼承父類中的方法即可。VariableBinding類中的decodeBER()和encodeBER()對進(jìn)出網(wǎng)絡(luò)的PDU數(shù)據(jù)包中的variable變量綁定域的輸入輸出流進(jìn)行編碼和解碼,原先的方法中只是對oid和variable屬性分別進(jìn)行編碼和解碼,現(xiàn)在WDMVariableBind類新增了oparator屬性,在編碼和解碼過程中需要增加對operator屬性的編碼解碼操作,因此在WDMVariableBind類中重寫了這兩個方法。最后VariableBind類中的getBERPayloadLength()方法用于返回PDU報(bào)文中variable變量綁定域的內(nèi)容長度,是由oid和variable這兩個屬性內(nèi)容的長度值累加而成?,F(xiàn)在新增了operator屬性,同樣需要在WDMVariableBind類中重寫這一方法,需要將這三個屬性內(nèi)容的長度做累加。

        WDMSNMPRequest類提供了常用的GET,GETNEXT,SET等標(biāo)準(zhǔn)SNMP相關(guān)操作,還增加了GETWDMAlm和GETWDMPm方法。該類繼承了標(biāo)準(zhǔn)SNMP4J框架中的SnmpRequest類,SnmpRequest類提供了mib表示符oid號,SNMP版本號,PDU數(shù)據(jù)包類型,允許的超時時間,地址,團(tuán)體字符串等屬性信息,還包括了獲取和設(shè)置oid相關(guān)數(shù)值的方法,創(chuàng)建snmp會話的方法等。例如getPDU()方法利用父類的createSnmpSession()方法創(chuàng)建snmp會話,然后進(jìn)行監(jiān)聽。隨后創(chuàng)建target對象,設(shè)置該對象的address,timeout,版本信息等屬性。接著根據(jù)需要,創(chuàng)建PDU數(shù)據(jù)包對象或是新增的WDMPDU數(shù)據(jù)包對象,并設(shè)置PDU類型,增加VariableBinding對象或新增的WDMVariableBind對象到PDU數(shù)據(jù)包對象中,如果是GETWDMAlm和GETWDMPm操作,還需調(diào)用WDMPDU類中的setNumberOfLogic()和setMaxReturnRecords()對過濾條件數(shù)和最大返回記錄數(shù)進(jìn)行設(shè)置。最后等待AGENT端返回標(biāo)準(zhǔn)的SNMP的Response數(shù)據(jù)包,關(guān)閉snmp會話。WDMSNMPRequest在此基礎(chǔ)上進(jìn)行了擴(kuò)展。

        下面結(jié)合SNMP4J的框架,給出具體的實(shí)現(xiàn)的流程。

        實(shí)現(xiàn)流程:

        如圖3所示,首先實(shí)例化一個SNMP對象,調(diào)用該對象的listen()方法監(jiān)聽消息。構(gòu)造UserTarget對象設(shè)置對應(yīng)屬性。接著構(gòu)造一個PDU或是WDMPDU對象,生成一個包含了MIB庫中ID的OID對象,將此對象添加到PDU或是WDMPDU對象中去,且需設(shè)置該報(bào)文獲取類型。上述過程完成后,就可以調(diào)用Snmp類中的send()函數(shù)來發(fā)送消息了。

        圖3

        消息被發(fā)送之后,便等待響應(yīng)的到達(dá),到達(dá)后返回一個ResponseEvent對象,該類提供了getResponse()方法,可以取到返回的PDU或WDMPDU對象。

        示例代碼:

        接著創(chuàng)建wdmpdu對象:

        如整型則對應(yīng)初始化相應(yīng)的類型 new Integer32(value)。

        再將wdmpdu對象賦予對應(yīng)mib的oid值:wdmpdu.add(new WDMVariableBinding(new OID(oids), var));

        設(shè)置w d m p d u屬性,如w d m p d u . setType(WDMPDU.GetWDMAlm)。

        通過snmp.set(wdmpdu,target). getResponse; 就可得到對應(yīng)的返回結(jié)果。最后關(guān)閉連接snmp.close()。

        應(yīng)用效果

        經(jīng)實(shí)際環(huán)境下的測試,發(fā)現(xiàn)通過增加過濾條件設(shè)置,擴(kuò)充協(xié)議新成員的方案,能夠提高性能表現(xiàn)。與標(biāo)準(zhǔn)的GET報(bào)文相比,在獲取大量告警或性能信息的時候,采用getAlm或getPm,從request請求數(shù),response響應(yīng)數(shù),發(fā)送和接收字節(jié)數(shù)以及延時各方面比較了GET 與getAlm或是getPm的差異。

        比較獲取告警信息時的差異發(fā)現(xiàn),需要獲取告警級別是critical,且告警類型是設(shè)備告警的所有信息。在本實(shí)驗(yàn)中需要得到的是severity和alarmtype節(jié)點(diǎn)。構(gòu)造過濾條件:(severity=“critical”)AND(alarmtype=“device”),而請求獲取的字段則是告警時間和板卡類型。

        比較獲取性能參數(shù)信息時的差異,現(xiàn)在需要獲取性能間隔參數(shù)是15分鐘,且板卡類型是LWX2雙通道任意速率通道轉(zhuǎn)換板的所有信息。在本實(shí)驗(yàn)中需要得到的是pfminterval和cardtype節(jié)點(diǎn)。構(gòu)造的過濾條件:(pfminterval=“15”)AND(cardtype=“LWX2”)。

        通過以上實(shí)驗(yàn)發(fā)現(xiàn),使用getAlm或getPm來獲取告警和性能信息, 特別是在有大量數(shù)據(jù)需要獲取的時候, 能夠減少網(wǎng)絡(luò)中傳輸?shù)膶ο笞止?jié)數(shù),減少延時。

        目前,上海財(cái)經(jīng)大學(xué)網(wǎng)絡(luò)中心通過與設(shè)備廠商合作,通過對設(shè)備進(jìn)行固件的升級,大多數(shù)設(shè)備已經(jīng)支持以上這種新的獲取告警與性能數(shù)據(jù)的方式。網(wǎng)絡(luò)管理系統(tǒng)獲取管理數(shù)據(jù)非常高效。

        (作者單位為上海財(cái)經(jīng)大學(xué)教育技術(shù)中心)

        猜你喜歡
        設(shè)置方法
        中隊(duì)崗位該如何設(shè)置
        學(xué)習(xí)方法
        7招教你手動設(shè)置參數(shù)
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        本刊欄目設(shè)置說明
        中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        捕魚
        国产一区二区三区免费在线播放| 亚洲av久久无码精品九九| 欧美一级视频精品观看| 国产av普通话对白国语| 亚洲中文字幕久久在线| 中文字幕人妻中文| 亚洲人成7777影视在线观看| 蜜桃av夺取一区二区三区| 亚洲网站一区在线播放| 最新国产福利在线观看精品| 国产精品白浆视频免费观看| 日韩精品人妻中文字幕有码| 一区二区三区午夜视频在线| 成年女人免费视频播放体验区| 性刺激的大陆三级视频| 中文无码制服丝袜人妻av| 国产美女a做受大片免费| 日韩av一区二区三区高清| 亚洲国产成人极品综合| 久久亚洲色www成人欧美| 一区二区精品| 中文字幕亚洲高清精品一区在线 | 好男人日本社区www| 国产亚洲日韩欧美一区二区三区 | 69堂在线无码视频2020| 免费国产一区二区视频| 十八禁在线观看视频播放免费| 99久久久久国产| 亚洲第一页在线观看视频网站| 五月色丁香婷婷网蜜臀av| 欧美与黑人午夜性猛交久久久| 中文无码免费在线| 91精品久久久老熟女91精品| 亚洲国产av精品一区二区蜜芽| 最新无码国产在线播放| 亚洲国产日韩综合天堂| 永久亚洲成a人片777777| 久久国产精品波多野结衣av| 国产三级国产精品国产专区 | 99久久精品费精品国产一区二| 9191在线亚洲精品|