1、基于 SNMP/MIB 的网络数据获取系统设计与实现摘 要: 简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络协议。简单网络管理协议(SNMP)是一种应用层协议, 便于在网络设备间交换管理信息。它是 TCP/IP 协议簇的一部分,也是一个标准的用于管理 IP 网络上结点的协议。网络管理员使用 SNMP 监视网络性能、检测分析差错、配置网络设备,发现和解决网络故障, 并计划网络增长。本文主要介绍了 SNMP/MIB 有关理论基础知识和数
2、据的采集原理,并针对 MIB 信息库的单个对象和表进行分析,用 java 编程实现了数据采集功能。关键词: SNMP MIB AdventNet 数据采集Abstract: Simple Network Management Protocol(SNMP)is a set of network protocol defined by Internet Engineering Task Force(IETF). The Simple Network Management Protocol (SNMP) is an application layer protocol that facilitate
3、s the exchange of management information between network devices. It is part of the Transmission Control Protocol/Internet Protocol (TCP/IP) protocol suite. SNMP enables network administrators to manage network performance, find and solve network problems, and plan for network growth. This passage m
4、ainly introduce the theory about the SNMP/MIB and basic principle of the information collection .Moreover ,we realize the function of information collection using java programming for single object and table of MIB.Key words : SNMP MIB AdventNet Information Collection 一,简单网络管理协议 SNMP 及相关理论介绍1,简单网络管理
5、协议 SNMP(1), 什么是网络管理网络管理分为两类。第一类是网络应用程序、用户帐号(例如文件的使用)和存取权限(许可)的管理。它们都是与软件有关的网络管理问题。这里不作讨论。网络管理的第二类是由构成网络的硬件所组成。这一类包括工作站、服务器、网卡、路由器、网桥和集线器等等。通常情况下这些设备都离你所在的地方很远。正是由于这个原因,如果当设备有问题发生时网络管理员可以自动地被通知的话,那么一切事情都好办。但是你的路由器不会象你的用户那样,当有一个应用程序问题发生时就可以打电话通知你,而当路由器拥挤时它并不能够通知你。为了解决这个问题,厂商们已经在一些设备中设立了网络管理的功能,这样你就可以远
6、程地询问它们的状态,同样能够让它们在有一种特定类型的事件发生时能够向你发出警告。这些设备通常被称为“智能“设备。网络管理通常被分为四类:被管理节点(或设备):即你想要监视的设备代理:用来跟踪被管理设备状态的特殊软件或固件(firware)网络管理工作站:与在不同的被管理节点中的代理通信,并且显示这些代理状态的中心设备网络管理协议:被网络管理工作站和大理用来交换信息的协议当设计和构造网络管理的基础结构时,你需要记住下列两条网络管理的原则:1.由于管理信息而带来的通信量不应明显的增加网络的通信量。2.被管理设备上的协议代理不应明显得增加系统处理的额外开销,以致于该设备的主要功能都被削弱了。(2)
7、,SNMP 的背景美国国防部设计了世界上头几个包交换网之一的 ARPANET,在 70 年代,TCP/IP 协议族正式被定为军方通信标准,随着此协议的广泛使用,网络管理成了一件大事。在 80 年代未和 90 年代初,网络迅速发展,许多子网数目的增多使监视网络活动成为一种必须。在网络管理的初期,对网络的管理停留在使用 ICMP和 PING 的基础上,但是随着网络内主机数据的不断增多,这种简单的工具已经不可能完成网络管理的工作了。随着网络数目与网络内主机数目的日益增多,单纯依靠一些网络专业进行网络管理已经不可能了,必须有一种通行的网络管理标准以及相应的管理工具使普通人也能够管理网络。第一个相关的协
8、议是SGMP,它提供了一种直接监视网关的方法,也因此成了一种通用的网络管理工具。下来,有三可供选择的管理工具:HEMS,SNMP 和建立在 TCP/IP 基础上的 CMIP(CMOT) ,因为需要使用 ISO/OSI 模型进行网络管理,SNMP 首选 CMOT 作为管理工具。基本的 SNMP 已经被广泛使用了,所有的网络产品都提供对 SNMP 的支持,新开发的具有远程管理能力的 SNMP 是 RMON,它使管理人员可以将整个子网进行管理,而不是对整个子网内的设备进行管理。简单网络管理协议(SNMP)是目前 TCP/IP 网络中应用最为广泛的网络管理协议。1990 年 5 月,RFC 1157
9、定义了 SNMP(simple network management protocol)的第一个版本 SNMPv1。RFC 1157 和另一个关于管理信息的文件 RFC 1155 一起,提供了一种监控和管理计算机网络的系统方法。因此,SNMP 得到了广泛应用,并成为网络管理的事实上的标准。SNMP 在 90 年代初得到了迅猛发展,同时也暴露出了明显的不足,如,难以实现大量的数据传输,缺少身份验证(Authentication)和加密(Privacy)机制。因此,1993 年发布了 SNMPv2,具有以下特点: 支持分布式网络管理 扩展了数据类型 可以实现大量数据的同时传输,提高了效率和性能 丰
10、富了故障处理能力 增加了集合处理功能 加强了数据定义语言但是,SNMPv2 并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防) 、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。1996 年发布的 SNMPv2c 是 SNMPv2 的修改版本,功能增强了,但是安全性能仍没有得到改善,继续使用 SNMPv1 的基于明文密钥的身份验证方式。IETF SNMPv3 工作组于 1998 年元月提出了互联网建议 RFC 2271-2275,正式形成 SNMPv3。这一系列文件定义了包含 SNMPv1、SNMP
11、v2 所有功能在内的体系框架和包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。可以说,SNMPv3 是在 SNMPv2 基础之上增加了安全和管理机制。Internet 还有一个远期的网络管理标准 CMOT(Common Management information service and protocol Over TCP/IP),意思是 “在 TCP/IP 上的公共管理信息服务与协议” 。虽然 CMOT 使用了 OSI 的网络管理标准 CMIS/CMIP,但现在还未达到实用阶段。SNMP 最重要的基本思想就是要尽可能简单,以便缩短研制周期。SNMP
12、的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP 可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。虽然 SNMP 是在 TCP/IP 基础上的网络管理协议,但也可扩展到其他类型的网络设备上。(3) ,SNMP 的详细介绍简单网络管理协议最初是为处理网络上路由器而设计的。虽然 SNMP 是 TCP/IP 协议族中的一员,但它并不依赖于 IP。目前大部分 SNMP 都使用 IP 协议,但 SNMP 是独立的协议(因此,它也用于 Novell 公司SPX/IPX 的 IPX 协议之上)。使用 SNMP 进行网络管理需要下面几个重要部
13、分:管理基站,管理代理,管理信息库和网络管理工具。管理基站通常是一个独立的设备,它用作网络管理者进行网络管理的用户接口。基站上必须装备有管理软件,管理员可以使用的用户接口和从 MIB 取得信息的数据库,同时为了进行网络管理它应该具备将管理命令发出基站的能力。管理代理是一种网络设备,如主机,网桥,路由器和集线器等,这些设备都必须能够接收管理基站发来的信息,它们的状态也必须可以由管理基站监视。管理代理响应基站的请求进行相应的操作,也可以在没有请求的情况下向基站发送信息。MIB 是对象的集合,它代表网络中可以管理的资源和设备。每个对象基本上是一个数据变量,它代表被管理的对象的一方面的信息。最后一个方
14、面是管理协议,也就是 SNMP,SNMP 的基本功能是:取得,设置和接收代理发送的意外信息。取得指的是基站发送请求,代理根据这个请求回送相应的数据,设置是基站设置管理对象(也就是代理)的值,接收收代理发送的意外信息是指代理可以在基站未请求的状态下向基站报告发生的意外情况。SNMP 并不是单个协议,它由三个协议组成,这三个协议用于网络管理。组成 SNMP 协议的三个协议及功能如下所示:* 管理信息基(MIB) 包含状态信息的数据库。* 管理信息的结构与标识(SMI) 定义 MIB 的入口。* 简单网络管理协议(SNMP) 受管理的对象与服务器间的通信方法。拥有 SNMP 能力的管理代理软件包要么
15、在系统启动时加载,要么嵌入到设备的硬件中。拥有 SNMP 代理的设备由于不同的厂商而有各种不同的名称,但总的可分为 SNMP 管理设备和受 SNMP 管理的设备两种。SNMP 相容设备也拥有将 SNMP 集成到其软件或硬件上的代码。当设备中包含 SNMP 时,我们称之为可管理的设备。受 SNMP 管理的设备可与位于网络某处的 SNMP 服务器通信。设备与服务器有两种通信方式:投票及中断。接受投票的设备由服务器询问当前的状态或统计信息。投票通常在一定时间间隔执行,由网络服务器与受管理的设备进行通信。投票的问题是:信息不总是实时的,同时由于受管理的设备数量增多及投票频率过高的影响容易造成网络拥塞。
16、在基于中断的 SNMP 系统中,当受管理的设备出现异常时,向服务器发送消息,在这种方式下,服务器可以及时知道问题除非设备崩溃,此时,只有其他设备与已崩溃的设备进行连接时,系统才可能发现问题。基于中断的设备也存在自己的问题,最主要的是设备需要组织发送给服务器的消息,这将消耗掉系统时钟周期,从而降低系统的工作效率。同时也可能导致性能“瓶颈”从而引发其他问题。如果消息数据量较大,包含很多统计数据,组织和传输消息将导致网络性能下降。如果网络上出现较严重的问题,如电源掉电或电压过高,每个受管理的 SNMP 设备都设法向服务器发送中断消息以报告问题。这将导致网络拥塞从而使服务器接收到错误的消息。通常,将投
17、票与中断结合使用以弥补各自的缺陷,我们称这种组合方式为直接自陷投票(trap-directed polling),服务器定时统计或在管理员指导下统计设备信息。同时,每个受管理的设备在某种条件发生时产生中断消息,中断发生的条件比纯粹的中断驱动系统要严格。例如,如果用户使用中断SNMP,路由器负载每增长 10%都向服务器报告。如果使用直接自陷投票 SNMP,用户可从投票中获得路由器的负载,并且当路由器负载增加很快时,将向服务器发送中断消息。当服务器接收到此中断消息后,如果需要的话,可进一步查询设备的详细信息。SNMP 服务器软件包可与 SNMP 代理通信、传输或请求一系列不同类型的信息。通常由服务
18、器向代理请求统计信息,包括处理的包数量、设备的状态与设备类型相关的特殊信息等 (如 modem 失效连接的次数)及处理器的负载。服务器也可向代理发送指令以修改数据库 (MIB)中的项。服务器也可设置代理方的阈值或条件,当代理超过阈值或满足条件时向服务器发送中断消息,如 CPU 负载达到 90%。虽然服务器与代理间的通信内容趋向于抽象,但通信本身以非常直接简单的方式完成。如:服务器发送“当前负载” ,代理返回 75%。代理从不向服务器发送数据,除非产生中断消息或收到服务器请求,这意味着在没有进行投票或产生中断消息时,系统可能存在潜伏的问题。SNMPv1SNMPv1 是 SNMP 协议的最初实现。
19、它在请求注释(RFC)1157 中有描述,管理信息结构(SMI)规范中有功能描述。SNMPv1 运行在协议之上,如 UDP,IP,开放式系统互联参考模型无连接网络服务(CLNS) ,AppleTalk 数据报投递协议(DDP) ,和 Novell 网络数据报交换(IPX) 。SNMPv1 被广泛地使用,成为因特网内事实上的网络管理协议。SNMPv1 和管理信息结构管理信息结构(SMI)定义描述管理信息的规则,使用抽象语法符号 1(ASN.1) 。SNMPv1 管理信息结构被定义在 RFC1155 中。管理信息结构制定三种主要的规范:ASN.1 数据类型,SMI-specific 数据类型和 S
20、NMP MIB 表。SNMPv1 和 ASN.1 数据类型SNMPv1 管理信息结构指定所有被管理对象有一个抽象语法符号 1(ASN.1)数据类型的子集与它们关联。三种 ASN.1 数据类型是必需的:姓名、语法和编码。服务的名称被看作对象标识符(对象 ID) 。语法定义对象的数据类型(例如,整型或字符串) 。管理信息结构使用 ASN.1 语法定义的子集。编码数据描述信息怎么被关联到被管理对象,被格式化为一系列数据项,用于网络传输。SNMPv1 和管理信息结构-specific 数据类型SNMPv1 管理信息结构指定一系列管理信息结构-specific 数据类型的使用,被划分为两种:简单数据类型
21、和广泛应用数据类型。三种简单数据类型被定义在 SNMPv1 管理信息结构中,所有取唯一的值:整型、八位位组字符串和对象 ID。整型数据类型是一个范围在-2,147,483,648 to 2,147,483,647 之间的单独的整型。八位位组字符串是 0 到 65535 八位位组的规则序列。对象 ID 来自所有对象标识符依照 ASN.1 中的指定规则分配的。七种广泛应用数据类型存在在 SNMPv1 管理信息结构:网络地址、计数器、规格、时间记号、不透明物和无符号整型。网络地址表示一个来自一个特殊协议族的一个地址。SNMPv1 只支持 32 位 IP 地址。计数器是非负整型,增加直至达到最大值,然
22、后返回到零。在 SNMPv1 中,一个 32 位计数器大小被指定。规格是非负整型,能增加或减少,但它们保留达到的最大值。时间记号表示自一些事件的一秒的每一百。不透明物表示一个任意的编码,被使用在任意的信息字符串中,在管理信息系统中,不需要与严格的数据类型一致。整型表示有符号的整型值信息。这个数据类型重新定义了整型数据类型,在 ASN.1 中有任意的精确度,但是在管理信息结构中,是有限制的。无符号整型表示无符号整型值信息,整型数据类型在 ASN.1中有任意的精确度,但是在管理信息结构中是有限制的。SNMPv2SNMPv2 是初始版本 SNMPv1 的发展,最初,SNMPv2 在 1993 年以被
23、提议为因特网标准发布;当前,它是一个标准草案。在管理信息结构规范中有 SNMPv1,SNMPv2 功能功能详述。在理论上,SNMP2 提供了SNMPv1 的实现,包括附加的协议操作。SNMPv2 和管理信息结构:管理信息结构(SMI)定义了使用 ASN.1 描述管理信息的规则。SNMPv2 管理信息结构在 RFC1902 中有描述。它制定了一些对 SNMPv1 管理信息结构-specific 数据类型额外的增强,例如包含位字符串,网络地址和计数器。位字符串中只在 SNMPv2 中有定义,由零或更多的指定值的位组成。网络地址表示一个来自特殊协议族的地址。SNMPv1 只支持 32 位 IP 地址
24、,但 SNMPv2 能支持其他类型的地址。计数器是非负整型,增加直到它们达到最大值,然后返回到零。在 SNMPv1 中,32 位计数器大小是指定的。在 SNMPv2 中,32 位和 64 位计数器被定义。 管理信息结构信息模块:SNMPv2 管理信息结构也指定信息模块,指定一组关联的定义。有三种类型的管理信息结构信息模块:MIB 模块,顺从声明和性能声明。MIB 模块包含相关的被管理对象的定义。顺从声明提供描述一组被管理对象的一种系统方法,必须实现与标准一致。性能声明显示支持的精确层次,代理要求考虑 MIB 组。为了代理依照性能声明关联到每个代理,网络管理系统可以调整它的行为。SNMPv2 协
25、议操作:Get,GetNext 和 Set 操作用于 SNMPv1 中,在 SNMPv2 中可以正确地同样使用。SNMPv2 增加和增强一些协议操作。SNMPv2 Trap 操作,例如,提供同样的功能在 SNMPv2 中,但是它使用一种不同的消息格式,被设计用于替代 SNMPv1 陷阱。SNMPv2 也定义两种新的协议操作:GetBulk 和 Inform。GetBulk 操作被网络管理系统有效地重新取得大块的数据,例如表中的多行。GetBulk 填充一个合适的并足够多的被请求的应答消息。Inform 操作允许一个网络管理系统发送陷阱信息到另一个网络管理系统,然后重新行到一个应答。在 SNMP
26、v2 中,如果代理应答 GetBulk 操作不能提供链表中所有变量的值,它将提供部分结果。SNMPv2 对 SNMPv1 的一个大的改进,就是增强了安全机制。对管理系统安全的威胁主要有下面几种:信息篡改(modification):SNMPv2 标准中,允许管理站(manager)修改 agent 上的一些被管理对象的值。破坏者可能 会将传输中的报文加以改变,改成非法值,进行破坏。因此,协议应该能够验证收到的报文是 否在传输过程中被修改过。冒充(masquerade):SNMPv2 标准中虽然有访问控制能力,但这主要是从报文的发送者来判断的。那些没有访 问权的用户可能会冒充别的合法用户进行破坏
27、活动。因此 ,协议应该能够验证报文发送者 的真实性,判断是否有人冒充。报文流的改变(message stream modification):由于SNMPv2 标准是基于无连接传输服务的,报文的延迟、重发以及报文流顺序的改变都 是可能发生的。某些破坏者可能会故意将报文延迟、重发,或改变报文流的顺序,以达到破 坏的目的。因此,协议应该能够防止报文的传输时间过长,以给破坏者留下机会。报文内容的窃取(disclosure) :破坏者可能会截获传输中的报文,窃取它的内容。特别在创建新的 SNMPv2 Party 时,必 须保证它的内容不被窃取,因为以后关于这个Party 的所有操作都依赖于它。因此,协
28、议应该 能够对报文的内容进行加密,保证它不被窃听者获取。 针对上述安全性问题,SNMPv2 中增加了验证(Authentication)机制、加密(Privacy)机 制,以及时间同步机制来保证通信的安全。 SNMPv3 的体系结构RFC 2271 定义的 SNMPv3 体系结构,体现了模块化的设计思想,可以简单地实现功能的增加和修改。其特点:适应性强:适用于多种操作环境,既可以管理最简单的网络,实现基本的管理功能,又能够提供强大的网络管理功能,满足复杂网络的管理需求。扩充性好:可以根据需要增加模块。安全性好:具有多种安全处理模块。SNMPv3 主要有三个模块:信息处理和控制模块、本地处理模块
29、和用户安全模块。(1)信息处理和控制模块信息处理和控制模块(Message Processing And Control Model)在 RFC 2272 中定义,它负责信息的产生和分析,并判断信息在传输过程中是否要经过代理服务器等。在信息产生过程中,该模块接收来自调度器(Dispatcher)的 PDU,然后由用户安全模块在信息头中加入安全参数。在分析接收的信息时,先由用户安全模块处理信息头中的安全参数,然后将解包后的 PDU 送给调度器处理。(2)本地处理模块本地处理模块(Local Processing Model)的功能主要是进行访问控制,处理打包的数据和中断。访问控制是指通过设置代理
30、的有关信息使不同的管理站的管理进程在访问代理时具有不同的权限,它在PDU 这一级完成。常用的控制策略有两种:限定管理站可以向代理发出的命令或确定管理站可以访问代理的 MIB 的具体部分。访问控制的策略必须预先设定。SNMPv3 通过使用带有不同参数的原语使用来灵活地确定访问控制方式。(3)用户安全模块与 SNMPv1 和 SNMPv2 相比,SNMPv3 增加了三个新的安全机制:身份验证,加密和访问控制。其中,本地处理模块完成访问控制功能,而用户安全模块(User Security Model)则提供身份验证和数据保密服务。身份验证是指代理(管理站)接到信息时首先必须确认信息是否来自有权的管理
31、站(代理)并且信息在传输过程中未被改变的过程。实现这个功能要求管理站和代理必须共享同一密钥。管理站使用密钥计算验证码(它是信息的函数) ,然后将其加入信息中,而代理则使用同一密钥从接收的信息中提取出验证码,从而得到信息。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。下面简要介绍身份验证和加密的数学工具。SNMPv3 使用私钥(privKey)和验证密钥(authKey)来实现这两种功能。身份验证:RFC2104 中定义了 HMAC,这是一种使用安全哈希函数和密钥来产生信息验证码的有效工具,在互联网中得到了广泛的应用。SNMP 使用的 HMAC 可以分为两种:H
32、MAC-MD5-96 和 HMAC-SHA-96。前者的哈希函数是 MD5,使用 128 位 authKey 作为输入。后者的哈希函数是 SHA-1,使用 160 位 authKey 作为输入。加密:采用数据加密标准(DES)的密码组链接(CBC)码,使用 128 位的 privKey 作为输入。公共管理信息 CMIPCMIP 协议是在 OSI 制订的网络管理框架中提出的网络管理协议。与其说它是一个网络管 理协议,不如说它是一个网络管理体系。这个体系包含以下组成部分:一套用于描述协议的 模型,一组用于描述被管对象的注册、标识和定义的管理信息结构,被管对象的详细说明以 及用于远程管理的原语和服务
33、。CMIP与 SNMP 一样,也是由被管代理和管理者、管理协议与管 理信息库组成。在 CMIP 中,被管代理和管理者没有明确的指定,任何一个网络设备既可以是 被管代理,也可以是管理者。 CMIP 管理模型可以用三种模型进行描述:组织模型用于描述管理任务如何分配;功能模 型描述了各种网络管理功能和它们之间的关系;信息模型提供了描述被管对象和相关管理信 息的准则。从组织模型来说,所有 CMIP 的管理者和被管代理者存在于一个或多个域中,域是 网络管理的基本单元。从功能模型来说,CMIP主要实现失效管理、配置管理、性能管理、记 帐管理和安全性管理。每种管理均由一个特殊管理功能领域(SMFA,Spec
34、ial Management F unctional Area)负责完成。从信息模型来说,CMIP 的 MIB 库是面向对象的数据存储结构,每 一个功能领域以对象为 MIB 库的存储单元。 CMIP 是一个完全独立于下层平台的应用层协议,它的五个特殊管理功能领域由多个系统 管理功能(SMF)加以支持。相对来说,CMIP 是一个相当复杂和详细的网络管理协议。它的设 计宗旨与 SNMP 相同,但用于监视网络的协议数据报文要相对多一些。CMIP 共定义了 11 类 PDU 。在 CMIP 中,变量以非常复杂和高级的对象形式出现,每一个变量包含变量属性、变量行为 和通知。CMIP 中的变量体现了 CM
35、IP MIB 库的特征,并且这种特征表现了 CMIP 的管理思想,即 基于事件而不是基于轮询。每个代理独立完成一定的管理工作。 CMIP 的优点在于: 它的每个变量不仅传递信息,而且还完成一定的网络管理任务。这是 CMIP 协议的最大 特点,在 SNMP 中是不可能的。这样可减少管理者的负担并减少网络负载。 完全安全性。它拥有验证、访问控制和安全日志等一整套安全管理方法。 但是,CMIP 的缺点也同样明显: 它是一个大而全的协议,所以使用时,其资源占用量是 SNMP 的数十倍。它对硬件设备 的要求比人们所能提供的要高得多。 由于它在网络代理上要运行相当数量的进程,所以大大增加了网络代理的负担。
36、它的 MIB 库过分复杂,难于实现。迄今为止,还没有任何一个符合 CMIP 的网络管理系统 。SNMP 安全SNMP 缺乏任何的证明能力,导致多种安全攻击威胁。包括伪装事件,修改信息,消息序列,定时修改和揭发。伪装事件包括一个未授权的实体企图通过伪装成一个经授权的管理实体来执行管理操作。修改信息包括未授权的实体企图更改一个经授权的实体产生的消息,从而消息导致未授权管理或配置管理操作。当一个未授权的实体重新排序,延迟或拷贝和更新重放一个经授权实体产生的消息,消息序列和定时修改发生。当一个未经授权的实体析取存储在被管理对象中的值或学习须申报的监视管理器与代理间的交换事件时,揭发结果。因为 SNMP
37、 没有实现鉴定,许多卖主没有实现 Set 操作,因此削减了 SNMP 的监控能力。(4) ,SNMP 的基本原理一个 SNMP 管理的网络包含三个主要部分: 被管理设备、代理和网络管理系统(NMSs).图 1-1 描述了这三个组成的关系。N M SA g e n tM I BM a n a g e d d e v i c e sA g e n tM I BA g e n tM I B图 1-1:SNMP 被管理网络包含被管理设备、代理和网络管理系统一个被管理设备是一个包含一个 SNMP 代理并处于被管理的网络中的一个网络结点。被管理设备收集和存储管理信息,并使用 SNMP 使这些信息对网络管理
38、系统有用。被管理设备有时被称为网络元素,可能是路由器和访问服务器,交换机和网桥,集线器,计算机主机或打印机。网络管理系统执行应用程序监控被管理设备。网络管理系统为网络管理提供大量的处理和内存资源。在任何被管理的网络中至少存在一个网络管理系统。代理(agent)是一种特殊的软件(或固件),它包含了关于一个特殊设备和/或该设备所处环境的信息。当一个代理被安装到一个设备上时,上述的设备就被列为“被管理的”。换句话说,代理就是一个数据库。 数据库中所包含的数据随被安装设备的不同而不同。举例来说,在一个路由器上,代理将包含关于路由选择表、接收和发送包的总数等信息。而对于一个网桥来说,数据库可能包含关于转
39、发包数目和过滤表等信息。代理是与网络管理控制台通信的软件或固件。在这个控制台的“链路”上可以执行以下任务:网络管理工作站可以从代理中获得关于设备的信息。 网络管理工作站可以修改、增加或者删除代理中的表项,例如在由代理所维护的数据库中的路由选择表表项。网络管理工作站可以为一个特定的自陷设置阈值。 可以向网络管理工作站发送自陷。请记住,在被管理设备中的代理并不是自愿提供信息的,除非当有一个阈值被超过的事件发生时。 在一些偶然的情况下,在一个特定的设备上可能因为系统资源的缺乏,或者因为该设备不支持 SNMP 代理所需要的传输协议,而不能实现一个 SNMP 代理。这是否就意味着你不能监视这个设备呢?答
40、案并不是这样的,在这种情况下并不是完全没有办法的。你可以使用受托代理(proxy agent),它相当于外部设备(foreign device)。 受托代理并非在被管理的外部设备上运行,而是在另一个设备上运行。网络管理工作站首先与受托代理联系,并且指出(通过某种方法)受托代理与外部设备的一致性。然后受托代理把它接收到的协议命令翻译成任何一种外部设备所支持的管理协议。在这种情况下,受托代理就被称为应用程序网关(application gateway)。 如果外部设备不支持任何管理协议,那么受托代理必须使用一些被动的方法来监视这个设备。举例来说,一个令牌环网桥的受托代理可以监视它的性能,并且如果它
41、检测到任何由网桥所报告的拥挤错误时,它就会产生自陷。幸运的是,目前大多数网际互联设备类型都是支持 SNMP 可管理设备的,所以你可以很容易地使用一个 SNMP 可管理设备,例如集线器、网桥和路由器。有一些厂商甚至还在他们的网卡上提供SNMP 代理。2,管理信息库 MIB每个受管理的 SNMP 设备均维护包含统计信息及其他数据的数据库。我们称之为管理信息基或 MIB。 MIB 的每一项包含一种信息:对象类型、语法、访问字段及状态字段等。 MIB 的项通常由协议规定,并且严格遵守抽象语法规则 1(ASN.1)的格式。对象类型为项的名称,通常为简单的名字。语法是一个值字段,通常为字符串或整型,并不是
42、所有的 MIB 的项均包含值字段。访问字段用于定义项的访问权限,通常有以下四类:只读、可读/写、只可写或不可访问。状态字段包含指示值,标明 MIB 项是否为命令、可选或作废。命令表示受管理的设备必须执行该项。可选表示受管理的设备可以选择执行该项,作废表示不执行。目前执行的 MIB 有两种,MIB-1 和 MIB-2。两者结构不同,MIB-1 创建于 1988 年,其表中包含 114 项,分为两组,支持 MIB-1 的受管理的设备必须支持所有的适用于该设备的组。例如:受管理的打印机不能执行处理外部网关协议的项,与外部网关协议 (EGP)相关的项用于路由器或类似的设备。打印机需要指明它可处理的项。
43、MIB-2 是 MIB-1 的扩展,于 1990 年提出。它包含 171 项共分为 10 组。除了扩展了原有的组外,又新增加了组。与 MIB-1 类似,支持 MIB-2 的设备必须执行所有适用于该类型的组。用户将会发现许多设备仅支持 MIB-1 而不支持 MIB-2。除了 MIB-1 和 MIB-2 外,还有许多正在测试的 MIB,它们包含许多不同的组和项。但它们并未被广泛使用。某些公司开发 MIB 以供自己使用,某些厂商也提供对这些 MIB 的支持。图 3 画的是管理信息库的一部分,它又称为对象命名(object naming tree) 。 根 ccitt(0) iso(1) joint-
44、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
45、) 图 1-2 管理信息库的对象命名举例对象命名树的顶级对象有三个,即 ISO、ITU-T 和这两个组织的联合体。在 ISO 的下面有 4 个结点,其中的饿一个(标号 3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是 6) ,再下面就是 Internet(标号是 1) 。在只讨论 Internet 中的对象时,可只画出 Internet以下的子树(图中带阴影的虚线方框) ,并在 Internet 结点旁边标注上1.3.6.1即可。在 Internet 结点下面的第二个结点是 mgmt(管理) ,标号是 2。再下面是管理信息库,原先的结点名
46、是 mib。1991 年定义了新的版本 MIB-II,故结点名现改为 mib-2,其标识为1.3.6.1.2.1,或Internet(1) .2.1。这种标识为对象标识符。MIB-I 中定义了 114 种管理对象,并分为 8 个组,分别为 system 组,interface 组,at 组,ip 组,icmp 组,tcp 组,udp 组,egp 组。MIB-II 与 MIB-I 兼容,电脑但增加了三个新的管理对象。分别时 cmot 组,transmission 组和 snmp 组,其中:1) system:有关系统的整体信息。2) interface: 关于每一个从系统到子网接口的信息。3)
47、at: (地址转换,被替换):Internet 到子网地址映射地址转化表的描述。4) icmp: 与系统种 ICMP 实现与执行经历有关的信息。5) tcp:与系统 TCP 实现和执行经历有关的信息。6) udp:与系统 UDP 实现和执行经历有关的信息。7) egp:与系统 EGP 实现和执行经历有关的信息。8) dot3(传输):有关每个系统接口的传输方案和访问协议的信息。9) snmp:与系统 SNMP 实现和执行经历有关的信息。下面介绍几个重要的几个组:表 1-1:system 表对象 语法 访问 说明sysDescr DisplayString RO 对硬件,操作系统等实体的说明Sy
48、sObjectID OBJECTIDENTIFIERRO 实体包含的网络管理子系统的供应商授权身份sysUpTime TimeTicks RO 自系统的网络管理部分最近一次重启的时间sysContact DisplayString(SIZE(0255))RW 被管理节点联系人的身份和联系信息System DisplayString(SIZE(0255))RW 在管理商赋予被管理节点的名称SysServices INTEGER(0127) RO 该节点的物理位置SysLocation DisplayString(SIZE(0255))RW 该节点的物理位置表 1-2:Interfaces 表对象
49、 语法 访问 说明ifNumber INTEGER RO 网络接口的数量ifTable SEQUENCE OF ifEntry NA 接口条目的列表ifIndex INTEGER NA 每一个接口的唯一取值ifDescr DisplayString(SIZE(0255)RO 关于接口的信息,包括制造商的名称,产品名称和硬件接口版本ifType INTEGER RO 接口的类型,按照物理,链路协议进行区分ifMtu INTEGER RO 最大协议数据单元的大小。按字节算ifSpeed Gauge RO 接口的当前数据速率容量的估计ifPhysAddress PhysAdress RO 接口的网络层之下的协议的地址ifAdminStatus INTEGER RW 理想的接口状态ifOperStatus INTEGER RO 当前操作接口状态ifLastChange TimeTicks RO 接口进入到当前操作转台时的时systemUptime 的取值ifInOctets Counter RO 接口接收的总的字节数ifInUcastPkts Counter RO 递交给较高层协议的