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

        ?

        基于SNMP++/AGENT++的網(wǎng)管系統(tǒng)開發(fā)

        2011-10-18 06:22:00盧建平
        大眾科技 2011年6期
        關(guān)鍵詞:設(shè)置管理

        盧建平

        (中國(guó)電信股份有限公司高州分公司,廣東 高州 525200)

        基于SNMP++/AGENT++的網(wǎng)管系統(tǒng)開發(fā)

        盧建平

        (中國(guó)電信股份有限公司高州分公司,廣東 高州 525200)

        文章闡述了網(wǎng)絡(luò)管理、SNMP模型和MBI和SMI的基本概念和基本應(yīng)用,對(duì)SNMP++和AGENT++的結(jié)構(gòu)進(jìn)行了介紹,并通過(guò)實(shí)例來(lái)說(shuō)明SNMP代理的開發(fā)和私有MIB的擴(kuò)充。

        網(wǎng)絡(luò)管理;簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議;MIB;SNMP++;AGENT++

        (一)前言

        互聯(lián)網(wǎng)己經(jīng)滲透到社會(huì)經(jīng)濟(jì)的各個(gè)領(lǐng)域,對(duì)社會(huì)經(jīng)濟(jì)的發(fā)展起著越來(lái)越重要的作用。與此同時(shí)網(wǎng)絡(luò)的規(guī)模日趨擴(kuò)大,網(wǎng)絡(luò)結(jié)構(gòu)日趨復(fù)雜,這些因素都極大地增加了整個(gè)網(wǎng)絡(luò)的安全運(yùn)行和日常管理的難度,如何構(gòu)建一個(gè)穩(wěn)定可靠的網(wǎng)絡(luò)管理體系和管理系統(tǒng),成為一個(gè)重要的研究方向。

        簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol,SNMP)由一系列協(xié)議組和規(guī)范組成,是管理各種互連網(wǎng)絡(luò)的事實(shí)標(biāo)準(zhǔn)。SNMP提供了一種從網(wǎng)絡(luò)設(shè)備收集或設(shè)置網(wǎng)絡(luò)管理信息的方法,協(xié)議規(guī)定了網(wǎng)絡(luò)管理工作站與被管理設(shè)備之間進(jìn)行通信的語(yǔ)法和規(guī)則, 主要包括以下三個(gè)方面:1.管理信息結(jié)構(gòu) SMI(Structure of Management Information);2.管理信息庫(kù)MIB(Management Information Base);3.簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 SNMP(Simple Network Management Protocol )。由于協(xié)議細(xì)節(jié)較多,為了減輕開發(fā)強(qiáng)度SNMP網(wǎng)管系統(tǒng)一般是基于已有的開發(fā)包來(lái)實(shí)現(xiàn),目前常見的開發(fā)包包括

        本文的剩余部分安排如下,第二部分描述了SNMP模型,第三部分介紹了 SNMP++和 AGENT++,并通過(guò)一個(gè)實(shí)例來(lái)說(shuō)明SNMP代理的開發(fā)過(guò)程,最后是結(jié)語(yǔ)。

        (二)SNMP模型

        1.SNMP網(wǎng)絡(luò)管理模型

        SNMP網(wǎng)絡(luò)管理模型采用客戶/服務(wù)器的組織模式。網(wǎng)絡(luò)管理站充當(dāng)客戶方,而裝備了SNMP代理過(guò)程的被管理節(jié)點(diǎn)擔(dān)任服務(wù)器方。如圖1所示:

        圖1 網(wǎng)絡(luò)管理協(xié)議結(jié)構(gòu)圖

        網(wǎng)絡(luò)管理站是網(wǎng)絡(luò)管理員管理網(wǎng)絡(luò)系統(tǒng)的接口,它提供數(shù)據(jù)分析、故障恢復(fù)的管理應(yīng)用程序以及監(jiān)視和控制網(wǎng)絡(luò)的接口。被管理節(jié)點(diǎn)一般指裝備了SNMP代理的網(wǎng)絡(luò)實(shí)體(如主機(jī)、路由器等)。SNMP對(duì)來(lái)自于網(wǎng)絡(luò)管理站的信息請(qǐng)求和動(dòng)作請(qǐng)求進(jìn)行應(yīng)答,并異步的為管理工作站報(bào)告一些重要的意外事件。

        網(wǎng)絡(luò)管理站與被管理節(jié)點(diǎn)通過(guò)簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議進(jìn)行通信。通信主要包括一些內(nèi)容:管理站讀取代理者處對(duì)象的值(Get操作),包括get-request、get-next-request;管理站設(shè)置代理者處對(duì)象的值(Set操作);代理者向管理站通報(bào)重要事件(Trap操作);被管理節(jié)點(diǎn)對(duì)管理站Get和Set操作的響應(yīng)(Get-response)。

        SNMP在遞交SNMP消息時(shí)需要使用傳輸層服務(wù)。協(xié)議本身并沒有假設(shè)底層服務(wù)是無(wú)連接的還是面向連接的,大多數(shù)SNMP的實(shí)現(xiàn)都在TCP/IP結(jié)構(gòu)內(nèi)部實(shí)現(xiàn),并使用無(wú)連接的UDP協(xié)議。SNMP一般使用兩個(gè)端口,被管理節(jié)點(diǎn)在161端口偵聽傳來(lái)的GetRequest、GetNextRequest和SetRequest命令,而網(wǎng)絡(luò)管理站在162端口偵聽傳來(lái)的Traps。

        2.MIB結(jié)構(gòu)

        為了有效的對(duì)網(wǎng)絡(luò)進(jìn)行管理,SNMP模型必須定義大量的變量來(lái)描述網(wǎng)絡(luò)上硬件及軟件的運(yùn)行狀態(tài)和統(tǒng)計(jì)信息,在SNMP協(xié)議中,這些變量都稱為對(duì)象。MIB就是這些對(duì)象的集合。而為了網(wǎng)絡(luò)系統(tǒng)的互操作性,用于表示特定資源的對(duì)象在每個(gè)系統(tǒng)中都必須相同,同時(shí)對(duì)象必須使用統(tǒng)一的表示方案。也就是說(shuō),必須對(duì)語(yǔ)法和語(yǔ)義有一致的理解。管理信息結(jié)構(gòu)SMI確定了可用于MIB中的數(shù)據(jù)類型,并且說(shuō)明了對(duì)象在MIB內(nèi)部怎樣表示和命名。

        源于SNMP中MIB的可擴(kuò)充性和實(shí)際運(yùn)行的網(wǎng)絡(luò)設(shè)備的多樣性,為了實(shí)現(xiàn)特定設(shè)備的非標(biāo)準(zhǔn)功能,我們可以對(duì)標(biāo)準(zhǔn)MIB進(jìn)行擴(kuò)充,加入某些私有的MIB。實(shí)際上,相當(dāng)部分的網(wǎng)絡(luò)設(shè)備都有某些標(biāo)準(zhǔn) MIB所沒有包括的特殊功能,所以很多商業(yè)的公司都有自己產(chǎn)品私有的MIB。例如CISCO的大部分可管理設(shè)備,均有其私有的MIB。私有MIB下的企業(yè)號(hào)可以向IANA申請(qǐng)。

        (三)網(wǎng)絡(luò)管理信息系統(tǒng)的開發(fā)

        結(jié)合前述網(wǎng)絡(luò)管理概念和SNMP模型,基于SNMP的網(wǎng)絡(luò)管理系統(tǒng)主要功能如下:1.訪問MIB 庫(kù)的變量并給出相應(yīng)變量的描述;2.性能和吞吐量分析,通過(guò)訪問SNMP和MIB 可以獲得網(wǎng)絡(luò)性能的有關(guān)數(shù)據(jù);3.對(duì)網(wǎng)絡(luò)性能進(jìn)行動(dòng)態(tài)分析,監(jiān)測(cè)中心對(duì)監(jiān)測(cè)設(shè)備進(jìn)行查詢來(lái)獲得有關(guān)網(wǎng)絡(luò)狀態(tài)的信息,用于以后的評(píng)估和分析;4.故障警告。

        SNMP和MIB的開發(fā)可以大致分為兩種:SNMP網(wǎng)絡(luò)管理站的開發(fā)和Agent的開發(fā)。SNMP網(wǎng)絡(luò)管理站的開發(fā)根據(jù)側(cè)重點(diǎn)有很大差異,部分系統(tǒng)可以動(dòng)態(tài)的加入或卸載企業(yè)私有MIB,還有部分系統(tǒng)可以對(duì)歷史數(shù)據(jù)和實(shí)時(shí)數(shù)據(jù)進(jìn)行綜合,可以提前發(fā)現(xiàn)網(wǎng)絡(luò)的異常,這些根據(jù)業(yè)務(wù)邏輯和管理系統(tǒng)的智能程度而不同。但基本的功能是實(shí)現(xiàn)SNMP協(xié)議讀取和設(shè)置被管理對(duì)象的值。Agent在網(wǎng)管系統(tǒng)結(jié)構(gòu)的位置相當(dāng)于管理器和被管設(shè)備之間的網(wǎng)關(guān)和協(xié)議轉(zhuǎn)換器。它一般包括查詢?cè)O(shè)置模塊、告警模塊以及MIB庫(kù)。

        1.SNMP++/ AGENT++

        SNMP++是一套開源并且免費(fèi)的 C++類的集合,最初由 HP公司開發(fā),現(xiàn)由 Frank Fock 組織維護(hù)和升級(jí)。由于 SNMP++把編程中的核心部分都面向?qū)ο蠡庋b起來(lái),因此程序員無(wú)需了解 SNMP 底層的機(jī)制,只需了解 C++的編程知識(shí)和 SNMP編程的流程即可快速開發(fā)出高效的SNMP 程序,為網(wǎng)絡(luò)管理應(yīng)用的開發(fā)者提供高效、安全、易用的 SNMP 服務(wù)。Snmp類封裝了SNMP 通信活動(dòng)建立網(wǎng)絡(luò)連接的所有必要代碼,使用該類時(shí)只需要聲明一個(gè)該類的對(duì)象并設(shè)置對(duì)應(yīng)的參數(shù);對(duì)象標(biāo)識(shí)符類(Oid)對(duì)SMI中對(duì)象標(biāo)識(shí)符OID (Object Identifier)類型的封裝,該類的主要任務(wù)是使操作OID 更加簡(jiǎn)潔方便;PDU類封裝了SNMP 報(bào)文中的PDU 結(jié)構(gòu);而從SnmpSyntax類派生了一系列對(duì)應(yīng)于 SMI中各種數(shù)據(jù)類型的類,包括 IpAddress類、Counter32類、OctetStr類等。

        AGENT++是一套用于開發(fā)SNMP Agent的C++庫(kù),它建立在SNMP++的基礎(chǔ)之上。AGENT++提供了完整的協(xié)議處理框架,提供了標(biāo)量對(duì)象和表對(duì)象等 MIB對(duì)象的基類,通過(guò)繼承用戶可以方便地定義MIB對(duì)象,通過(guò)派生的子類重載其中的虛函數(shù),根據(jù)系統(tǒng)的需要靈活控制程序。AGENT++包括的基本類包括Mib類、MibContext類、MibEntry類、MibLeaf類、MibTable類、MibTableRow類等。Mib類對(duì)象存放了整個(gè)系統(tǒng)的MIB,MIB可能由多個(gè)模塊構(gòu)成,每個(gè) MIB模塊存放在一個(gè)MibContext對(duì)象中。而開發(fā)SNMP代理的主要工作就是生成各種MibEntry類來(lái)獲取和設(shè)置系統(tǒng)的各種參數(shù)。

        2.AGENT++實(shí)例

        SNMP代理的功能是響應(yīng)網(wǎng)絡(luò)管理站的信息請(qǐng)求,返回一定的信息或根據(jù)請(qǐng)求設(shè)置某些信息。因此使用AGENT++來(lái)構(gòu)建SNMP代理可以分解為兩個(gè)內(nèi)容,首先是如何構(gòu)建程序的主體和必要部分,其次是如何擴(kuò)充該代理的額外功能,也即如何實(shí)現(xiàn)公有和私有MIB。

        程序的主體包括幾個(gè)部分。①初始化SNMP:創(chuàng)建類Snmpx的實(shí)例;②創(chuàng)建MIB:創(chuàng)建類MIB的實(shí)例;③注冊(cè)RequestList:創(chuàng)建類RequestList的一個(gè)實(shí)例,并在MIB實(shí)例中注冊(cè);④初始化 RequestList:Request List 需要 SNMP 消息處理部件來(lái)接收和發(fā)送SNMP消息,因此要把SNMP消息處理部件進(jìn)行注冊(cè);⑤添加MIB對(duì)象:根據(jù)需要添加所有的MIB對(duì)象;⑥進(jìn)入主循環(huán):負(fù)責(zé)處理來(lái)自網(wǎng)絡(luò)管理站的請(qǐng)求。

        擴(kuò)充私有MIB主要通過(guò)AGENT++中的MibEntry類及其繼承類來(lái)完成,普通的標(biāo)量采用 MibLeaf類來(lái)擴(kuò)充,而表格類采用MibTable和MibTableRow來(lái)擴(kuò)充。

        本文的 myTag例子用來(lái)設(shè)置和獲取主機(jī)上的一個(gè)標(biāo)志符(Tag),設(shè)置與獲取的具體操作由 getmyTag()和 setmyTag()函數(shù)實(shí)現(xiàn),該私有 Oid為“1.3.6.1.4.1.29427.0”。程序除了主干(斜體字部分)外,主要是通過(guò)MibLeaf的繼承類myTag來(lái)實(shí)現(xiàn)擴(kuò)充私有 MIB(粗體字部分),主要是自定義get_request()和set()這兩個(gè)成員函數(shù)。其中g(shù)et_request()函數(shù)是對(duì)應(yīng)去網(wǎng)絡(luò)管理站的“讀取信息”功能,而set()函數(shù)是對(duì)應(yīng)網(wǎng)絡(luò)管理站的“設(shè)置”功能。

        class myTag:public MibLeaf {

        public:

        myTag():MibLeaf(Oidx("1.3.6.1.4.1.29427.0"),

        READWRITE, new OctetStr("")) { }

        ~myTag() { }

        void get_request(Request *req, int ind)

        {

        char buf[64];getmyTag(buf);

        //獲得標(biāo)志符的實(shí)際操作函數(shù),結(jié)果存儲(chǔ)在buf中

        set_value(OctetStr(buf));

        //將該節(jié)點(diǎn)存儲(chǔ)的值設(shè)置為buf中存儲(chǔ)的字符串

        MibLeaf::get_request(req, ind);

        //由基類中的函數(shù)繼續(xù)處理

        }

        int set(const Vbx& vb)

        {

        //將節(jié)點(diǎn)中的值設(shè)置為請(qǐng)求中包含的參數(shù)

        if(0 != set_value(vb))

        return SNMP_ERROR_BAD_VALUE;

        char buf[64];

        get_value(buf);

        //將節(jié)點(diǎn)包含的值拷貝到buf中

        setmyTag(buf);

        //將系統(tǒng)標(biāo)志符值設(shè)置為buf的實(shí)際操作函數(shù)

        return SNMP_ERROR_SUCCESS; }};

        void main (int argc, char* argv[]) {

        int status;

        Snmp::socket_startup(); //初始化網(wǎng)絡(luò)配置

        Snmpx snmp(status,161); //創(chuàng)建Snmpx類的實(shí)例

        Mib* mib = new Mib(); //創(chuàng)建Mib類的實(shí)例

        mib->set_request_list(reqList);//初始化RequestList

        mib->add(new sysGroup()); //添加 Mib 子樹

        mib->add(new myTag()); //添加私有Mib

        reqList->set_snmp(&snmp);

        //將Snmpx的實(shí)例注冊(cè)到請(qǐng)求列表中

        for(;;) { //程序主循環(huán)

        Request* req= RequestList::receive();

        if(req) mib->process_request(req);

        }

        }

        (四)結(jié)語(yǔ)

        SNMP 協(xié)議是當(dāng)前網(wǎng)絡(luò)管理的事實(shí)標(biāo)準(zhǔn),本文簡(jiǎn)述了SNMP協(xié)議, 并分析了HP公司的SNMP++和AGENT++開發(fā)包,然后通過(guò)一個(gè)實(shí)例來(lái)說(shuō)明SNMP代理的開發(fā)過(guò)程。

        [1] William Stallins.SNMP 網(wǎng)絡(luò)管理[M].胡成松,汪凱,譯. 中國(guó)電力出版社.

        [2] Mani Subramanian.網(wǎng)絡(luò)管理[M].王松,周靖,譯.清華大學(xué)出版社.

        [3] AGENT++.AGENT++ Documentation 3.5.31[EB/OL].(2011-03).http://www.agentpp.com.

        [4] K. McCloghrie." Structure of Management Information Version 2".RFC 2578.(2011-03).

        TN915.07

        A

        1008-1151(2011)06-0040-02

        2011-03-23

        盧建平(1979-),男,廣東高州人,中國(guó)電信股份有限公司高州分公司助理工程師,研究方向?yàn)榫W(wǎng)絡(luò)管理。

        猜你喜歡
        設(shè)置管理
        棗前期管理再好,后期管不好,前功盡棄
        中隊(duì)崗位該如何設(shè)置
        加強(qiáng)土木工程造價(jià)的控制與管理
        如何加強(qiáng)土木工程造價(jià)的控制與管理
        7招教你手動(dòng)設(shè)置參數(shù)
        “這下管理創(chuàng)新了!等7則
        雜文月刊(2016年1期)2016-02-11 10:35:51
        本刊欄目設(shè)置說(shuō)明
        中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
        人本管理在我國(guó)國(guó)企中的應(yīng)用
        艦船人員編制的設(shè)置與控制
        性欧美丰满熟妇xxxx性久久久| 精品亚洲一区二区99| 国产自产在线视频一区| 国产三级久久精品三级91| 国产喷水1区2区3区咪咪爱av| 日韩一欧美内射在线观看| 国产精品无码久久AⅤ人妖| 亚洲成人一区二区av| 无码人妻一区二区三区兔费| 久草热8精品视频在线观看| 亚洲欧美国产成人综合不卡| 亚洲一区二区三区在线最新| 国产成人a∨激情视频厨房| 成熟丰满熟妇高潮xxxxx| 亚洲色婷婷综合开心网| 亚洲男同免费视频网站| 亚洲国产精品无码久久| 84pao强力打造免费视频34| 人妖熟女少妇人妖少妇| 亚洲国产精品久久婷婷| 鸭子tv国产在线永久播放| 国产中文制服丝袜另类| 丝袜美腿诱惑一二三区| 成人日韩熟女高清视频一区| 国产福利酱国产一区二区| 亚洲欧洲AV综合色无码| 日本师生三片在线观看| 亚洲国产成人av在线观看| 色婷婷七月| 亚洲成人色黄网站久久| 中国一级特黄真人片久久| 97成人碰碰久久人人超级碰oo| 久草热这里只有精品在线| 人妻人妇av一区二区三区四区| 无码区a∨视频体验区30秒| 91视频88av| 三级黄片一区二区三区| 脱了老师内裤猛烈进入| 国产免费又色又爽又黄软件| 日本韩国黄色三级三级| 午夜视频在线观看视频在线播放|