鄧江 安金晟
(91550部隊遼寧大連 116023)
基于Web和SNMP的網(wǎng)絡(luò)用戶管理系統(tǒng)
鄧江 安金晟
(91550部隊遼寧大連 116023)
現(xiàn)有的網(wǎng)絡(luò)管理系統(tǒng)對于園區(qū)網(wǎng)中的終端用戶缺乏有效的管理手段,滿足不了當前園區(qū)網(wǎng)用戶管理的需要。將Web技術(shù)與SNMP網(wǎng)絡(luò)管理技術(shù)相結(jié)合,提出了一種基于B/S結(jié)構(gòu)的網(wǎng)絡(luò)管理模式,并采用ASP.net MVC3框架設(shè)計和實現(xiàn)了一個基于SNMP協(xié)議的Web網(wǎng)絡(luò)用戶管理系統(tǒng),在Web平臺上將設(shè)備管理與用戶管理統(tǒng)一結(jié)合,通過軟硬結(jié)合加強對網(wǎng)絡(luò)用戶的管理,減輕網(wǎng)絡(luò)管理員的負擔。
SNMP WBM Web MVC WCF用戶管理
園區(qū)網(wǎng)和中大型企業(yè)機構(gòu)網(wǎng)絡(luò)用戶數(shù)多、類別復(fù)雜及分布廣,對網(wǎng)絡(luò)用戶的入網(wǎng)管理維護工作復(fù)雜困難,而現(xiàn)有的網(wǎng)絡(luò)管理系統(tǒng)一般都是按OSI模型的功能分塊,側(cè)重于故障、配置、計費、性能和安全等技術(shù)性管理,對于園區(qū)網(wǎng)中大量的終端用戶缺乏有效的管理手段,滿足不了當前園區(qū)網(wǎng)管理的需要[1]。
利用基于Web的SNMP網(wǎng)絡(luò)管理技術(shù),實現(xiàn)一種通用的、具備開放性和集成化的網(wǎng)絡(luò)管理平臺。對網(wǎng)絡(luò)設(shè)備的管理使用SNMP網(wǎng)絡(luò)管理技術(shù),同時基于Web平臺,充分利用基于Web服務(wù)的網(wǎng)絡(luò)管理模型所具有的分布性、易擴展和易集成等特性[2],在Web平臺上對用戶終端的IP地址,入網(wǎng)位置(包括房間、配線架位置及交換機端口等)進行記錄查詢,使網(wǎng)絡(luò)端口+配線架端口+用戶身份+位置信息在WEB管理界面自動生成,快速定位故障,實現(xiàn)用戶終端的細粒度管理,提高網(wǎng)絡(luò)管理人員的管理效率。
2.1 SNMP網(wǎng)絡(luò)管理技術(shù)介紹
SNMP是在1988年被制定,并被Internet體系結(jié)構(gòu)委員會(IAB)采納作為一個短期的網(wǎng)絡(luò)管理解決方案,但由于SNMP的簡單性,目前絕大多數(shù)廠商的網(wǎng)絡(luò)產(chǎn)品如交換機和路由器等都支持SNMP協(xié)議,SNMP已經(jīng)成為網(wǎng)絡(luò)管理領(lǐng)域中的工業(yè)標準。一套完整的SNMP系統(tǒng)主要包括管理信息庫(MIB)、管理信息結(jié)構(gòu)(SMI)及SNMP報文協(xié)議。
①管理信息庫MIB:管理信息庫MIB是被管理對象的集合,它定義了被管理對象的一系列屬性:名稱、訪問權(quán)限和數(shù)據(jù)類型等。每個SNMP被管設(shè)備(Agent)都有自己的MIB,MIB是NMS(網(wǎng)管系統(tǒng))和Agent之間的溝通橋梁;
②管理信息結(jié)構(gòu):SMI定義了SNMP框架所用信息的組織、組成和標識,在SMI中定義了簡單類型、簡單結(jié)構(gòu)類型和應(yīng)用類型等數(shù)據(jù)類型,為描述MIB對象和描述協(xié)議怎樣交換信息奠定了基礎(chǔ);
③SNMP報文:SNMP報文在管理端與被管設(shè)備之間交互,用來設(shè)置和查詢被管設(shè)備信息,SNMP報文主要有5種類型,管理端發(fā)給被管設(shè)備的有g(shù)et、get-next、set三種,被管設(shè)備用get-response報文回應(yīng),同時被管設(shè)備主動發(fā)出trap操作報文,通知管理端有某些事情發(fā)生[3]。
傳統(tǒng)的SNMP網(wǎng)絡(luò)管理系統(tǒng)大多基于C/S(Client/ Server)結(jié)構(gòu),這種結(jié)構(gòu)在技術(shù)上雖然很成熟,但該結(jié)構(gòu)存在靈活性差、升級部署困難和維護工作量大等缺陷。利用當前成熟的Web技術(shù),以Web服務(wù)器為中心,集成各類設(shè)備網(wǎng)管平臺的"Web分布式網(wǎng)絡(luò)管理系統(tǒng)"是現(xiàn)代網(wǎng)絡(luò)管理技術(shù)的發(fā)展趨勢,系統(tǒng)不要求專用的客戶端應(yīng)用程序,支持分布式管理,可以動態(tài)擴展和更新,使得管理更加靈活自如,管理人員可以在任何地方通過多種方式實施網(wǎng)絡(luò)管理,并且可以通過Web服務(wù)的方式與其他應(yīng)用相結(jié)合形成新的網(wǎng)絡(luò)管理應(yīng)用[4]。
2.2 基于Web的SNMP網(wǎng)絡(luò)管理系統(tǒng)
基于Web的網(wǎng)絡(luò)管理系統(tǒng)(WBM)有2種實現(xiàn)方案,一種是嵌入式方案,另一種是基于代理的方案[5]。嵌入式方案是將Web能力嵌入到被管設(shè)備中,此種方案對設(shè)備有限制,擴展性不好,不適合本系統(tǒng)要求;基于代理的方案是在網(wǎng)絡(luò)管理之上疊加一個Web服務(wù)器,使其成為瀏覽器用戶的網(wǎng)絡(luò)管理的代理者,方案支持對多種網(wǎng)絡(luò)設(shè)備的管理,同時支持與其他應(yīng)用的擴展融合,本系統(tǒng)采用此方案。
基于代理的WBM方案模型包括Web瀏覽器、Web服務(wù)器、WBM應(yīng)用、網(wǎng)絡(luò)管理平臺和被管設(shè)備5個部分。模型結(jié)構(gòu)圖如圖1所示。
圖1 基于Web網(wǎng)絡(luò)管理模型
整個模型各部分功能及運行流程如下:
①網(wǎng)絡(luò)管理人員通過Web瀏覽器向Web服務(wù)器發(fā)送HTTP請求,對設(shè)備進行監(jiān)視、配置和管理;
②Web服務(wù)器接收到瀏覽器的請求后通過WBM應(yīng)用提供的Web服務(wù)接口調(diào)用相應(yīng)WBM應(yīng)用,將獲得的管理信息呈現(xiàn)給網(wǎng)絡(luò)管理人員;
③WBM應(yīng)用通過網(wǎng)絡(luò)管理平臺上提供的API接口獲取網(wǎng)絡(luò)管理信息,再通過Web服務(wù)接口把管理信息轉(zhuǎn)換為XML形式返回給Web服務(wù)器,由Web服務(wù)器響應(yīng)給Web瀏覽器;
④網(wǎng)絡(luò)管理平臺通過SNMP與被管設(shè)備通信,收集、過濾和處理各種管理信息,并維護網(wǎng)絡(luò)管理平臺數(shù)據(jù)庫;
⑤被管設(shè)備(Agent)的主要功能有2個,一是負責搜集其所代理的設(shè)備的信息,并上傳至網(wǎng)絡(luò)管理平臺;二是負責響應(yīng)網(wǎng)絡(luò)管理平臺發(fā)出的管理命令,對設(shè)備進行管理操作。
根據(jù)基于代理的WBM方案模型,系統(tǒng)主要實現(xiàn)3個部分的功能,分別是Web服務(wù)器、WBM應(yīng)用和網(wǎng)絡(luò)管理平臺,為保證系統(tǒng)結(jié)構(gòu)靈活,Web服務(wù)器采用MVC設(shè)計模式,WBM應(yīng)用和網(wǎng)絡(luò)管理平臺組合到一起,單獨實現(xiàn),整個系統(tǒng)的框架如圖2所示。
圖2 系統(tǒng)設(shè)計框架
視圖(View)為網(wǎng)絡(luò)管理員執(zhí)行管理任務(wù)提供了靈活和統(tǒng)一的用戶界面,顯示設(shè)備和人員管理信息;控制器(Control)響應(yīng)用戶的操作請求,根據(jù)相應(yīng)的指令分別查詢或修改數(shù)據(jù)庫,或者調(diào)用WBM應(yīng)用提供的Web Service服務(wù),并將操作結(jié)果返回到視圖,最終呈現(xiàn)給用戶;模型(Model)負責數(shù)據(jù)庫操作和數(shù)據(jù)邏輯及驗證。WBM應(yīng)用與網(wǎng)絡(luò)管理平臺組合到一起,WBM應(yīng)用根據(jù)相應(yīng)需求將網(wǎng)絡(luò)管理平臺的一些功能分別包裝為Web Service接口便于系統(tǒng)調(diào)用,同時借助Web Service的優(yōu)點提供了系統(tǒng)的靈活性和擴展性優(yōu)勢。
4.1 Web服務(wù)器的實現(xiàn)
系統(tǒng)的Web服務(wù)器采用ASP.NET MVC3框架,ASP. NET MVC3框架由微軟官方發(fā)布,是一個提供基于MVC模式的ASP.NET應(yīng)用程序框架[6]。系統(tǒng)使用Visual 2010來開發(fā),直接使用Visual 2010提供的ASP.NET MVC3模板,分別在模板中的View、Control和Model三個目錄下進行相應(yīng)的功能開發(fā)。
①視圖的實現(xiàn)在解決方案的View目錄下,用于用戶交互界面(UI)顯示,采用Razor視圖引擎,文件擴展名為.cshtml,是一個純的HTML模板,本系統(tǒng)采用樣式來簡化視圖界面的設(shè)計,在樣式內(nèi)設(shè)置的Skin(皮膚)以及一些頁面顯示的風格等,根據(jù)不同引用,來呈現(xiàn)出不同的風格,很好地體現(xiàn)了MVC架構(gòu)思想的風格;
②模型的實現(xiàn)在解決方案Model目錄下,主要實現(xiàn)數(shù)據(jù)庫的操作,數(shù)據(jù)庫的操作使用LINQ TO SQL技術(shù),語言集成查詢(Language Integrated Query,LINQ)是微軟推出的新一代查詢技術(shù),LINQ to SQL提供了輕量級的對象關(guān)系映射框架,可以對SQL Server數(shù)據(jù)庫快速開發(fā),在Model目錄下定義一個映射到關(guān)系對象的LINQ to SQL類,將數(shù)據(jù)庫中的各種表映射為其子類,使用LINQ to SQL類可以非常方便操縱數(shù)據(jù)庫里的數(shù)據(jù)。同時為每個表定義一個代理(Repository)類和一個Session代理類,代理類實現(xiàn)表的查詢、修改和刪除等業(yè)務(wù)邏輯操作,Session代理類將數(shù)據(jù)庫表的查詢數(shù)據(jù)存入服務(wù)器Session中,提高用戶數(shù)據(jù)操作反應(yīng)速度。
在數(shù)據(jù)庫中分別包含用戶信息表和終端信息表,用戶信息由管理人員維護,終端信息通過網(wǎng)絡(luò)管理平臺定時掃描網(wǎng)絡(luò)設(shè)備來更新,將二者相結(jié)合,可對網(wǎng)絡(luò)用戶入網(wǎng)情況進行直觀查詢管控;
③控制器的實現(xiàn)在解決方案Controller目錄下,控制用戶的交互,當用戶發(fā)出請求,根據(jù)請求借助模型來完成數(shù)據(jù)庫操作或調(diào)用外部WBM應(yīng)用的Web Service服務(wù)獲取數(shù)據(jù),最終選擇一個視圖作為數(shù)據(jù)輸出顯示。系統(tǒng)同時在控制器中實現(xiàn)了用戶身份認證及訪問權(quán)限控制,擴展ASP.NET自帶的Membership類實現(xiàn)身份認證,可通過表單和域用戶等2種方式進行身份認證。
4.2 WBM應(yīng)用和網(wǎng)絡(luò)管理平臺的實現(xiàn)
將WBM應(yīng)用和網(wǎng)絡(luò)管理平臺功能組合到一起,單獨實現(xiàn)一個系統(tǒng),采用Visual 2010開發(fā),系統(tǒng)中的網(wǎng)絡(luò)管理平臺功能使用SnmpSharpNet組件開發(fā),SnmpSharpNet是基于C#開發(fā)的開源組件,支持SNMP各種版本和各種指令。將SnmpSharpNet作為一個引用導(dǎo)入系統(tǒng)解決方案,創(chuàng)建snmp.cs文件,實現(xiàn)一個SNMP代理類,對SNMP操作指令如Get、Set和Walk等指令進行了包裝,同時針對不同型號的網(wǎng)絡(luò)設(shè)備分別實現(xiàn)了端口狀態(tài)查詢、拓撲發(fā)現(xiàn)、端口綁定和終端位置查詢等操作功能。
WBM應(yīng)用通過Web Service服務(wù)的方式提供Web服務(wù)器對網(wǎng)絡(luò)管理平臺的管理操作,Web Service具備跨平臺的可互操作性特點。利用WBM應(yīng)用提供的網(wǎng)絡(luò)管理功能可被不同平臺和不同應(yīng)用的系統(tǒng)調(diào)用,具備很好的開發(fā)性和擴展性。Web Service功能通過Visual 2010的WCF服務(wù)庫來開發(fā)實現(xiàn),將WCF服務(wù)庫寄宿在Windows服務(wù)中,同時在Windows服務(wù)中實現(xiàn)后臺定時掃描的任務(wù)。
系統(tǒng)通過定時掃描網(wǎng)絡(luò)設(shè)備的ARP表和端口信息表的方式來實現(xiàn)對用戶入網(wǎng)情況進行監(jiān)控,定時掃描通過后臺任務(wù)的方式進行,通過線程來完成,首先定義一個接口(ISchedulerJob)用來標準化事件的任務(wù),然后定義不同的任務(wù)類來實現(xiàn)接口,系統(tǒng)中定義了GetArpListJob類用來掃描ARP表,GetIfListJob類來掃描設(shè)備端口,然后在一個類SchedulerConfiguration中將多個任務(wù)整合到一起,在Scheduler類中依次執(zhí)行SchedulerConfiguration中的任務(wù),最后新建一個后臺線程任務(wù)new Threading.ThreadStart(scheduler.Start)來執(zhí)行定時掃描操作。
介紹了利用ASP.NET MVC3框架構(gòu)建基于Web和SNMP的網(wǎng)絡(luò)用戶管理系統(tǒng),系統(tǒng)使用WCF應(yīng)用框架來實現(xiàn)WBM應(yīng)用接口,具備開放式的架構(gòu)和通用的底層平臺,使得其網(wǎng)絡(luò)管理功能靈活,具備很好的擴展性。系統(tǒng)通過后臺定時掃描設(shè)備端口的方式,對網(wǎng)絡(luò)終端進行全時段監(jiān)控,同時結(jié)合位置信息、用戶其他信息的Web平臺管理,實現(xiàn)了直觀、準確和精細的入網(wǎng)用戶管理功能,提升了用戶的管理層次,下一步可增加對安全、業(yè)務(wù)和流量方面的管理,滿足園區(qū)網(wǎng)絡(luò)不斷發(fā)展的管理需求。
[1]黃家林,梅震琨等.基于用戶行為管理的園區(qū)網(wǎng)管理模型[J].計算機工程與設(shè)計,2009,30(15):3653-3656.
[2]李曉賓,李淑珍.一種基于SNMP的Web網(wǎng)絡(luò)管理系統(tǒng)的設(shè)計與實現(xiàn)[J].微機算計信息,2010,26(2-3),142-143.
[3]徐國輝.基于Linux環(huán)境的簡單網(wǎng)絡(luò)管理協(xié)議的實現(xiàn)[J].通信技術(shù),2010,43(7):136-137.
[4]曹生林,柳立言.下一代網(wǎng)絡(luò)管理模型研究[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2010(11):20-22.
Network User Management System Based on Web and SNMP
DENG Jiang-an JIN Sheng
(Unit 91550,PLA,Dalian Liaoning 116023,China)
The existing network management systems lack the effective means to manage the end-users in campus network,and can't meet the management needs of current campus network users.Combing the Web technology with the SNMP network management technology,this paper proposes a network management mode based on B/S structure,and uses ASP.NET MVC3 framework to design and implement a Web network user management system based on SNMP protocol。This system combines the equipment management and the user management on Web platform,strengthens the network user management through the combination of software and hardware and reduces the burden of network administrators.
SNMP;WBM;Web;MVC;WCF;user management
TP393.07
A
1008-1739(2014)23-58-3
定稿日期:2014-11-12