SNMP范文10篇

时间:2023-03-27 11:30:38

SNMP范文篇1

关键词网络拓扑;简单网络管理协议;管理信息库;网络管理;三层拓扑发现;二层拓扑发现

1引言

现代计算机网络迅猛发展,网络管理的任务也日趋复杂,而保证网络管理系统高效运行的基础正是网络拓扑发现。网络拓扑表现为计算机网络中各设备之间的连接关系。网络拓扑发现更能提高网络故障管理、计量管理、配置和名称管理、性能管理和安全管理的性能,其原理是利用协议收集网络中各设备的信息,通过某种算法生成完整的拓扑结构显示出来。本文介绍的就是基于SNMP协议的网络拓扑发现。

2简单网络管理协议SNMP及MIB信息库概述

2.1SNMP概述

SNMP名为“简单网络管理协议”,SNMP基于TCP/IP协议工作,对网络中支持SNMP协议的设备进行管理,通过SNMP协议,管理员可以与各种类型支持SNMP协议的设备进行通信,从而进行网络管理。在具体实现上,SNMP为管理员提供了一个网管平台(NMS),又称为管理站或管理器,负责网管命令发出,数据存储及数据分析等。被监管的设备上则运行一个SNMP(Agent),又称为器,实现设备与管理站的SNMP通信,图1描述了SNMP协议的逻辑结构[1]。

图1SNMP协议的逻辑结构

1990年5月,RFC1157定义了SNMP的第一个版本SNMPv1。RFC1157和另一个关于管理信息的文件RFC1155一起提供了一种监控和管理计算机网络的系统方法。因此,SNMP得到了广泛应用,并成为网络管理的事实上的标准。90年代初SNMP得到了迅猛发展,同时也暴露出了明显的不足,例如难以实现大量的数据传输,缺少身份验证和加密机制。因此,1993年了SNMPv2,提高效率和性能,同时还支持分布式网络的管理等,但是,SNMPv2并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。1996年的SNMPv2c是SNMPv2的修改版本,功能增强了,但是安全性能仍没有得到改善,继续使用SNMPv1的基于明文密钥的身份验证方式。IETFSNMPv3工作组于1998年1月提出了互联网建议RFC2271-2275,正式形成SNMPv3。这一系列文件定义了包含SNMPv1、SNMPv2所有功能在内的体系框架和包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。可以说,SNMPv3是在SNMPv2基础之上增加了安全和管理机制。

2.2MIB信息库

TCP/IP网络管理系统的基础是含有被管理元素信息的数据库,其在TCP/IP和OSI环境下称为MIB。每个被管理资源表示成一个对象,MIB是这些对象的结构化集合。MIB是一个树型结构的数据库。网络中的每个系统,比如工作站,服务器,路由器等,都维护一个可以反映被管理资源在系统中状态的信息库,通过读取信息库中对象的值,管理站可以监视系统中的资源,也可以通过修改某些值来控制系统中的资源。信息库中对象的类型,意义由MIB定义,管理站和端按同一个MIB作为接口通信,可以互相理解数据的意义,实现管理。

MIB树的顶级对象有三个,即ccitt,iso和这两个组织的联合体joint-iso-ccitt(见图2)。在iso的下面有一个美国国防部dod(DepartmentofDefense)的子树(标号是6),再下面就是Internet(标号是1)。在只讨论Internet中的对象时,可只画出Internet以下的子树(图中的虚线方框),并在Internet结点旁边标注上{1.3.6.1}即可。在Internet结点下面的第二个结点是mgmt(管理),标号是2。再下面是管理信息库,原先的结点名是mib。1991年定义了新的版本MIB-II,故结点名现改为mib-2,其标识为{1.3.6.1.2.1},或{Internet(1).2.1}。这种标识为对象标识符。最初的结点mib将其所管理的信息分为8个类别,现在mib-2所包含的信息类别已超过40个。应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。

图2

2.3SNMP支持的操作

SNMP共有5种操作:

(1)GetRequest读对象值操作,使管理站能够从被管理设备的中检索对象的值。

(2)GetNextRequest读取当前对象的下一个可读取的对象的实例值。

(3)SetRequest管理站更新中对象的值。

(4)GetResponse对GetRequest/GetNextRequest/SetRequest3种操作的应答。

(5)Trap向管理站发送对象值。

3基于SNMP协议的拓扑发现

利用SNMP进行拓扑发现实质上就是扮演管理者角色的工作站读取被管理设备的MIB库中相关信息来实现的。每个设备维护一个MIB库,里面由此设备相关信息,使用SNMP管理网络最大的优点就是可以实时发现网络拓扑的变更,但也有其局限性,即被管理的设备都要支持SNMP[2]。在网络拓扑结构中,最主要的是路由器之间的连接关系和子网划分情况,所以网络拓扑关系构建的要点如下:

(1)在网络拓扑关系中,主要的组成元素包括网络节点设备,如路由器、交换机以及子网、网桥、网络中的主机等。

(2)路由器、交换机及其端口配置是构建拓扑关系的关键。

网络结构是分层次管理的,所以拓扑发现也应以分层方式来发现。路由器工作在网络层并且通常我们称网络层为第三层,所以以发现路由器和子网连接结构的拓扑发现我们称作三层拓扑发现,子网中主机发现也属于三层拓扑发现,因为采用的方法主要还是依据IP地址操作来发现的;而处于数据链路层的交换机,网桥获取我们可以称作二层拓扑发现。

3.1三层拓扑发现

三层拓扑发现主要是通过对路由表的读取来获取相关IP信息来实现,图3是一个路由表信息图。

图3路由表信息图

Destination表示路由的目的地址网络号。

Gateway表示下一跳的路由器或网关地址。

Genmask表示子网掩码。

Iface表示此路由的出口。

数据包在路由过程中,先将它的目的IP依次和路由表中的子网掩码按位与操作,然后分别和每行的目的地址网络号比较,如果相同,则发到Gateway标示的下一跳,如果没有匹配的则发送至默认网关,上图最后一行表示了此路由表的默认网关为192.168.1.1。网络拓扑结构在其模型上实质是一个图结构,路由器可以看作图的顶点,网络的连接状况由图的边来表示,所以说网络拓扑结构的发现是对图的遍历过程。图的遍历主要有两种方法,即深度优先搜索(DFS)和广度优先搜索(BFS)。由于拓扑发现采用分层的方式,所以采用广度优先搜索。获取管理工作站所在网络的默认网关地址(通过本地路由表获得)。默认网关的进程返回默认网关的ipRouteTable,可以获得网络中更多的路由器信息,将其放入队列(实现BFS的数据结构)中,利用先进先出的特性依次访问各个路由,重复这两步。访问过程中根据路由器各接口的连接类型来判断是否直连的是局域网(direct类型),记录其子网号和掩码。

实际中会对拓扑发现的范围进行限制,我们可以利用ipRouteMetric(路由器的跳数)来进行限制,获取相应子网类型的信息可以通过MIB-II中的ifTable中的ifType字段来获取,ifType定义如下:

ifTypeOBJECT-TYPE

SYNTAXINTEGER{

other(1),

regular1822(2),

hdh1822(3),

ddn-x25(4),

rfc877-x25(5),

ethernet-csmacd(6),

iso88023-csmacd(7),

iso88024-tokenBus(8),

iso88025-tokenRing(9),

iso88026-man(10),

starLan(11),

proteon-10Mbit(12),

proteon-80Mbit(13),

hyperchannel(14),

fddi(15),

lapb(16),

sdlc(17),

ds1(18),

e1(19),

basicISDN(20),

primaryISDN(21),

propPointToPointSerial(22),

ppp(23),

softwareLoopback(24),

eon(25),--CLNPoverIP[11]

ethernet-3Mbit(26),

nsip(27),--XNSoverIP

slip(28),--genericSLIP

ultra(29),--ULTRAtechnologies

ds3(30),--T-3

sip(31),--SMDS

frame-relay(32)

}

ACCESSread-only

STATUSmandatory

DESCRIPTION

"Thetypeofinterface,distinguishedaccordingto

thephysical/linkprotocol(s)immediately`below''''

thenetworklayerintheprotocolstack."

::={ifEntry3}

因为ipRouteTable中的ipRouteIfIndex和ifTable中的ifIndex是一一对应的,所以可以通过ifIndex获得它对应的ifType,从而获取子网类型。

子网内主机的发现,我们最常用的方法就是ping命令了,检查目的主机是否是活动的[3]。ping命令依靠ICMP来获取目的主机的活动状态信息,前提是我们知道目的主机的IP地址,但是它的效率很低,只能通过“穷举法”来猜测,例如一个子网172.21.13.0/24,它可以有254台主机,如果使用ping的话我们只能一个一个的猜测,可能实际中主机的数目要远远小于254(针对本例来说),所以这种方法不可取。

MIB-II中存在一个ipNetToMediaTable对象,它记录了网络地址到物理地址的映射信息,子网中活动主机必然要在其网关的ipNetToMediaTable中注册自己的信息,ipNetToMediaTable定义如下:

ipNetToMediaTableOBJECT-TYPE

SYNTAXSEQUENCEOFIpNetToMediaEntry

ACCESSnot-accessible

STATUSmandatory

DESCRIPTION

"TheIPAddressTranslationtableusedformapping

fromIPaddressestophysicaladdresses."

::={ip22}

ipNetToMediaEntryOBJECT-TYPE

SYNTAXIpNetToMediaEntry

ACCESSnot-accessible

STATUSmandatory

DESCRIPTION

"EachentrycontainsoneIpAddressto`physical''''

addressequivalence."

INDEX{ipNetToMediaIfIndex,

ipNetToMediaNetAddress}

::={ipNetToMediaTable1}

IpNetToMediaEntry::=

SEQUENCE{

ipNetToMediaIfIndex----------------------对应路由表的Iface

INTEGER,

ipNetToMediaPhysAddress---------------------主机物理地址

PhysAddress,

ipNetToMediaNetAddress---------------------主机网络地址

IpAddress,

ipNetToMediaType

INTEGER

}

我们可以通过ipNetToMediaNetAddress获取和此路由器或网关连接的子网内所有主机的IP,然后分别和路由表中的子网掩码按位与就得到了它是属于哪个子网了,当然我们也可以用ipNetToMediaIfIndex来关联主机所属的子网号。

3.2二层拓扑发现

子网中的交换机和网桥其工作方式是基于设备的物理地址进行的,对于三层拓扑发现是透明的,所以处于数据链路层的网络设备的发现原理是依据地址转发表来收集拓扑信息的。目前的商业系统如HP的OpenView不支持二层拓扑发现,仅仅依靠网络层的拓扑结构已不能满足现在网络管理的要求,对于二层拓扑发现的研究应早日提上日程。

支持SNMP的交换机应该实现Bridge-MIB(RFC1493),当子网有交换机互联网络时,我们应先获取交换机各个端口的状态然后才能高效地进行拓扑发现,MAU-MIB(RFC2239)中的ifMauTable对象的ifMauStatus记录了交换机各端口的工作状态,一共有六种状态,我们可以根据状态值判断来决定收集有用端口的地址转发信息。确定交换机的可用端口后,就可以收集端口地址转发信息了,通过读取交换机Bridge-MIB中的dot1dTpFdbTable表,定义如下:

dot1dTpFdbTableOBJECT-TYPE

SYNTAXSEQUENCEOFDot1dTpFdbEntry

ACCESSnot-accessible

STATUSmandatory

DESCRIPTION

"Atablethatcontainsinformationaboutunicast

entriesforwhichthebridgehasforwardingand/or

filteringinformation.Thisinformationisused

bythetransparentbridgingfunctionin

determininghowtopropagateareceivedframe."

::={dot1dTp3}

dot1dTpFdbEntryOBJECT-TYPE

SYNTAXDot1dTpFdbEntry

ACCESSnot-accessible

STATUSmandatory

DESCRIPTION

"InformationaboutaspecificunicastMACaddress

forwhichthebridgehassomeforwardingand/or

filteringinformation."

INDEX{dot1dTpFdbAddress}

::={dot1dTpFdbTable1}

Dot1dTpFdbEntry::=

SEQUENCE{

dot1dTpFdbAddress

MacAddress,

dot1dTpFdbPort

INTEGER,

dot1dTpFdbStatus

INTEGER

}

......

Dot1dTpFdbAddress表示物理地址,dot1dTpFdbPort表示源数据帧主机通信的端口,dot1dTpFdbStatus表式端口状态,共有五种。这里我们感兴趣的是前两者。然后我们将此表信息和前述ipNetToMediaTable表进行关联,通过Dot1dTpFdbAddress是否和ipNetToMediaTable中的ipNetToMediaPhysAddress相同来获取ipNetToMediaNetAddress(即主机IP),根据前述已经获得的子网号和各主机IP我们就可以实现拓扑发现了。

4结束语

拓扑发现是网络管理中一个难点,受限于网络的复杂性和网络协议的多样性,做到对网络中所有设备完整准确的发现是非常困难的,利用SNMP进行拓扑发现的优点在于发现速度快,容易实现,前提是要被发现的设备要支持SNMP协议。对于不支持SNMP的设备则无能为力,所以要想对于各种网络的各种设备进行拓扑发现,应该运用多种技术,比如利用traceroute来跟踪路由过程和DNS中的设备信息发现新的设备集合。这些方法各有优缺点,应该根据实际需要有选择地结合它们,使得发现算法更加有效合理[4]。

参考文献

[1]李明江著,SNMP简单网络管理协议电子工业出版社2007

[2]晏明峰李静等著,用SNMP管理互联网络中国水利水电出版社2001

SNMP范文篇2

关键词:大规模IP网络;拓扑发现;SNMP

一、网络拓扑发现概述

(一)网络拓扑发现的概念

网络拓扑是指网络元素及其之间的连接关系。这里所讲的网络元素,既可以是路由器,也可以是交换机、网桥等,还可以是客户端、服务器,甚至是子网、AS等。这里所讲的网络,既可以指局域网,也可以是互联网,也可以是互联网的一部分。而网络拓扑发现,就是指发现并确定网络元素及其之间的连接关系。

(二)互联网的拓扑结构抽象

网络技术发展到今天,除非为某种特殊应用而专门设计的局部网络,以太网(Ethemet)已经成为事实上通用的网络组网方式,TCP/IP协议簇已经成为事实上的网络通讯协议标准。从概念上说,互联网可以看作是一个个小的局域网络通过互联(互连)而成的。但一方面,组成互联网基础的各个局域网络的拓扑结构本身可能很不相同,另一方面,各个局域网络的之间的互联(互连)关系也千差万别。因此,互联网的拓扑结构不可能用局域网三种基本的网络拓扑结构进行抽象。

二、网络拓扑发现的分类

(一)按照网络拓扑发现的对象进行分类

按照对象的不同对网络拓扑发现进行分类,可分为面向域内的网络拓扑发现和跨域的网络拓扑发现。

面向域内的拓扑发现,是指面向同一AS或者同一ISP、甚至更小规模的局部网络的拓扑发现技术。跨域的网络拓扑发现则是指面向不同AS(或ISP)网络的拓扑发现技术。二者的不同主要在于,面向域内的拓扑发现网络管理员一般具有对网络元素的管理和控制权,而跨域的拓扑发现网络管理员一般无法对域外的网络元素进行管理和控制。由于探测的对象不同,因此所适用的网络发现方法以及网络拓扑发现的目的等均有很大的不同。由于网络管理员不能对网络元素进行管理和控制,因此在一般情况下,跨域的网络拓扑发现比域内的网络拓扑发现困难得多。

(二)按照网络拓扑发现的方法进行分类

按照发现方法对网络拓扑发现进行分类,可分为主动式网络拓扑发现和被动式网络拓扑发现。

所谓主动式的网络拓扑发现,是指将一组精心设计的数据报注入被探测的网络,通过对网络反馈信息进行分析,得到网络的拓扑连接情况。例如,各种基于Traceroute的网络拓扑发现方法,就是典型的主动式网络拓扑发现。基于SNMP的网络拓扑发现,从原理上也应该归类为主动式的网络拓扑发现方法。由于主动式网络拓扑发现可以根据探测需要,由探测发起者对探测数据报进行专门设计,因此适用情形较广,可以探测网络范围可以很大,并且可通过提高注入数据包的科学性和合理性,不断提高网络拓扑探测的准确度。主动式网络拓扑探测的缺点主要是探测数据报将增大网络的负荷。在大规模多点探测中,甚至有可能导致网络性能的严重降低。在极端的情况下,由于注入数据报严重改变了网络负荷,甚至使探测到的网络拓扑与实际情况不相符。

而被动式的网络拓扑发现,则是指对网络元素间的数据进行侦听,通过对侦听得到的数据进行分析,进而得出网络的拓扑连接情况。例如,通过侦听路由器间的OSPF交换数据包来探测网络拓扑的方法,就是一种被动式的拓扑发现方法。被动式的网络拓扑发现方法不向网络注入数据包,因此对网络负荷的影响较小。但由于被侦听的只是局部网络,因此往往通过分析也只能得到局部网络的拓扑情况。另外,侦听得到的数据可能存在很多不真实的数据,如不能对数据进行有效的分析处理,有可能得到不真实的网络拓扑图。

(三)按照网络拓扑发现的粒度分类

根据粒度的不同,网络网拓扑发现大致可以分为粗粒度、中间粒度、细粒度三个级别。

粗粒度是一般指AS级别的拓扑发现。在粗粒度的拓扑图中,节点代表一个域,而边则代表域间的连接。中间粒度是指集群(路由器集簇)间的拓扑发现。在中间粒度的拓扑图中,节点代表单路由器或主机的特定集群,边则代表路由器或集群主机之间的连接。细粒度是指路由器级的拓扑发现。在细粒度的拓扑图中,节点代表路由器(子网或主机),边代表路由器的连结。目前,面向Internet的拓扑发现的研究主要集中在AS级和路由器级两个方面。三、基于SNMP的网络拓扑发现分析

(一)SNMP协议简介

SNMPCSimpleNetworkManagementProtocol)即简单网络管理协议,目前有SNMPvI、SNMPv2两个版本。SNMPvl于1990年开始,其规范文为RFC1157等。SNMPv2于1993年开始,RFC1441对SNMPv2进行了系统地介绍。目前,最新版本SNMPv3的规范文本为RFC2571。SNMP采用“管理者一”的模式,实现对网络设备的监视和控制。采用“轮询”与“陷阱”两种方式,实现管理进程与进程之间的信息交互,共定义了基本的5种报文:get-request操作:从进程处提取一个或多个参数值;get-next-request操作;从进程处提取一个或多个参数的下一个参数值;set-request操作:设置进程的一个或多个参数值;get-response操作:返回的一个或多个参数值。这个操作是由进程发出的。它是前面3种操作的响应操作;trap操作:进程主动发出的报文,通知管理进程有某些事情发生。

SNMP是一个应用层协议,尽管可以在传输层采用各种各样的协议,但是在SNMP中,用得最多的传输层协议还是UDP。另外,为了实现对网络的管理,SNMP又对其它两个必需的部分进行了定义。一个是管理信息库MIB(ManagementInformationBase),管理信息库包含所有进程的所有可被查询和修改的参数。RFC1213定义了第二版的MIB,叫做MIB-II。另外一部分是关于MIB的一套公用的结构和表示符号,叫做管理信息结构SIB(StructureofManagementInformation),由RFC1155定义。

(二)基于SNMP的网络拓扑发现的基本原理

所有的网络设备维护一个MIB(管理信息库),保存该设备上与网络运行相关的全部信息,并对管理工作站的SMMP查询进行响应。管理工作站通过发送请求信息,查询储存于网络路由设备中的管理信息库MIB中的相关信息,从中解析出网络拓扑相关的信息,就可以构画出整个网络的拓扑结构。从原理上看,基于SNMP的网络拓扑发现类似于图的广度优先搜索。公务员之家

MIB中的路由表ipRouteTable定义了该设备的路由信息,其中与拓扑发现相关的表项有:ipRouteDest、ipRouteMask、ipRoutelfIndex,ipRouteNextHop、ipRouteType等。ipRouteDest记录以该设备为起点可以到达的目的地址范围,ipRouteMask记录的是目的网络的子网掩码,ipRouteIfIndex记录ipRouteDest所对应的接口索引号,ipRouteNextHop记录本接口所对应的下一跳网关地址或者直连子网的网关地址,ipRoute升pe记录ipRouteNextHop所表示的地址与该设备的连接关系。

(三)基于SNMP的网络拓扑发现的优缺点及适用范围

基于srrnrn的网络拓扑发现的优点是发现过程和算法简单,目标明确,发现效率高,系统和网络开销小。由于入nB的信息可以自动随着网络的状况更新,这样通过srrNrn获取的拓扑信息就总是反映网络最新的状况。另外,此方法除了可以实现网络层拓扑探测外,经过对入心B数据进行精心分析,还可以实现对链路层的拓扑发现。基于SNMP的网络拓扑发现的主要缺点是方法受到路由设备访问权限的限制。随着网络安全问题越来越受的人们的重视,因此采用此方法开展跨管理域的网络拓扑发现变得越来越困难。另外,除了标准的MIB信息外,有的厂家为自己的设备开发了专门的MIB,如果在拓扑自动发现程序中使用了这些MIB,其处理上就需要随厂家的不同而作特殊的处理。

参考文献

[1]熊英,基于TCP/IP的网络拓扑发现方法的研究.湖北工业大学学报.2005

SNMP范文篇3

目前,由于实际技术水平和应用条件的限制,网络管理主要集中在网元管理层和网络管理层,真正业务级的管理还只停留在理论研究阶段。网元管理层直接管理物理网络,是整个管理系统的基础。对电信网络运营商来说,随着通信业务量需求的成倍增长,网络规模的日益膨胀,网元设备的种类和数量不断增加,各个网元都有自己的管理系统,这给网络的管理维护带来了很多困难。为了提高网络管理的效率,很有必要对各网元进行集中管理,实现在一个统一的平台上管理各种设备。为了适应网络管理系统可扩展性的要求,我们将设计模式的思想融入网络管理框架设计中,保证该框架具有良好的灵活性和可扩展性。

2网络管理协议

当前最典型的网络管理协议有基于OSI七层模型的公共管理信息协议(CMIP)和基于TCP/IP的简单网络管理协议(SNMP)。OSI/CMIP系统管理模型是目前理论上最完备的网络管理模型,是其他网络管理模型的基本参考。但由于该模型比较复杂,实现代价高,因此并没有得到广泛的应用。相反,当初只是为了管理TCP/IP网络的SNMP却得到了迅速的发展和广泛应用。SNMP网络管理模型的突出特点是简单、易于实现,因而得到了厂商的支持。特别是在Internet上的成功应用,使得它的重要性越来越突出,已经成为事实上的工业标准。

SNMP主要包括SMI(管理信息结构)、MIB(管理信息库)和SNMP协议几部分。SMI给出了管理对象定义的一般框架。MIB是设备所维护的全部被管理对象的结构集合。SNMP协议包括SNMP操作、SNMP信息的格式以及如何在应用程序和设备间交换消息。SNMP采用/管理站模型进行网络管理。

3基于SNMP的统一网管框架设计

3.1总体结构设计

统一网管平台提供一个高分布性,高扩展性的架构来保证应用的开发者可以用不同的方法来布置他们的网元管理系统。从横向分层的角度来看,平台可以分为支撑层(SupportLayer)、框架层(FrameworkLayer)和应用层(ApplicationLayer)。

统一网管平台从软件结构上讲仍是C/S结构,包括网管服务器和网管终端两大部分,通过网管服务器的级联构成多级网管,实现多级网管的无缝集成。其中框架层和支撑层位于服务器端,应用层位于客户端。

3.2支撑层的设计

支撑层作为系统支撑平台为应用提供系统级的服务,包括消息服务、数据库访问和SNMP接口。支撑层是整个统一网管平台的基础。

3.2.1消息服务

消息服务为系统中所有模块的交互提供支持,实现消息的路由转发,根据消息类型,转发到相应的处理模块。消息的格式如下所示:

版本号

消息头

消息数据

消息头的定义如下:

typedefstructmsg{

void*mlink;//指向结构的指针,形成消息链表

PIDsender_pid;//发送进程标识

PIDreceiver_pid;//接收进程标识

BYTEmsg_type;//消息类型(2或3,表示同步或异步进程消息)

WORDevent_type;//事件类型

WORDmsg_length;//消息长度,不包括头

}MSG_HEAD;

我们的系统使用的是非阻塞的异步消息机制,系统维护一个消息队列,这个消息队列用来存放系统各个模块产生的消息。程序中有一小段程序代码,叫做消息循环,用来从队列中取出消息,并且将它们发送给相应的消息处理程序。代码片断如下:

while(GetNmMessage(&msg,NULL,0,0))

{

TranslateNmMessage(&msg);

DispatchNmMessage(&msg);

}

3.2.2数据库访问

数据库访问模块提供所有访问数据库的接口调用,并维护数据库连接池,其他模块只需向其申请数据库连接即可。

3.2.3SNMP接口

网管系统与网元的交互是基于SNMP协议的,在SNMP协议栈的实现中,我们采用了被广泛使用的CMU(CarnegieMellonUniversity)开发的开放源代码CMU-SNMP软件包,该软件包对SNMPv2c做了很好的实现。但是对于上层的开发人员来说,调用起来不是很方便。例如,一次SNMP操作,就要先后调用以下这些函数:

char*winsock_startup(void);

voidsnmp_synch_setup(structsnmp_session*Session);

structsnmp_session*snmp_open(structsnmp_session*session);

structsnmp_pdu*snmp_pdu_create(intcommand);

intsnmp_synch_response(structsnmp_session*Session,structsnmp_pdu*PDU,structsnmp_pdu**ResponsePDUP);

intsnmp_close(structsnmp_session*session);

为了方便业务开发人员,我们对该协议栈进行了简单封装。将CMU格式的SNMP消息结构转换为本网管平台内部使用的数据结构,并提供一系列便于使用的SNMP原子命令接口和其它辅助功能接口,为其上层应用和Trap监听进程提供统一的支持。

通常,通过SNMP协议向SNMP发送请求,是通过使用MIB中定义的对象标识符(OID)来标识的。OID是用句点隔开的一组整数,使用起来很不方便,我们可以通过MIB树中叶子的名称来访问和设置MIB树中的数据,而不是通过枯燥的数字,方便开发人员进行开发。

以RFC1213定义的MIB-Ⅱ中的..dod.internet.mgmt.mib-2.system.sysName为例,其定义如下:

sysNameOBJECT-TYPE

SYNTAXDisplayString(SIZE(0..255))

MAX-ACCESSread-write

STATUScurrent

DESCRIPTION

"Anadministratively-assignednameforthismanagednode.

Byconvention,thisisthenode''''sfully-qualifieddomain

name.Ifthenameisunknown,thevalueisthezero-length

string."

::={system5}

如果我们要查询系统的名称,我们在发送GetRequest命令时需要使用1.3.6.1.2.1.1.5.0去向SNMP检索它,这一长串的OID字符串在程序中的可读性很差。我们采取的措施是建立一个Hash表,在SNMP模块初始化的时候先对程序所使用的MIB进行分析,对sysName这个字符串进行Hash操作,将sysName、OID和DisplayString保存在Hash表中。在向上层应用提供的SNMPAPI中只需要对sysName.0进行操作,就能查询到sysName的值,而不是通过枯燥的数字,方便开发人员进行开发。MakeHash函数如下所示:

ULONGMakeHash(char*str,ULONGlen)

{

ULONGn;

n=0;

#defineHASHCn=*str+++65587*n

if(len>0)

{

intloop;

loop=(len+8-1)>>3;

switch(len&(8-1))

{

case0:

do

{

HASHC;

case7:HASHC;

case6:HASHC;

case5:HASHC;

case4:HASHC;

case3:HASHC;

case2:HASHC;

case1:HASHC;

}while(--loop);

}

}

returnn;

}

另外,由于我们使用的CMU的SNMP协议栈是非线程安全的,而我们的上层应用是基于多线程的,因此,我们在对其进行封装的过程中一个重要的任务就是使其线程安全,目前我们采取的方法是采用事件机制,每个SNMP原子命令执行前,都调用系统的同步机制函数等待一个事件对象mm_hSnmpEvent的触发。

3.3框架层和应用层

针对网管系统这个特定的应用领域,我们抽取出一些公共的软件框架,这些程序框架统称为框架层。所有具体的管理应用都应该基于这个框架层提供的全部或者部分框架来开发。在具体的应用中,我们通过框架导出的API进行二次开发,如图1所示。框架层分为公共服务功能、公共应用功能、工作站功能和网元中介功能四个部分。公共服务功能提供网管系统所公有的,和具体网元无关的服务功能,如安全、日志等。和网元相关的管理功能,如告警、性能、配置等,抽取其中的公共部分称为公共应用功能。工作站功能实现客户端GUI的展现功能,并提供图形控件。网元中介功能实现网管系统和网元之间的接口转换和适配功能。

应用层就是在平台框架层的基础上,提供具体的管理应用功能,如配置管理、性能管理、故障管理、安全管理等。这些功能都是可以拆卸的,应用在使用统一网络管理平台的时候,可以根据自己的具体需要来选择需要装载那些管理功能。

4结束语

本文介绍了针对网元层的基于SNMP的网络管理框架,该框架是在Windows平台上利用VisualC++开发出来的,实现了在一个统一平台上对各种网元进行管理,具有良好的灵活性和可扩展性。通过对各网元进行集中管理,极大地提高了网络管理的效率。但是本系统依赖于Windows平台,在移植性上尚存诸多不足。目前,Java平台在移植性上做得比较成功,但是对于电信级的网管平台来说,其性能并不能满足要求,与此同时,CORBA应用日益成熟,C++领域高性能的分布式网络框架ACE的异军突起,为我们提供了跨平台的最好选择。我们可以用Java开发客户端GUI,用ACE框架来实现服务器端的网管功能,用CORBA实现客户端与服务器端的通信,从而真正实现高性能,可移植的网络管理框架。

参考文献

[1]ManiSubramanian.网络管理-原理与实践(影印版).北京:高等教育出版社,2001

[2]郭军.网络管理[M].北京:北京邮电大学出版社,2001

[3]贤道,安常青.网络管理协议及应用开发[M].北京:清华大学出版社,1998

[4]DouglasMauro,KevinSchmidt.EssentialSNMP[M].O′Reilly&Associates,2001

[5]RFC1157.ASimpleNetworkManagementProtocol[S]

DesignandImplementationoftheUniformNetworkManagementSystemBasedonSNMP

SNMP范文篇4

由于SNMP网络管理的学习并不像普通的系统维护那么简单,它不但要求我们的网络管理员要深入了解网络中的交换和路由设备,还要求我们能够透彻认识SNMP协议原理,所以这种管理方式在大部分中小规模局域网中的运用并不多见。但因为SNMP是目前在计算机网络中用得最广泛的网络管理协议,所以我们可以肯定的说:一个连SNMP都不清楚的网络管理员就绝对不是一个好的网络管理员。本文中笔者将带领大家一步一步地去学习SNMP网络管理,尽量减少枯燥的理论知识、加大实践力度,将原本仿佛遥不可及的SNMP拉到大家的身边,让大家切身体会到SNMP网络管理在日常工作中的重要意义。

初识SNMP网络管理

SNMP的英文全称是SimpleNetworkManagementProtocol,中文名为简单网络管理协议,是一个基于TCP/IP协议的网络管理标准。SNMP网络管理包含两个部分:网络管理站(也叫管理进程,manager)和被管的网络单元(也叫被管设备)。网络管理站通常是一台安装了网络管理软件的计算机,可以显示所有被管设备的状态,我们一般称之为网管工作站;而被管设备则种类繁多,包括交换机、路由器、防火墙、服务器以及打印机等等,被管设备上的管理软件我们称之为进程,用于回答管理进程(网管工作站)的查询。图1显示了一个使用两台SNMP网管工作站进行网络管理的拓扑结构。

在图1中,两台网管工作站上面分别安装了SNMP网络管理软件,以对局域网中的所有的被管设备(交换机、路由器、防火墙和服务器)进行管理和监控,而被管设备上面则运行着进程,因此整个网络的管理就可以集中在这两台网管工作站上面来进行了。

SNMP网络管理包括三个组成部分:管理信息库MIB、管理信息结构SMI和SNMP网络管理协议。管理信息库(MIB)中存放的是被管设备的所有信息,比方说被管设备的名称、运行时间、接口速度、接口进来/发出的报文等等,当前的管理信息库版本为MIB-II;管理信息结构SMI用于定义管理信息库MIB的结构和表示符号,限制在MIB变量中允许的变量类型,指定对这些变量命名的规则以及创建定义变量类型的规则;而SNMP网络管理协议则是管理进程(位于网管工作站上)和进程(位于被管设备上)之间的通信协议。

SNMP网络管理定义了5种报文操作:

GetRequest操作:用于管理进程从进程上面提取一个或者多个MIB参数值,这些参数值均在管理信息库中被定义;

GetNextRequest操作:从进程上面提取一个或多个参数的下一个参数值;

SetRequest操作:设置进程的一个或多个MIB参数值;

GetResponse操作:进程返回一个或多个MIB参数值,它是前面三种操作中的响应操作;

Trap操作:这是进程主动向管理进程发出的报文,它标记出一个可能需要特殊注意的事件的发生,比方说重新启动可能就会触发一个Trap陷阱。

SNMP范文篇5

为了能够弥补TMN接口单一的缺陷,使电力通信网络管理系统更加方便快捷和安全,在广泛接受TMN的情况下,兼容SNMP,加强电力通信网络管理系统的建设,是非常必要而且可行的。与TMN类似,SNMP(简单网络管理协议)拥有一组网络管理的标准:应用层协议、数据库模型和一组资料物件。它的目标就是管理互联网上众多厂商所生产的软件和硬件平台,支持网络管理系统,用来监测管理连接到网络上的电力通信设备。在SNMP的使用中,许多被管理的系统被一个或多个的系统在管理,每一个被管理系统的终端运行着一个叫做者的软件原件,它通过SNMP对管理系统报告所监测到的情况。到现在为止,SNMP已经了三个版本。SNMP2.0和SNMP1.0通信不加密,安全性较低,新出现的SNMP3.0使用DES(DataEncryptionStandard)算法加密数据通信,另外,SNMP3.0还能够用MD5和SHA(SecureHashAlgorithm)技术验证节点的标识符,从而防止攻击者冒充管理节点的身份操作网络,虽然解决了部分问题,但是目前SNMP3.0还没有广泛使用,大部分还是使用的两三年前的设备,可能无法应用SNMP3.0的新功能。

2电力通信网络管理系统方案

2.1建设需求

对于电力通信网络系统的建设,最实际的要求就是经济、安全和有效。并不是价格越贵、配置越高、功能越全面越好,主要讲究的是实用性。网络管理的要求、通信系统的规模、通信网络的结构等等都是选择网络管理系统方案时的影响因素。例如,对于缺乏管理系统的网络,我们就得选择能够提供管理功能的方案;如果要求对系统进行实时监控,就要选择好的监控系统,以便能够准确实时地监测到网络系统的复杂信息。

2.2网络层次

在电力通信网络的初始阶段,一般都着重于对通信设备的管理,功能不是很全面,层次分工也不是很清晰,完善的网络管理系统应该具备如下层次:数据采集层:网元设备的数据接收、采集系统。网元管理层:直接监测、管理网元设备,通过管理设备、单条线路,实现对通信设备、线路的维护,同时它也支持上层网络管理系统。网络管理层:在网元管理层的基础上,对网元设备连接成的网络进行管理。主要是对网元设备之间的关系进行协调;对网络有创建、终止、修改、分析、利用的能力,同时,它也支持上级的服务管理系统。服务管理层:对网络的运行方、网络用户间的接口进行管理,例如物理通道接口的管理。它主要负责提供给网络用户接口和组织网络通道;记录与统计接口的性能数据;记录服务和管理费用。业务管理层:这一层的主要功能是管理电力通信系统的信息,例如:记录日志、记录派工维护情况、规划网络发展等功能,为电力通信调度管理人员做出决策、计划提供数据基础,对运行人员进行网络判断提供管理平台。一个全面完善成熟的电力通信网络结构系统应该具备以上各个层次,才能对网络进行全方位的监测、管理。

2.3网络系统结构

一个四通八达的的网络管理系统应该具备以下结构:数据服务器:管理和存储网管系统中信息的载体。网管工作站:提供连接用户和机器的界面,使用户通过界面来操作被管理的信息资源和设备。浏览工作站:通过网络接入网管系统,可以让用户浏览系统里面的信息数据。协议适配器:管理系统与被管系统的协议转换器。前置机:采集远方数据,并通过网管和采集系统的协议转换,实时管理通信设备。图形系统:编辑、调用、管理、浏览图形和图元。通信调动应用:调度值班、通信调度、性能分析工具的管理。地理信息系统:通信地理信息的浏览、管理和制作。通信运行管理平台:管理运行计划、管理维护、管理权限和报表等。

3结语

SNMP范文篇6

关键词MRTG网络流量

随着网络应用的日益广泛,有大量的数据在网络中传输。为了全面衡量网络运行状况,就需要对网络状态做更细致、更精确的测量。SNMP协议的制订为互联网测量提供了有力支持。MRTG(MultiRouterTrafficGrapher,MRTG)就是基于SNMP的典型网络流量统计分析工具。它的优点是耗用的系统资源小,可以非常直观地显示流量负载,因此有很多外挂的程序也依附在MRTG下,通过SNMP协议从设备得到其流量信息,并将流量负载以包含PNG格式图形的HTML文档的方式显示给用户。

1MRTG工作原理

MRTG是一个简单的网络软件,它是利用SNMP协议,去侦测指定的运行有SNMP协议的网络设备。每隔几分钟采样并统计其设备流量,将统计结果绘成统计图,这样用户能很容易地从统计图上观察出实际网络的流量。统计图如下?lt;/DIV>

2安装配置MRTG

2.1设置SNMP网络管理协议

为了监控网络流量,需要先设置设备参数,这些设备可能是路由器、交换机…甚至于一台安装了Windows2000的电脑,只要支持SNMP的traps,都可以作为被监控的对象。

1)Windows2000服务器的设置

Windows2000Server中内含了SNMP网络管理协议,如果你想通过MRTG来监控一台Windows2000服务器的相关信息,就需要启用该Windows2000Server的SNMP协议。

在Windows2000Server的控制面板中,选择“添加/删除程序”,点击“添加/删除Windows组件”,双击“管理和监视工具”,选中“简单网络管理协议”,确定后,选择“下一步”,完成安装。

为了提高安全性,需要将系统默认的community(团体名)从public修改为mrtg。

打开控制面板\管理工具\服务,选择SNMP服务,双击进入其属性对话框,点击安全选项卡,就可以编辑团体名称。

2)交换机和路由器的设置

不同厂家的交换机和路由器设置的过程稍有不同,但方法基本相同。本文以思科2950为例来说明一下交换机和路由器的设置过程。以下命令在CISCO2950环境里面调试通过:

C:\telnet您的交换机的IP

UserAccessVerification

Password:

cisco2950>en

Password:

cisco2950#conft

cisco2950(config)#snmp-servercommunitymrtgro

cisco2950(config)#snmp-servertrap-sourceFastEthernet0/1

cisco2950(config)#snmp-servercontact管理者的邮箱地址

cisco2950(config)#snmp-serverhost管理机的IP地址mrtg

cisco2950(config)#snmp-serverenabletraps

cisco2950(config)#exit

cisco2950#shrun

cisco2950#wr

mrtg在这里是团体名(community);

2.2在Windows2000系统上安装Perl

Perl的安装比较简单,目前使用的一般是ActivePerlforwindows,现在最新的版本是5.8.7,它需要使用者先安装IIS或者APACHE等常用的Web服务器平台。在这里,我就以最常用的IIS作为安装的示例,如果大家需要在APACHE平台里面安装Perl,结果会稍有些不同。安装Perl的过程其实很简单的,首先打开PERL的安装文件,点下一步,然后同意软件使用权的协议,下

一个画面会让您确认是否使用[PPM3发送个人信息至ASPN],我们可以跳过。在安装完毕后重新启动计算机即可让Perl生效。

2.3安装MRTG程序

详细的安装步骤如下:

1)运行Cmd,进入DOS窗口;

2)c:\>cd\mrtg\bin进入刚才解压的MRTG目录,准备执行命令;

3)使用perlmrtg命令测试MRTG是否正确;

4)执行命令行perlcfgmakermrtg@192.168.0.254--global"WorkDir:c:\wwwroot\mrtg"--outputmrtg.cfg(mrtg@192.168.0.254使用的是您需要获得SNMP数据的设备的community和它的IP地址;WorkDir:c:\www\mrtg使用的是正确安装MRTG后,需要使用到的WEB目录,要根据实际情况更改;outputmrtg.cfg则是输出后的配置文件名称;)

2.4配置管理机

MRTG的管理机可以安装在很多的操作系统上,包括Windows2000服务器版、Windows2000专业版,Linux、Unix等等,只要能提供WEB服务来监控结果就可以了。本文以Windows2000Server为例来探讨管理机的配置过程。

首先在Windows2000Server系统中安装配置好IIS(InternetInformationServer),运行Cmd,进入DOS窗口;

输入“perlindexmakermrtg.cfg>c:\wwwroot\mrtg\index.htm”后即可生成index.htm文件。

输入“perlmrtg--logging=mrtg.logmrtg.cfg”启动MRTG进行监控。从“mrtg.cfg”中读取配置并启动MRTG程序,同时记录日志信息到“mrtg.log”中。

完成以上设置工作后,我们就可以通过浏览器访问“192.168.0.254”,查看通过被监控设备的各个端口的流量。如果你希望每5分钟刷新一次流量统计,则可以用记事本编辑“mrtg.cfg”,在最后加上“runasdaemon:yes”和“interval:5”(interval后的5表示每5分钟刷新一次,可根据实际情况进行修改)。

2.5将MRTG配置为系统服务

由于MRTG需要由Perl来编译执行,不能直接添加为系统服务,所以,我们使用Windows2000ResourceKit中的instsrv.exe和srvany.exe这两个程序来帮助我们把MRTG添加为系统服务。

⑴加srvany.exe为服务

InstsrvMRTG“C:\mrtg\bin\srvany.exe”

⑵置srvany

在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\mrtg中,添加一个Parameters子键。再在Parameters子键中添加以下项目:

Application的字串值,内容为C:\perl\bin\perl.exe

AppDirectory的字串值,内容为C:\mrtg\bin\

AppParameters的字串值,内容为mrtg--logging=mrtg.logmrtg.cfg

⑶打开控制面板\管理工具\服务,找到MRTG服务,启用该服务,并设置启动类型为自动。这样MRTG即可全天监控网络的流量信息了。

3结束语

网络的流量监控在日常的网络运行维护当中是一个非常重要的内容,通过在路由器、交换机等设备上配置MRTG,我们可以直观地了解网络中各个部分的带宽使用情况,第一时间发现异常网络流量,有效防范黑客和病毒的攻击。同时,还可以根据各个端口使用带宽的情况对网络带宽进行合理划分,大大提高网络的运行效率。总之,MRTG是一个非常有用的网络流量监控软件,能对网管员的工作提供很大的帮助,它在网络的运行和维护中必定能得到广泛的应用。

参考文献:

1胡谷雨等.《简单网络管理协议教程》第2版,电子工业出版社,1999

SNMP范文篇7

关键词:SNMP;RRDTOOL;CACTI;流量监控

1引言

随着网络技术的迅速发展和各种网络业务应用的普及,用户对网络资源的需求不断增长,网络已成为人们日常工作生活中不可或缺的信息承载工具,同时人们对网络性能的要求也越高,在众多影响网络性能的因素中网络流量是最为重要的因素之一,它包含了用户利用网络进行活动的所有的信息。通过对网络流量的监测分析,可以为网络的运行和维护提供重要信息,对于网络性能分析、异常监测、链路状态监测、容量规划等发挥着重要作用。

SNMP(简单网络维护管理协议)是Internet工程任务组(IETF)在SGMP基础上开发的,SNMP是由一系列协议组和规范组成的,SNMP的体系结构包括SNMP管理者(SNMPManager)、SNMP者(SNMPAgent)和管理信息库(MIB)。每个支持SNMP的网络设备中都包含一个,不断地收集统计数据,并把这些数据记录到一个管理信息库(MIB)中,网络维护管理程序再通过SNMP通信协议查询或修改所纪录的信息。从被管理设备中收集数据有两种方法:轮询方法和基于中断的方法。SNMP最大的特点是简单性,容易实现且成本低,利用SNMP协议能够对被监视的各个网络端口输入字节数、输入非广播包数、输入广播包数、输入包丢弃数、输入包错误数、输入未知协议包数、输出字节数、输出非广播包数、输出广播包数、输出包丢弃数、输出包错误数、输出队长等进行采集。

2RRDTOOL的工作原理

RRDTOOL代表“RoundRobinDatabasetool”,是TobiasOetiker设计的一个基于Perl的功能强大的数据储存和图形生成工具,最初设计目的是为流量统计分析工具MRTG提供更好的数据存储性能和更强的图形生成功能。所谓的“RoundRobin”其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。我们可以把用于存储数据的数据库的空间看成一个圆,上面有很多刻度。这些刻度所在的位置就代表用于存储数据的地方。所谓指针,可以认为是从圆心指向这些刻度的一条直线。指针会随着数据的读写操作自动移动。要注意的是,这个圆没有起点和终点,所以指针可以一直移动,而不用担心到达终点后就无法前进的问题。在一段时间后,当所有的空间都存满了数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。所以RRDtool就是使用类似的方式来存放数据的工具,RRDtool所使用的数据库文件的后缀名是''''.rrd''''。

和其它数据库工具相比,它具有如下特点:

首先RRDtool存储数据,扮演了一个后台工具的角色。但同时RRDtool又允许创建图表,这使得RRDtool看起来又像是前端工具。其他的数据库只能存储数据,不能创建图表。

RRDtool的每个rrd文件的大小是固定的,而普通的数据库文件的大小是随着时间而增加的。

其他数据库只是被动的接受数据,RRDtool可以对收到的数据进行计算,例如前后两个数据的变化程度(rateofchange),并存储该结果。

RRDtool要求定时获取数据,其他数据库则没有该要求。如果在一个时间间隔内(heartbeat)没有收到值,则会用UNKN代替,其他数据库则不会这样做。

3监测系统的安装与配置

(1)配置路由器和交换机:

开始配置RRDTool之前,必须对需要监测的网络及设备进行良好的规划、设计与配置,包括配置设备互联地址、网管地址及路由,保证流量监测计算机可以与被监测设备网络层的互通;配置SNMP通信字符串和端口号,掌握需要的监测对象号(SNMPOID),确保流量监测计算机可以获取正确的SNMP信息。在路由器和交换机上启动SNMP,并设置只读团体名。命令如下:

(config)#snmp-serverenabletraps

(config)#snmp-servercommunitytestro

(2)安装配置RRDTool:

我们以Debian平台来安装配置RRDTOOL系统,在安装RRDTOOL前首先要安装支持RRDTOOL运行的环境:Zlib、libart_lgpl、cgilib、Libpng、freetype软件包。

①安装apache、mysql、php:apt-getinstallapache2php4mysql-serverphp4-mysql;安装成功后通过浏览器访问客户器,可以得到“Itworks!”的提示;利用mysqladmin工具给mysql添加好管理员密码。

②安装RRDTOOL:apt-getinstallrrdtool。

③安装NET-SNMP:apt-getinstallsnmp。

④安装Cacti:apt-getinstallcacti,在安装过程中会提示你输入mysql管理员密码和cacti数据库管理员密码。

(3)系统配置:

安装好系统后就要进行简单的初始化和配置,步骤如下:

①访问x.x.x.x/cacti,按照向导提示进行cacti的初始化安装;

②利用crontab-e添加计划任务:

*/5****/usr/bin/php/usr/share/cacti/site/poller.php>/dev/null2>&1

③利用cacti进行设备的添加;

④利用cacti进行绘图管理。

cacti其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证!我不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!可以说,cacti将rrdtool的所有“缺点”都补足了!

网络地图

SNMP范文篇8

关键词:SNMP;RRDTOOL;CACTI;流量监控

1引言

随着网络技术的迅速发展和各种网络业务应用的普及,用户对网络资源的需求不断增长,网络已成为人们日常工作生活中不可或缺的信息承载工具,同时人们对网络性能的要求也越高,在众多影响网络性能的因素中网络流量是最为重要的因素之一,它包含了用户利用网络进行活动的所有的信息。通过对网络流量的监测分析,可以为网络的运行和维护提供重要信息,对于网络性能分析、异常监测、链路状态监测、容量规划等发挥着重要作用。

SNMP(简单网络维护管理协议)是Internet工程任务组(IETF)在SGMP基础上开发的,SNMP是由一系列协议组和规范组成的,SNMP的体系结构包括SNMP管理者(SNMPManager)、SNMP者(SNMPAgent)和管理信息库(MIB)。每个支持SNMP的网络设备中都包含一个,不断地收集统计数据,并把这些数据记录到一个管理信息库(MIB)中,网络维护管理程序再通过SNMP通信协议查询或修改所纪录的信息。从被管理设备中收集数据有两种方法:轮询方法和基于中断的方法。SNMP最大的特点是简单性,容易实现且成本低,利用SNMP协议能够对被监视的各个网络端口输入字节数、输入非广播包数、输入广播包数、输入包丢弃数、输入包错误数、输入未知协议包数、输出字节数、输出非广播包数、输出广播包数、输出包丢弃数、输出包错误数、输出队长等进行采集。

2RRDTOOL的工作原理

RRDTOOL代表“RoundRobinDatabasetool”,是TobiasOetiker设计的一个基于Perl的功能强大的数据储存和图形生成工具,最初设计目的是为流量统计分析工具MRTG提供更好的数据存储性能和更强的图形生成功能。所谓的“RoundRobin”其实是一种存储数据的方式,使用固定大小的空间来存储数据,并有一个指针指向最新的数据的位置。我们可以把用于存储数据的数据库的空间看成一个圆,上面有很多刻度。这些刻度所在的位置就代表用于存储数据的地方。所谓指针,可以认为是从圆心指向这些刻度的一条直线。指针会随着数据的读写操作自动移动。要注意的是,这个圆没有起点和终点,所以指针可以一直移动,而不用担心到达终点后就无法前进的问题。在一段时间后,当所有的空间都存满了数据,就又从头开始存放。这样整个存储空间的大小就是一个固定的数值。所以RRDtool就是使用类似的方式来存放数据的工具,RRDtool所使用的数据库文件的后缀名是''''.rrd''''。

和其它数据库工具相比,它具有如下特点:

首先RRDtool存储数据,扮演了一个后台工具的角色。但同时RRDtool又允许创建图表,这使得RRDtool看起来又像是前端工具。其他的数据库只能存储数据,不能创建图表。

RRDtool的每个rrd文件的大小是固定的,而普通的数据库文件的大小是随着时间而增加的。

其他数据库只是被动的接受数据,RRDtool可以对收到的数据进行计算,例如前后两个数据的变化程度(rateofchange),并存储该结果。

RRDtool要求定时获取数据,其他数据库则没有该要求。如果在一个时间间隔内(heartbeat)没有收到值,则会用UNKN代替,其他数据库则不会这样做。

3监测系统的安装与配置

(1)配置路由器和交换机:

开始配置RRDTool之前,必须对需要监测的网络及设备进行良好的规划、设计与配置,包括配置设备互联地址、网管地址及路由,保证流量监测计算机可以与被监测设备网络层的互通;配置SNMP通信字符串和端口号,掌握需要的监测对象号(SNMPOID),确保流量监测计算机可以获取正确的SNMP信息。在路由器和交换机上启动SNMP,并设置只读团体名。命令如下:

(config)#snmp-serverenabletraps

(config)#snmp-servercommunitytestro

(2)安装配置RRDTool:

我们以Debian平台来安装配置RRDTOOL系统,在安装RRDTOOL前首先要安装支持RRDTOOL运行的环境:Zlib、libart_lgpl、cgilib、Libpng、freetype软件包。

①安装apache、mysql、php:apt-getinstallapache2php4mysql-serverphp4-mysql;安装成功后通过浏览器访问客户器,可以得到“Itworks!”的提示;利用mysqladmin工具给mysql添加好管理员密码。

②安装RRDTOOL:apt-getinstallrrdtool。

③安装NET-SNMP:apt-getinstallsnmp。

④安装Cacti:apt-getinstallcacti,在安装过程中会提示你输入mysql管理员密码和cacti数据库管理员密码。

(3)系统配置:

安装好系统后就要进行简单的初始化和配置,步骤如下:

①访问x.x.x.x/cacti,按照向导提示进行cacti的初始化安装;

②利用crontab-e添加计划任务:

*/5****/usr/bin/php/usr/share/cacti/site/poller.php>/dev/null2>&1

③利用cacti进行设备的添加;

④利用cacti进行绘图管理。

cacti其实是一套php程序,它运用snmpget采集数据,使用rrdtool绘图。它的界面非常漂亮,能让你根本无需明白rrdtool的参数能轻易的绘出漂亮的图形。更难能可贵的是,它提供了强大的数据管理和用户管理功能,一张图是属于一个host的,每一个host又可以挂载到一个树状的结构上。用户的管理上,作为一个开源软件,它居然做到为指定一个用户能查看的“树”、host、甚至每一张图,还可以与LDAP结合进行用户的验证!我不由得佩服作者考虑的周到!Cacti还提供自己增加模板的功能,让你添加自己的snmp_query和script!可以说,cacti将rrdtool的所有“缺点”都补足了网络地图

SNMP范文篇9

关键词:网络信息管理;SNMP;系统设计

1引言

随着我国计算机、互联网技术的不断发展,网络信息管理系统的应用日益广泛,大幅降低了企事业单位的管理成本,同时提升了管理效率[1-2]。为了实现集成、统一、图形化的网络信息管理,本次研究建立了一套基于SNMP的网络信息管理系统,以实现更加丰富的网络信息管理功能。

2网络管理系统总体结构设计

本次研究基于企事业单位所使用管理信息系统的基本功能需求建立了如图1所示的系统体系结构,该系统由管理站、管理与监控模块三个部分所组成。(1)监控模块监控模块中封装有管理与受控站点之间的通信协议,并以MIB子树管理的方式来实现二者之间的通信,开发人员可以利用监控模块所提供的一系列接口来实现子树管理和信息交互。(2)管理受控站点通过管理来实现各应用程序实例的通信,并对程序运行信息实施采集再将其发送给管理站点。与此同时,管理也会获取管理站点所发送的控制信息,进而实现对于受控站点的控制。(3)管理站点管理站点的主要任务有搜集受控站点的监控信息、实现管理的通信以及向受控站点发送各种控制指令。用户可以通过管理站点所提供的监控界面实现对于受控站点的控制。

3MIB管理信息库设计

网络信息管理系统的MIB管理信息库如图2所示。对于基于SNMP协议的网络管理系统来说,MIB管理信息库中mgmt管理分支下的节点均为标准的SNMP节点,对于各种硬件设备的通信功能有着较强的兼容性。主服务器分支节点下的企事业单位节点则封装有一些具体网络中的个性化标准。根据图2可知,本次研究于主服务器节点下的企事业单位节点上专门建立了一个编码策略节点,用来对网络信息进行存储。在此基础上通过IP地址向企事业单位内的各功能服务器发送程序运行申请并启动应用程序,得到最终的数据处理结果。

4系统流程设计

4.1网络设备拓扑管理流程

(1)网络设备拓扑的自动发现出于网络设备管理实时性方面的要求,本次研究所设计的网络信息管理系统需要每隔5min进行一次针对网络设备的自动搜索,进而实现网络设备拓扑管理的自动发现功能,实现流程如图3所示。(2)网络设备拓扑的手动管理本次研究所设计的网络信息管理系统通过如图4所示的流程实现设备的手动管理。

4.2网络设备运行信息采集

本次研究所设计的网络信息管理系统采用如图5所示的设备运行信息采集方案,基本流程如下:(1)获取SNMP数据包基于常规数据格式设置报文标签、变量列表、SNMP版本号、RequestID、共同体名等SNMP报文所需数据项。(2)数据通信监控站点通过161端口向受控站点发送监控数据请求报文,由受控站点向SNMP报文处理模块发送请求报文并对数据进行加工和打包处理,再由报文处理模块向监控工作站发送经过处理的数据。(3)接收响应监控站点接收SNMP报文信息的方式包括同步方式和异步方式两种。在同步方式下,监控站点在发送报文后会继续维持活跃状态,直到接收到来自受控站点反馈回来的响应报文,若反馈所需时间超过5分钟,则会提示响应超时;在异步方式下,监控站点在发送请求报文后立即进行返回,监控站点在收到响应报文后直接开始下一步操作。(4)编码过程为了实现报文数据在网络中的传输,本次研究基本编码规则以ASN.1的格式对SNMP响应报文中的数据实施转换,在完成转换后计算数据长度。对于ASN.1语言规范来说,只有将变量编码为字符串的情况下才可以在网络中传输[6-7]。(5)接收响应报文管理站点在完成请求报文的发送操作后会自动输出一个response变量,并接收来自受控站的SNMP响应报文[9-10]。在完成实现通信并通过验证响应的情况下,数据分析模块会自动开始处理来自受控站点的数据,监控站点也会同时向分析模块工发送报文信息并进行处理,直至数据处理完成,最后由数据分析模块提供该轮数据请求与响应的系统资源。

4.3网络设备状态与流量监控

(1)网络状态监控本次研究针对网络中的一些关键设备实施监控,进而掌握整体网络的流量状况,即通过管理员的设置和网络实际运行情况两项手段来监控网络设备状况,具体监控流程如图6所示。(2)流量管理为了方便管理员对交换机上的流量信息进行采集,网络信息管理系统还需要具备流量管理功能,帮助管理者获取实时的设备带宽分布情况并实施手动调整,具体业务流程如图7所示。

5通讯方案设计

消息服务是网络信息管理系统各功能模块之间实现通信的基础,本次研究采用“版本号→消息头→消息数”的消息格式,与之相关的各变量定义方法如下:本次研究以监控模块句柄(WM_HANDLEREAD)读取为例介绍该消息模块的设计方案,WM_HANDLER-EAD消息模块的设计结果如表1所示。

6结束语

SNMP范文篇10

关键词:网络管理;故障定位;SNMP管理协议;事件关联策略

计算机及网络技术的飞速发展为大中型企业带来了许许多便利之处,随着大型企业开发了与之业务相对应的管理系统,越来越多的业务将通过网络的方式进行,人们的衣、食、住、行都离不开网络[1]。计算机技术的飞速发展导致基于计算机的大型企业管理系统复杂度显著上升,与之相关的计算机网络的复杂度也随之提高。越来越复杂的网络环境为计算机网络管理带来了不小的挑战,需要网络管理者在保证海量网络集群能够正常工作的基础上,通过各种手段保证在运行过程中网络故障带来的影响和损失最小化,是计算机网络故障管理面临的主要问题。到目前为止,对于复杂度较高的大型网络系统都采用集中式管理方式,该方式将信息的管理和转发过程集中至一起,然后通过主要管理者进行分发和维护,系统的性能取决于中心管理者的管理能力。集中式管理方式面对大面积的计算机集群出现问题的时候,难以进行有效的处理,系统智能度较低,且中心管理者面对的管理任务较多,对于故障的传播无能为力,对于故障发生区域的定位也较为困难。集中式中心网络管理方式存在以下两类缺陷[2]:(1)计算机网络中心管理服务器需要面对成千上万待处理数据,这些数据冗余性大,数据处理时限要求高,仅仅通过中心管理服务器难以一一完成处理。集中式处理方式对中心管理服务器的性能要求较高,若中心管理服务器发生部分故障将会对整个网络系统的故障处理过程造成全方位影响。(2)计算机网络中心管理服务器面对巨大的计算机网络数据的吞吐量,在处理过程中,根据木桶原理,网络的整体性能受限于中心服务器处理数据的能力,中心管理服务器成为了整个网络系统的瓶颈。

1.基于SNMP协议的网络故障定位

在计算机网络管理中,与故障相关的管理包括故障发现、故障诊断和故障修复三个阶段。正常的逻辑是首先寻找并定位到故障发生的地方,才能针对不同的故障来进行分析和诊断,进而根据诊断结果将故障进行修复[3]。目前,在网络故障管理的三个阶段中,故障诊断和故障修复过程都有成熟完善的算法支持,而在故障定位过程中,由于故障的发生源可能范围较广,故障发生后会随着网络系统的运行而不断发展,且随着网络系统的复杂度提高,故障的传播越来越迅速、隐蔽,对于故障定位的相关算法目前还不完善具有较大的研究空间,所以研究并改进在大型网络系统中的故障定位算法是一项有意义的工作。

1.1SNMP协议故障定位与处理模型

SNMP协议用于计算机网络管理,是TCP/IP协议簇中最常用的应用层管理协议之一。该协议通过不断发出监听包到网络系统中各个设备上,通过设备的反馈包来检测对应设备是否发生网络异常。若某些网络设备发生异常并引起故障,一般情况下,在规定时间内SNMP无法接受到该设备的反馈包,这时候该协议即可初步定为出异常发生区域,并采取相应措施。基于SNMP网络管理协议的网络管理模型以网络管理系统NMS为中心,通过NMS与其他待管理的网络元设备节点构成了整个网络系统,SNMP协议运行在NMS之上,当网络系统运行过程中,某些被管理的网络元设备发生故障时,SNMP检测到该故障并发出警告信息,警告信息通过网络传播到其他网络元设备中,经过一定的时间,SNMP将警告信息传播到整个网络中,NMS对发生故障设备进行相应的处理。通过NMS的统筹管理,将会很快的定位出网络故障的具体位置并进行分析和解决。

1.2SNMP协议网络故障定位算法

由于计算机网络的复杂度不断提高,网络管理系统NMS无时无刻不在接收着来自多方节点的警报和征兆,在实际网络运行过程中,网络管理系统将会面对大量的警告信息,面对如此多的冗余信息,非智能的网络管理系统将会很难通过分析找出发生故障的真正节点设备,以至于大型网络很难对故障做出有效的处理。在网络管理运行过程中,网络中心管理服务器与各个被管理网络设备元之间相互依赖且各个被管理网络设备元之间存在物理上和逻辑上的相关性,所以每当一个设备元出现故障的时候,不仅自己要发出警告,而且所有感知到该设备元出现故障的设备都会发出警告,大量冗余的警告在网络中传播最终导致一个设备元发生故障产生大量的征兆,这些征兆都是相互关联在一起的,不能只针对一个征兆进行处理。在传统的SNMP协议中,检测到的网络设备故障征兆都是被单独传送给中心管理服务器的,这使得大量冗余的征兆信息干扰对网络故障的定位。事件关联策略在此背景应运而生,建立在基于SNMP协议上的网络故障定位新算法。在网络管理中,故障指的是网络中心管理服务器接受到的一个警告。事件关联策略定义了被管理的网络设备元在语义上的相关性,对被警告事件分别在空间上和时间上进行相关处理,通过提取各个事件中的相关联部分构成单一的警报概念事件,生成的单一警报概念事件能够过滤不必要的或者无关的事件,减少传送到网络中心管理服务器的冗余信息,中心管理服务器能够更好的计算并分析出网络故障的源泉。网络管理系统NMS面对诸多的警报和征兆,为了解决警报信息量大,信息冗余程度强的方法是在SNMP协议上采用事件关联策略,通过定义事件的方式来将警报编码成事件,再通过检测事件的相关联部分,丢弃无意义的冗余信息,仅仅通过“核心部分”的警报即可定位出故障源的真正区域,并给出故障解决方案。

2.基于SNMP协议和事件关联策略的网络故障定位实例分析

2.1网络拓扑图及初始化设计

本文通过模拟网络拓扑结构以及故障发生的环境,目的是呈现一种基于网络拓扑关联的网络故障定位技术,然后通过基于SNMP协议和事件关联策略来分析网络故障定位。本文通过建立一个网络拓扑结构来进行网络故障定位技术,寻找故障发生的源点,并根据该网络拓扑结构产生相应的节点表,关系表,和关联表。为了更加形象的表示网络的拓扑结构关系,本文需要给相应的拓扑结构节点添加虚拟的IP地址和该节点的属性。这些属性对后续实验的结果有重要意义,通过对网络设备的实际意义定性分析,就能够很好的完成对网络故障源点的定位和追踪,然后进行相应的网络故障分析和维护。

2.2基于SNMP协议软件关于该案例的实验结果

本文采用在SNMP协议上运行事件关联策略来定位故障源点,该策略主要是在主控模块中进行模拟的故障定位。在进入主控模块前,该策略还有模拟的发现网络拓扑结构模块和由拓扑结构创建连接关系的模块,接下来是通过连接关系创建关联关系的模块,该模块创建的关联关系是通过关联关系算法创建的,然后进入主控模块,在主控模块里连接着模拟输入故障数据模块,故障定位模块,以及故障源展示模块和故障事例显示模块。

3.总结

本文针对大型复杂的网络中难以定位故障的问题,分析了现有SNMP管理协议的各个方面,并详细分析了基于SNMP管理协议,使用关联关系进行故障定位算法的研究。在实际试验环境中,本文通过使用基于SNMP的管理协议来进行模拟网络拓扑结构的故障定位过程,实验结果表明,使用SNMP管理协议进行的网络故障源精确度高,分析速度快,适合日渐复杂的网络系统。

作者:崔玉礼 单位:烟台职业学院

参考文献:

[1]韩莉莉.网络管理系统中数据库的设计与实现[J].无线互联科技,2014,(8):24-24.

[2]李建国.电信网络安全隐患与对策探析[J].科技视界,2014,(32):57-57,103.