JAVA基于SNMP网络设备MIB信息采集

        在本文中,设计了一个针对TCP/IP网络的基于SNMP网络设备的MIB信息采集系统。这个系统采用三层模型进行设计,最底层负责SNMP中基本对象编码、定义,与设备连接通信等;中间层在底层的基础上定义了MIB对象,负责OID与MIB对象间的转换,分析MIB信息文件以生成MIB树型结构,单个MIB变量信息查询等功能;顶层,即界面层则在中间层的基础上实现了用户界面。设计中运用Java语言,运用Java-Applet技术,其存储在一个运行有Tomcat的服务器上,以接受用户请求,使用户能在任何一个支持Java运行时的浏览器上进行使用。系统在设定设备IP地址及端口号和读写共同体名后能查看相应设备的基本信息。在加载MIB信息文件后可自动生成MIB树型模式,用户则可根据需要查看设备各项细节,亦可进行设定操作。查看基本信息时,用户可自行选择是否自动刷新,这将有助于节省网络带宽和系统资源。     

       在网络化的进程中,网络管理在系统中起着越来越重要的作用。从计算机网络到电信网络、从广播电视网络到其他星星色色各自领域的网络,网络管理无处不在,随着网络规模的日益扩大,相应的网络管理技术也日趋成熟规范,功能更强大。准确而言,网络管理系统应该包括被管理端和它们的通信链路:管理端实现对网络设备的集中管理以及管理的级连;被管理端作为伺服进程响应管理端、监控网元设备、生成报告等;通信链路规定了管理端与被管理端的对话规则。总之,计算机技术和通信技术的融合、领域网络的飞速发展,使得网络管理技术越来越规范,网络管理系统的作用也越来越大,在整个系统中已称为必不可少的重要组成部分。 

       既然是对网络的管理系统,那就先置身于网络中,了解一下网络的体系结构。网络体系结构通常包括:网络功能构件的定义及相互关系描述和网络与用户之间的接口定义。从功能抽象的角度常以子系统(也成网络内部的层)来作为描述网络功能构件的基础,这种方式的典型代表是ISO的七层开放系统互联参考模型(OSI/RM)。OSI/RM对网络体系结构做了全面的定义,将进行交换信息的“源系统”和“目标系统”分为七个子系统,即七层,各层功能如下: 

物理层:涉及在物理信道上传输原始比特,处理与物理传输介质有关的机械的、电气的和过程的接口,提供可靠的比特传输功能。 

数据链路层:分为介质访问控制(MAC)和逻辑链路控制(LLC)两个子层。MAC解决广播型网络中多用户竞争信道使用权的问题;LLC的主要任务是将有噪声的物理信道变成无传输差错的通信信道,提供数据成帧、差错控制、流量控制和链路控制等功能。一言概之:在物理链路上提供可靠的数据传输功能。 

网络层:负责将数据从物理链接的一端传到另一端,即所谓点到点通信。主要功能是寻径,以及与之相关的流量控制和拥塞控制等。 

传输层:主要目的在于弥补网络层服务与用户需求之间的差距。传输层通过向上提供一个标准、通用的界面,使上层与通信子网(下三层)的细节相隔离。传输层的主要任务是提供进程间通信机制和保证数据传输的可靠性。 

会话层:主要针对远程终端访问。主要任务包括会话管理、传输同步以及活动管理等。 

表示层:主要功能是信息转换,包括信息压缩、加密、与标准格式的转换(以及上述操作的逆操作)等。 

应用层:提供最常用且通用的应用程序,包括电子邮件和文件传输等。 

与来自标准化组织的ISO/RM不同,TCP/IP不是作为标准人为定制的,而是产生于互联网研究和应用实践中。虽然概念的理解上两者具有着相辅性,但是内部细节的差别还是很大的。TCP/IP模型由四层组成,具体如下: 

网络接口层:这是TCP/IP的最底层,负责接收IP数据报并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。网络接口有两种类型:第一种是设备驱动程序(如局域网的网络接口);第二种是含自身数据链路协议的复杂子系统(如X.25中的网络接口)。 

网间网层(IP):负责相邻计算机之间的通信。其功能包括三方面:一、处理来自传输层的分组发送请求;收到请求后,将分组装入IP数据报,填充报头,选择去往信宿机的路径,然后将数据报发往适当的网络接口。二、处理输入数据报:首先检查其合法性,然后进行寻径一假如该数据报到达信宿地(本机),则去掉报头,将剩下部分(传输层分组)交给适当的传输协议;假如该数据报尚未到达信宿,则转发该数据报。三、处理ICMP报文,处理路径、流控、拥塞等问题。 

传输层:提供应用程序间(即端到端)的通信,其功能包括:格式化信息流、提供可靠传输。为实现后者,传输层协议规定接收端必须发回确认,并且假如分组丢失,必须重新发送;另外每个分组均附带校验和,接收端以此验证分组的正确性。 

应用层:向用户提供一组常用的应用程序,如文件传输访问、电子邮件等。严格说来,TCP/IP协议只包含下三层(不含硬件),应用程序不能算TCP/IP的一部分。就上面提到的常用应用程序,TCP/IP制定了相应的协议标准,所以也把他们作为TCP/IP的内容。事实上,用户完全可以在网间网上建立自己的专门应用程序,这些专用引用程序要用到TCP/IP,但不属于TCP/IP。 

ISO OSI/RM作为国际标准而制定,因此不得不考虑各种各样的情况,造成大而全、效率低,TCP/IP经过了20多年的实践检验,获得了巨大的成功,成为了事实上的网络协议标准。这两种协议是当今网络协议中最为典型和普遍的,至于两者的详细内容和比较已经有很多介绍,在此就不再遨述。 

国际化标准组织(ISO)定义了网络管理的五个功能域:故障管理(Fault)、配置管理(Configuration)、计费管理(Account)、性能管理(Performance)、安全管理(Security)。 

如果在网络管理系统中需要到某个功能的话,均可以映射到FCAPS的五个功能领域中。FCAPS一斑看着是网络管理功能最高层的命令集,在具体的功能实现中,可以根据需求进行取舍。 

故障管理:检测、定位和排除网络硬件和软件中的故障,增强网络的可靠性。故障管理监视物理网络设备,对检测到的故障进行隔离、纠正和修复,确保其正常运行。 

配置管理:掌握和控制物理网络的状态,包括网络内各设备的状态及其连接关系,增强对网络配置的控制。它包含三个方面的内容:获得关于当前网络配置的信息,提供远程修改设备配置的手段,储存数据、维护一个最新的设备清单并根据数据 产生报告。 

计费管理:度量各个端用户和应用程序对网络资源的使用情况,为网络资源的合理分配和运行维护提供基础。 

性能管理:测量的项目可能有:整体吞吐量、利用率、错误率或响应时间等。 

安全管理:是对网络资源敏感信息访问的约束和控制,包括验证网络用户的访问权限和优先级、检测和记录未受权用户企图进行的不应有的操作。 

FCAPS是在OSI网络管理体系结构中定义的,然而它也为研究其他网络管理体系如SNMP的功能给出了清晰的模型,因此了解FCAPS对掌握网络管理系统是有益的。 

在网络管理中,一般采用Manager/Agent的管理模型。

Manager与Agent在对等层上用网络管理协议进行通信。Manager负责发出管理操作指令,并接收来自Agent的信息;Agent直接管理被管理设备,响应Manager的指令操作,或产生报告通知Manager,一个Manager可以和多个Agent进行信息交换,而一个Agent也可以接收来自多个Manager的管理操作。一个实体既可以充当Manager,又可充当Agent,从而实现网络的级联管理。在异质网络管理系统中,Manager可以通过“转换Agent”实现管理多种类型的设备,“转换Agent”负责不同通信语言的转换。 Manager 协议栈和设备驱动程序 Agent 协议栈和设备驱动程序 物理网络 网络管理协议 在具体的实现中,例如SNMP网络管理体系,它的信息交换模型采用Manager/Agent模式,Manager负责被管设备的集中管理,Agent响应Manager的各项访问操作,它们之间采用SNMP协议进行通信,SNMP协议是基于TCP/IP网络实现的。 

在网络管理系统中,如果Manager与Agent之间的通信方式各不相同,将会大大的影响到网络管理系统的通用性,影响到异种设备的互联,因此需要制定Manager和Agent之间通信的标准,即网络管理协议。 

从不同的网络协议角度出发标准化组织开发了两种典型的截然不同的网路管理技术:SNMP(Simple Network Management Protocol)和CMIS/CMIP(Common Management Information Services/Common Management Information Protocol)。它们的结果就像各自采用的网络基础的命运一样:前者力求简单,采用TCP/IP协议栈作为其传输基础,结果被广泛采用;CMIS/CMIP力求全面,以OSI/RM作为传输基础,力求提供一个完整的网络管理方案必须的所有功能,具备有参考意义,然而依赖于整个OSI/RM的实现,结果没有被广泛采用。 

对SNMP下一章将详细介绍,这儿简略介绍一下CMIP。 

CMIP协议是在OSI制订的网络管理框架中提出的网络管理协议。与其说它是一个网络管 理协议,不如说它是一个网络管理体系。这个体系包含以下组成部分:一套用于描述协议的 模型,一组用于描述被管对象的注册、标识和定义的管理信息结构,被管对象的详细说明以 及用于远程管理的原语和服务。CMIP与SNMP一样,也是由被管代理和管理者、管理协议与管 理信息库组成。在CMIP中,被管代理和管理者没有明确的指定,任何一个网络设备既可以是 被管代理,也可以是管理者。 

CMIP管理模型可以用三种模型进行描述:组织模型用于描述管理任务如何分配;功能模 型描述了各种网络管理功能和它们之间的关系;信息模型提供了描述被管对象和相关管理信 息的准则。从组织模型来说,所有CMIP的管理者和被管代理者存在于一个或多个域中,域是 网络管理的基本单元。从功能模型来说,CMIP主要实现失效管理、配置管理、性能管第 11 页 

理、记 帐管理和安全性管理。每种管理均由一个特殊管理功能领域(SMFA,Special Management F unctional Area)负责完成。从信息模型来说,CMIP的MIB库是面向对象的数据存储结构,每 一个功能领域以对象为MIB库的存储单元。 

CMIP是一个完全独立于下层平台的应用层协议,它的五个特殊管理功能领域由多个系统 管理功能(SMF)加以支持。相对来说,CMIP是一个相当复杂和详细的网络管理协议。它的设 计宗旨与SNMP相同,但用于监视网络的协议数据报文要相对多一些。CMIP共定义了11类PDU 。在CMIP中,变量以非常复杂和高级的对象形式出现,每一个变量包含变量属性、变量行为 和通知。CMIP中的变量体现了CMIP MIB库的特征,并且这种特征表现了CMIP的管理思想,即 基于事件而不是基于轮询。每个代理独立完成一定的管理工作。 

CMIP的优点在于: 

其每个变量不仅传递信息,而且还完成一定的网络管理任务。这是CMIP协议的最大 特点,在SNMP中是不可能的。这样可减少管理者的负担并减少网络负载。 

完全安全性。它拥有验证、访问控制和安全日志等一整套安全管理方法。 

CMIP的缺点也同样明显: 

它是一个大而全的协议,所以使用时,其资源占用量是SNMP的数十倍。它对硬件设备 的要求比人们所能提供的要高得多。

由于它在网络代理上要运行相当数量的进程,所以大大增加了网络代理的负担。 

它的MIB库过分复杂,难于实现。迄今为止,还没有任何一个符合CMIP的网络管理系统 。 

可以从许多不同方面对SNMP和CMIP进行比较。对网络管理研究人员来说,它们之间的指导思想就有明显的差别;对管理人员和实用主义而言,其差别主要在于针对特定的平台和资源管理所需要的框架提供什么样的管理能力;对从事面向对象技术研究和开发的人来说,CMIP是一个完全面向对象的模型,采用分布式等级制的对象结构,而SNMP则是一个平常静态的模型;从采用传输方式而言,SNMP采用无连接、不保证可靠的UDP传输服务,而CMIP采用OSI/RM中面向连接、可靠的传输服务。

简单网络管理协议(SNMP)是目前TCP/IP网络中应用最为广泛的网络管理协议。1990年5月,RFC 1157定义了SNMP(simple network management protocol)的第一个版本SNMPv1。RFC 1157和另一个关于管理信息的文件RFC 1155一起,提供了一种监控和管理计算机网络的系统方法。因此,SNMP得到了广泛应用,并成为网络管理的事实上的标准。 

SNMP在90年代初得到了迅猛发展,同时也暴露出了明显的不足,如,难以实现大量的数据传输,缺少身份验证(Authentication)和加密(Privacy)机制。因此,1993年发布了SNMPv2,具有以下特点: 

支持分布式网络管理 

扩展了数据类型 

可以实现大量数据的同时传输,提高了效率和性能 

丰富了故障处理能力 

增加了集合处理功能 

加强了数据定义语言 

但是,SNMPv2并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防)、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。1996年发布的SNMPv2c是 SNMPv2的修改版本,功能增强了,但是安全性能仍没有得到改善,继续使用SNMPv1的基于明文密钥的身份验证方式。IETF SNMPv3工作组于1998年元月提出了互联网建议RFC 2271-2275,正式形成SNMPv3。这一系列文件定义了包含SNMPv1、SNMPv2所有功能在内的体系框架和包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。可以说,SNMPv3是在SNMPv2基础之上增加了安全和管理机制。 

SNMP最重要的是指导思想就是要尽可能简单,以便缩短研制周期。SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。虽然SNMP

是在TCP/IP基础上的网络管理协议,但也可扩展到其他类型的网络设备上。 

整个系统必须有一个管理站(management station),它实际上是网络控制中心。在管理站内运行管理进程。在每个被管对象中一定要有代理进程。管理进程和代理之间利用SNMP报文进行通信,而SNMP报文又使用UDP来传送。图中有两个主机、一个路由器和一个管理站。这些协议栈中带有阴影的部分是原来这些主机和路由器所具有的,而没有阴影的部分是为实现网络管理而增加的。 

有时网络管理协议无法控制某些网络元素,例如该网络元素使用的是另一种网络管理协议。这是可使用委托代理(proxy agent)。委托代理能提供如协议转换和过滤操作的汇集功能。然后委托代理来对管理对象进行管理。

委托代理 Proxy agent 管理站委托代理 Proxy agent 管理进程 SNMP UDP IP 网络接口 映射函数 代理进程 被委托的SNMP 设备使用UDP 的协议 IP 网络接口 网络接口管理进程 SNMP UDP IP 网络接口 网络 网络 SNMP的网络管理由三部分组成,即管理信息库MIB、管理信息结构SMI以及SNMP本身。下面简要介绍。 

为了实现网络管理的5个子系统,最初提出SNMP和CMOT的两个小组合作定义了一个网络管理数据的标准,该标准称为网络管理信息库(MIB)。MIB存放了所有被管对象信息,是网络管理子系统个功能间的公共接口,因此MIB处于网管的核心地位。在这个标准里规定了主机网关必须保存的数据项目、数据类型以及在每个数据项目中的操作。通过对这些数据项目的存取访问,就可以得到该网关的所有统计内容,再通过对多个网关统计内容的综合分析,就可以实现基本的网络管理。因此,MIB库的访问是实现网管的关键。 

在SNMP中,每一个被管理的资源都由一个管理对象来表示,每一个对象有唯一的对象标示,这个标示由该对象在树型结构的MIB中的位置来定义。MIB是每一个管理对象的结构化集合。管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。图2.3画的是管理信息库的一部分,它又称为对象命名(object naming tree)。 

根 ccitt(0) iso(1) joint-iso-ccitt(2) standard(0) registration authority(1) member body(2) identified organization(3) …… dod(6) internet(1) 1.3.6.1 directory(1) mgmt(2) experimental(3) private(4) security(5) snmpv2(6) mib-2(1) 1.3.6.1.2.1 enterprises(1) 1.3.6.1.4.1 …… system(1) interface(2) at(3) ip(4) icmp(5) tcp(6) udp(7) egp(8) …… …… …… …… …… …… …… …… …… 

对象命名树的顶级对象有三个,即ISO、CCITT和这两个组织的联合体。在ISO的下面有4个结点,其中有一个是被标识的组织(标号3)。在其下面有一个美国国防部(Department of Defense)的子树(标号是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个。 

类别 标号 所包含的信息 

system 

interfaces 

address (1) 

(2) 

(3) 主机或路由器的操作系统 

各种网络接口及它们的测定通信量 

你可能感兴趣的:(java,开发语言)