王慶喜 黃均樂 左楓
摘要:隨著網(wǎng)絡系統(tǒng)結構的日益復雜,實時管理交換機網(wǎng)絡設備臺賬并對其進行業(yè)務操作是一件很繁瑣的工作。該文簡要分析當前傳統(tǒng)的交換機運維管理方式,找到其不足之處,提出了運用JAVA SNMP4J開發(fā)包開發(fā)出一套IT網(wǎng)絡運維管理系統(tǒng)。該系統(tǒng)借助SNMP協(xié)議實時讀取交換機設備信息,并通過SSH協(xié)議操作交換機,極大地方便了網(wǎng)絡管理員和臺賬管理員的工作效率。
關鍵詞:SNMP;SNMP4;SSH;交換機
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)18-0235-03
Account Checking and Maintenance Management for Switch Based On SNMP4J
WANG Qing-xi, HUANG Jun-le, ZUO Feng
(Wuhan Institute of Marine Electric Propulsion Device, Wuhan 430064, China)
Abstract: With the increasing complexity of network architecture, real-time management of switch network equipment account and its business operations is a very tedious work. The paper analyzes the current conventional switch operation and maintenance management to find its shortcomings, we proposed the use of JAVA SNMP4J development kit to develop an IT network operation and maintenance management system. The system by means of SNMP protocol to read switch device information and operate the switch through the SSH protocol in real time, greatly facilitates the network administrator and the accounting administrator's working efficiency.
Key words: snmp; snmp4j; ssh; switch
在公司局域網(wǎng)內,IT信息化管理部門其中很重要的一項管理工作就是局域網(wǎng)內設備臺賬的實時管理及日常運維操作,其中尤其以交換機設備管理最難。目前傳統(tǒng)的交換機管理方式有兩種:第一種方式通過SecureCRT這種免費的第三方工具通過ssh協(xié)議連接各個交換機,通過命令行控制臺操作;第二種方式通過購買專業(yè)的商業(yè)交換機管理軟件如北塔公司的網(wǎng)管軟件進行交換機的日常監(jiān)控?,F(xiàn)有的兩種方式都不能夠有效的與我們設備臺賬有效的關聯(lián)起來進行設備臺賬的及時更新、維護。第一種以命令行的方式可以對交換機進行全部操作;第二種方式目前絕大部分只限于交換機的監(jiān)控管理、簡單的開啟、關閉功能,不具備對交換機業(yè)務操作功能。
對于臺賬管理員與交換機管理員來說,如果將交換機臺賬管理與交換機的運維管理有效緊密結合起來將會極大的提升工作效率,確保臺賬的準確性及運維管理的便利性。本文基于我們單位現(xiàn)實的交換機管理現(xiàn)狀,運用JAVA 平臺封裝了SNMP協(xié)議1[1]的SNMP4J 2[2]JAR包開發(fā)一套IT網(wǎng)絡運維管理系統(tǒng),對我單位的交換機設備臺賬與運維管理有效結合起來,提升臺賬管理員與交換機管理員的工作效率。
1 SNMP管理模型
SNMP4J是封裝了SNMP協(xié)議的JAVA實現(xiàn)JAR包,核心思想是SNMP協(xié)議。SNMP的全稱為簡單網(wǎng)絡管理協(xié)議(Simple Network Management Protocol),SNMP基于TCP/IP協(xié)議工作,對網(wǎng)絡中支持SNMP協(xié)議的設備進行管理,SNMP 有SNMPV1,SNMPV2,SNMPV3三種協(xié)議版本3[3],SNMP工作原理如圖1所示。
SNMP管理模型主要由三個部分組成:管理站NMS、被管理站Agent和管理信息庫MIB4[4]。管理進程和代理進程通過SNMP的協(xié)議數(shù)據(jù)單元PDU(ProtOOOl Data Unit)進行通信,管理進程通過代理進程對MIB的操作來管理被管理設備5[5]。
NMS,即SNMP管理站(又稱為SNMP管理者),是一個利用SNMP協(xié)議對網(wǎng)絡設備進行管理和監(jiān)控的系統(tǒng)。NMS既可以指某個網(wǎng)絡設備中執(zhí)行管理功能的一個應用程序,也可以指一臺專門用來進行網(wǎng)絡管理的服務器。
Agent,即SNMP代理,是一個運行在被管設備上的軟件模塊,用于維護被管理設備的信息數(shù)據(jù)(即MIB),還負責接收、處理、響應來自NMS的請求報文,也可以主動發(fā)送一些通知報文給NMS。
MIB,即管理信息庫,每個Agent都擁有自己的MIB。MIB是一種對象數(shù)據(jù)庫,由設備所維護的被管理對象組成,并定義了管理對象的一系列屬性:名稱、訪問權限和數(shù)據(jù)類型等。在MIB中,被管理對象按照層次式樹形結構組織。
SNMP協(xié)議,是用來規(guī)定NMS和Agent之間是如何交換管理信息的應用層協(xié)議,它定義了SNMP數(shù)據(jù)包的格式、封裝及傳輸細節(jié)。
SNMP協(xié)議以Get-Set方式替代了復雜的命令集,利用基本操作演繹出全部網(wǎng)管操作,實現(xiàn)網(wǎng)絡管理員的網(wǎng)管需求。
Get (讀)操作:由NMS向Agent發(fā)出請求,讀取被管設備的配置和狀態(tài)信息。
Set (寫)操作:由NMS向Agent發(fā)出請求,遠程修改被管設備的配置參數(shù)。
Trap操作:由Agent主動向NMS發(fā)送Trap報文。當被管設備發(fā)生比較重要的事件時(如接口狀態(tài)改變、呼叫成功等),Agent就會主動通知NMS。
2 交換機數(shù)據(jù)收集環(huán)境配置
1)交換機必須開啟SNMP協(xié)議
SNMP4J是依托于SNMP協(xié)議的,需要所有的管理設備必須開啟SNMP協(xié)議。不同的交換機開啟協(xié)議命令不一致,如H3C S3600-28P-SI開啟SNMP協(xié)議如下代碼,
#
snmp-agent
snmp-agent local-engineid 800063A200238913C9346877
snmp-agent community write canwrite
snmp-agent community read readonly
snmp-agent sys-info version all
snmp-agent target-host trap address udp-domain 192.12.150.11 params securityname readonly
snmp-agent target-host trap address udp-domain 192.12.150.12 params securityname readonly
snmp-agent trap source NULL0
#
該交換機設置了寫權限community canwrite,讀權限community readonly;開啟了兼容所有的snmpv1,snmpv2,snmpv3 version。主動trap報送數(shù)據(jù)包的地址為192.12.150.11,192.12.150.12。
2)必須允許部署的服務器IP可以訪問交換機
要取得交換機的實時臺賬以及對交換機進行日常維護操作需要,需要服務器的IP地址能夠訪問交換機,服務器的IP地址為192.12.150.11,則需要在交換機上配置規(guī)則如下。
#
acl number 2000
rule 10 permit source 192.12.150.11 0
rule 20 permit source 192.12.150.12 0
#
3 基于SNMP4J交換機運維設計實現(xiàn)
SNMP4J獲取交換機信息并進行操作的核心是獲取MIB信息庫的OID信息,不同的品牌型號交換機對應的OID會有不同。因此,需要需要將交換機對應的OID信息建立基礎數(shù)據(jù)字典,以便后續(xù)對其操作。MIB對象的樹型結構組織見圖2所示。Mib-2節(jié)點對應的OID為 1.3.6.1.2.1,子節(jié)點system OID為: 1.3.6.1.2.1.1,interfaces OID為:1.3.6.1.2.1.2。
1)Java程序獲取交換機設備信息部分代碼如下:
PDU pduRead = new PDU ();
pduRead.add(new VariableBinding(new OID(“1.3.6.1.2.1.1.1”));//查詢交換機型號信息。
pduRead.add (new VariableBinding(new OID(“1.3.6.1.2.1.1.2”));//查詢交換機OID信息。
pduRead.setType (PDU.GET);
ResponseEvent respEvntIndex = snmp.send(pduRead, target); Vector
VariableBinding ifAdminStatus = recVBs.elementAt(0);//取得交換機型號信息
VariableBinding ifOperStatus = recVBs.elementAt(1);//取得交換機OID信息
2)開啟關閉交換機端口
交換機的開啟關閉需要獲取交換機的ifAdminStatus,OID為 1.3.6.1.2.1.2.2.1.7,該OID值有3個:up(1), down(2), testing(3),只需要設置對應的值。對應的交換機端口開啟關閉部分代碼如下:
PDU pduIf = new PDU ();
Variable varb= (Variable) new Integer32 (Integer.parseInt (operation)).clone ();
pduIf.add (new VariableBinding (new OID (oidStr), varb));
pduIf.setType (PDU.SET);
ResponseEvent respEvntIndex2 = snmp.send (pduIf, target);
3)操作交換機
運用snmp4j結合Ganymed-ssh2-build210使用SSH協(xié)議對交換機進行用戶界面操作。需要網(wǎng)絡管理員輸入登錄交換機的用戶名及密碼,或者通過數(shù)據(jù)字典的方式存入數(shù)據(jù)庫中。
4)交換機臺賬實施核對
在線獲取交換機本身的信息,通過IP地址與臺賬中的交換機信息匹配,將每個端口開啟關閉狀態(tài),連接的計算機設備信息動態(tài)顯示,極大地方便了網(wǎng)絡管理員、臺賬管理員的工作。
4 結束語
基于SNMP協(xié)議及SSH協(xié)議,本文實現(xiàn)了交換機的全面運維管理,基本上解決了臺賬管理員實時核對交換機臺賬的困擾;根據(jù)實時臺賬的端口連接設備信息, 網(wǎng)絡管理員可以比較快速準確的實現(xiàn)計算機設備MAC地址、IP地址綁定等日常對交換機的業(yè)務操作。
參考文獻:
[1] 陳建國. 基于SNMP的計算機性能監(jiān)控系統(tǒng)設計與實現(xiàn)[J]. 福建工程學院學報, 2014, 3(12): 225-231.
[2] 吳二勇, 栗海玉. 面向構建的SNMP4J網(wǎng)絡管理模塊開發(fā)[J]. 河南科學, 2012, 4(30): 477-480.
[3] 高飛. 基于SNMP的網(wǎng)絡管理應用研究[J]. 軟件導刊, 2014, 3(13): 130-133.
[4] 劉潤苗,鮑建波, 等. SNMP在配電自動化領域的應用和意義[J]. 電力系統(tǒng)及其自動化, 2014, 3(36): 90-93.
[5] 丁云正. Windows平臺上訪問SNMP變量的方法[J]. 現(xiàn)代計算機, 2010(5).