APP下载

基于SNMP4J的交换机台账核对及运维管理

2016-11-02王庆喜黄均乐左枫

电脑知识与技术 2016年18期
关键词:交换机

王庆喜 黄均乐 左枫

摘要:随着网络系统结构的日益复杂,实时管理交换机网络设备台账并对其进行业务操作是一件很繁琐的工作。该文简要分析当前传统的交换机运维管理方式,找到其不足之处,提出了运用JAVA SNMP4J开发包开发出一套IT网络运维管理系统。该系统借助SNMP协议实时读取交换机设备信息,并通过SSH协议操作交换机,极大地方便了网络管理员和台账管理员的工作效率。

关键词: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

在公司局域网内,IT信息化管理部门其中很重要的一项管理工作就是局域网内设备台账的实时管理及日常运维操作,其中尤其以交换机设备管理最难。目前传统的交换机管理方式有两种:第一种方式通过SecureCRT这种免费的第三方工具通过ssh协议连接各个交换机,通过命令行控制台操作;第二种方式通过购买专业的商业交换机管理软件如北塔公司的网管软件进行交换机的日常监控。现有的两种方式都不能够有效的与我们设备台账有效的关联起来进行设备台账的及时更新、维护。第一种以命令行的方式可以对交换机进行全部操作;第二种方式目前绝大部分只限于交换机的监控管理、简单的开启、关闭功能,不具备对交换机业务操作功能。

对于台账管理员与交换机管理员来说,如果将交换机台账管理与交换机的运维管理有效紧密结合起来将会极大的提升工作效率,确保台账的准确性及运维管理的便利性。本文基于我们单位现实的交换机管理现状,运用JAVA 平台封装了SNMP协议1[1]的SNMP4J 2[2]JAR包开发一套IT网络运维管理系统,对我单位的交换机设备台账与运维管理有效结合起来,提升台账管理员与交换机管理员的工作效率。

1 SNMP管理模型

SNMP4J是封装了SNMP协议的JAVA实现JAR包,核心思想是SNMP协议。SNMP的全称为简单网络管理协议(Simple Network Management Protocol),SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理,SNMP 有SNMPV1,SNMPV2,SNMPV3三种协议版本3[3],SNMP工作原理如图1所示。

SNMP管理模型主要由三个部分组成:管理站NMS、被管理站Agent和管理信息库MIB4[4]。管理进程和代理进程通过SNMP的协议数据单元PDU(ProtOOOl Data Unit)进行通信,管理进程通过代理进程对MIB的操作来管理被管理设备5[5]。

NMS,即SNMP管理站(又称为SNMP管理者),是一个利用SNMP协议对网络设备进行管理和监控的系统。NMS既可以指某个网络设备中执行管理功能的一个应用程序,也可以指一台专门用来进行网络管理的服务器。

Agent,即SNMP代理,是一个运行在被管设备上的软件模块,用于维护被管理设备的信息数据(即MIB),还负责接收、处理、响应来自NMS的请求报文,也可以主动发送一些通知报文给NMS。

MIB,即管理信息库,每个Agent都拥有自己的MIB。MIB是一种对象数据库,由设备所维护的被管理对象组成,并定义了管理对象的一系列属性:名称、访问权限和数据类型等。在MIB中,被管理对象按照层次式树形结构组织。

SNMP协议,是用来规定NMS和Agent之间是如何交换管理信息的应用层协议,它定义了SNMP数据包的格式、封装及传输细节。

SNMP协议以Get-Set方式替代了复杂的命令集,利用基本操作演绎出全部网管操作,实现网络管理员的网管需求。

Get (读)操作:由NMS向Agent发出请求,读取被管设备的配置和状态信息。

Set (写)操作:由NMS向Agent发出请求,远程修改被管设备的配置参数。

Trap操作:由Agent主动向NMS发送Trap报文。当被管设备发生比较重要的事件时(如接口状态改变、呼叫成功等),Agent就会主动通知NMS。

2 交换机数据收集环境配置

1)交换机必须开启SNMP协议

SNMP4J是依托于SNMP协议的,需要所有的管理设备必须开启SNMP协议。不同的交换机开启协议命令不一致,如H3C S3600-28P-SI开启SNMP协议如下代码,

#

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报送数据包的地址为192.12.150.11,192.12.150.12。

2)必须允许部署的服务器IP可以访问交换机

要取得交换机的实时台账以及对交换机进行日常维护操作需要,需要服务器的IP地址能够访问交换机,服务器的IP地址为192.12.150.11,则需要在交换机上配置规则如下。

#

acl number 2000

rule 10 permit source 192.12.150.11 0

rule 20 permit source 192.12.150.12 0

#

3 基于SNMP4J交换机运维设计实现

SNMP4J获取交换机信息并进行操作的核心是获取MIB信息库的OID信息,不同的品牌型号交换机对应的OID会有不同。因此,需要需要将交换机对应的OID信息建立基础数据字典,以便后续对其操作。MIB对象的树型结构组织见图2所示。Mib-2节点对应的OID为 1.3.6.1.2.1,子节点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 recVBs = (Vector) respEvntIndex.getResponse().getVariableBindings();

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协议对交换机进行用户界面操作。需要网络管理员输入登录交换机的用户名及密码,或者通过数据字典的方式存入数据库中。

4)交换机台账实施核对

在线获取交换机本身的信息,通过IP地址与台账中的交换机信息匹配,将每个端口开启关闭状态,连接的计算机设备信息动态显示,极大地方便了网络管理员、台账管理员的工作。

4 结束语

基于SNMP协议及SSH协议,本文实现了交换机的全面运维管理,基本上解决了台账管理员实时核对交换机台账的困扰;根据实时台账的端口连接设备信息, 网络管理员可以比较快速准确的实现计算机设备MAC地址、IP地址绑定等日常对交换机的业务操作。

参考文献:

[1] 陈建国. 基于SNMP的计算机性能监控系统设计与实现[J]. 福建工程学院学报, 2014, 3(12): 225-231.

[2] 吴二勇, 栗海玉. 面向构建的SNMP4J网络管理模块开发[J]. 河南科学, 2012, 4(30): 477-480.

[3] 高飞. 基于SNMP的网络管理应用研究[J]. 软件导刊, 2014, 3(13): 130-133.

[4] 刘润苗,鲍建波, 等. SNMP在配电自动化领域的应用和意义[J]. 电力系统及其自动化, 2014, 3(36): 90-93.

[5] 丁云正. Windows平台上访问SNMP变量的方法[J]. 现代计算机, 2010(5).

猜你喜欢

交换机
更换汇聚交换机遇到的问题
基于中兴ZXR10-3950交换机的一种典型Vlan组网配置
基于地铁交换机电源设计思考
修复损坏的交换机NOS
实现双核心交换机冗余备份
二层虚拟交换机行为模式
应用与配置实例
使用链路聚合进行交换机互联
缔造工业级的强悍——评测三旺通信IPS7110-2GC-8PoE工业交换机
程控交换机的维护及管理探析