免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4042 | 回复: 1
打印 上一主题 下一主题

SNMP协议总结 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-04-29 17:05 |只看该作者 |倒序浏览
SNMP协议总结



      简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway Monitor Protocol)。利用SNMP,一个管理工作站可以远程管理所有支持这种协议的网络设备,包括监视网络状态、修改网络设备配置、接收网络事件警告等。虽然SNMP开始是面向基于IP的网络管理,但作为一个工业标准也被成功用于电话网络管理。
1.网络管理

基于TCP/IP的网络管理包含两个部分:网络管理站(也叫管理进程,manager Station)和被管的网络单元(也叫被管设备 Network Element)。被管设备种类繁多,例如:路由器、X 终端、终端服务器和打印机等。这些被管设备的共同点就是都运行TCP/IP协议。被管设备端和管理相关的软件叫做代理程序( agent )或代理进程。管理站一般都是带有彩色监视器的工作站,可以显示所有被管设备的状态(例如连接是否掉线、各种连接上的流量状况等)。

管理进程和代理进程之间的通信可以有两种方式。一种是管理进程向代理进程发出请求,询问一个具体的参数值(例如:你产生了多少个不可达的ICMP端口)。另外一种方式是代理进程主动向管理进程报告有某些重要的事件发生(例如:一个连接口掉线了)。当然,管理进程除了可以向代理进程询问某些参数值以外,它还可以按要求改变代理进程的参数值(例如:把默认的IP TTL值改为6 4)。

基于T C P/IP的网络管理包含3个组成部分:

1)管理信息库MIB(Management Information Base)。

管理信息库包含所有代理进程的所有可被查询和修改的参数。RFC 1213 [McCloghrie and Rose 1991]定义了第二版的MIB,叫做MIB-II;

2)管理信息结构SMI(Structure of Management Information)

它是关于MIB的一套公用的结构和表示符号,这个在RFC 1155 [Rose and McCloghrie 1990] 中定义。例如:SMI定义计数器是一个非负整数,它的计数范围是0~4 294 967 295,当达到最大值时,又从0开始计数;

3)简单网络管理协议SNMP

管理进程和代理进程之间的通信协议,叫做简单网络管理协议SNMP(Simple Network Management Protocol)。在RFC 1157 [Case et al. 1990]中定义。S N M P包括数据报交换的格式等。尽管可以在运输层采用各种各样的协议,但是在SNMP中,用得最多的协议还是UDP。

2.SNMP体系

SNMP采用了Client/Server模型的特殊形式:代理/管理站模型。对网络的管理与维护是通过管理工作站与SNMP代理间的交互工作完成的。每个SNMP从代理负责回答SNMP管理工作站(主代理)关于MIB定义信息的各种查询。图1是SNMP协议的实现模型。





图1  SNMP协议的实现模型

3.SNMP报文种类

SNMP代理和管理站通过SNMP协议中的标准消息进行通信,每个消息都是一个单独的数据报。SNMP使用UDP(用户数据报协议)作为第四层协议(传输协议),进行无连接操作。SNMP规定了5种协议消息(也就是SNMP报文),用来在管理进程和代理之间的交换。

Get-Request:从代理进程处提取一个或多个参数值;

Get-Next-Request:从代理进程处提取紧跟当前参数值的下一个参数值;

Get-Response:返回的一个或多个参数值,这个操作是由代理进程发出的,它是前面三种操作的响应操作。  

SNMP管理站用Get-Request消息从拥有SNMP代理的网络设备中检索信息,而SNMP代理则用Get-Response消息响应。

Get-Next-Request用于和Get-Request组合起来查询特定的表对象中的列元素。如:首先通过下面的原语获得所要查询的设备的接口数:{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifNumber(2)}然后再通过下面的原语,进行查询(其中第一次用Get-Request,其后用Get-Next-Request):{iso org(3) dod(6) internet(1) mgmt(2) mib(1) interfaces(2) ifTable(2)}

Set-Request :SNMP管理站用Set-Request 可以对网络设备进行远程配置(包括设备名、设备属性、删除设备或使某一个设备属性有效/无效等)。

Trap:SNMP代理使用Trap向SNMP管理站发送非请求消息,一般用于描述某一事件的发生。前面的Request操作是由管理进程向代理进程发出的,后面的Response和Trap操作是代理进程发给管理进程的,为了简化起见,前面3个操作今后叫做get、get-next和set操作。,在代理进程端是用熟知端口161接收get或set报文,而在管理进程端是用熟知端口162来接收trap报文。

4.SNMP报文格式

SNMP消息报文包含两个部分:SNMP报头和协议数据单元PDU。





图2 SNMP报文格式

图2是封装成UDP数据报的5种操作的SNMP报文格式。可见一个SNMP报文共有三个部分组成,即公共SNMP首部、get/set首部trap首部、变量绑定。

版本识别符(version identifier):确保SNMP代理使用相同的协议,每个SNMP代理都直接抛弃与自己协议版本不同的数据报。

团体名(Community Name):用于SNMP从代理对SNMP管理站进行认证;如果网络配置成要求验证时,SNMP从代理将对团体名和管理站的IP地址进行认证,如果失败,SNMP从代理将向管理站发送一个认证失败的Trap消息(见后);

协议数据单元(PDU):其中PDU指明了SNMP的消息类型及其相关参数。

4.1公共SNMP首部

版本写入版本字段的是版本号减1,对于SNMP(即SNMPV1)则应写入0。

共同体(community) 共同体就是一个字符串,作为管理进程和代理进程之间的明文口令,常用的是6个字符“public”。

PDU类型根据PDU的类型,填入0~4中的一个数字,其对应关系如表1所示。

表1 PDU类型PDU

PDU     类型
       0          get-request
       1          get-next-request
       2          get-response
       3          set-request
       4          Trap

4.2get/set首部

请求标识符(request ID) 这是由管理进程设置的一个整数值。代理进程在发送get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。

差错状态(error status)由代理进程回答时填入0~5中的一个数字,见表2的描述

表2 查错状态描述表差错状态

差错状态 名字 说明
         0 noError 一切正常
         1 tooBig 代理无法将回答装入一个SNMP报文中
         2 noSuchName 操作指明了一个不存在的变量
         3 badValue 一个set操作指明了一个无效值或无效语法
         4 readOnly 管理进程试图修改一个只读变量
         5 genErr 某些其他的查错

差错索引(errorl index) 当出现noSuchName、badValue或readOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。

4.3trap首部

企业(enterprise)

填入trap报文的网络设备的对象标识符。此对象标识符肯定是在图3的对象命名树上的enterprise结点{1.3.6.1.4.1}下面的一棵子树上。

trap类型 此字段正式的名称是generic-trap,共分为表3中的7种。

表3 trap类型说明trap类型

trap类型 名字                        说明
       0            coldStart                   代理进行了初始化
       1            warmStart                 代理进行了重新初始化
       2            linkDown                   一个接口从工作状态变为故障状态
       3            linkUp                        一个接口从故障状态变为工作状态
       4           authenticationFailure 从SNMP管理进程接收到具有一个无效共同体的报文
       5           egpNeighborLoss       一个EGP相邻路由器变为故障状态
       6           enterpriseSpecific       代理自定义的事件,需要用后面的“特定代码”来指明

当使用上述类型2、3、5时,在报文后面变量部分的第一个变量应标识响应的接口。

特定代码(specific-code):指明代理自定义的时间(若trap类型为6),否则为0。

时间戳(timestamp):指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10ms。例如时间戳为1908表明在代理初始化后1908ms发生了该时间。

4.4变量绑定(variable-bindings)

指明一个或多个变量的名和对应的值。在get或get-next报文中,变量的值应忽略。

5.管理信息库MIB

管理信息库MIB指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。MIB给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP的管理信息库采用和域名系统DNS相似的树型结构,它的根在最上面,根没有名字。图3画的是管理信息库的一部分,它又称为对象命名(objectnamingtree)。




图3 管理信息库的对象命名举例

管理信息库MIB,就是所有代理进程包含的,能够被管理进程进行查询和设置的信息的结构。IETF规定的管理信息库MIB(其中定义了可访问的网络设备及其属性,由对象标识符――OID:Object Identifier唯一指定)的一套公用的结构与表示符号称之为SMI。MIB是一个树形结构,SNMP协议消息通过遍历MIB树形目录中的节点来访问网络中的设备。

对象命名是一种数据类型,它指明一种“授权”命名的对象。“授权”的意思就是这些标识不是随便分配的,它是由一些权威机构进行管理和分配的。对象标识是一个整数序列,以点(“.”)分隔。这些整数构成一个树型结构,对象标识从树的顶部开始,顶部没有标识,以root表示。图3显示了在S N M P中用到的这种树型结构。所有的M I B变量都从1.3 .6 .1 .2 .1这个标识开始。树上的每个结点同时还有一个文字名。例如标识1.3.6.1.2.1就和iso.org.dod.internet.memt.mib对应。这主要是为了人们阅读方便。在实际应用中,也就是说在管理进程和代理进程进行数据报交互时,MIB变量名是以对象标识来标识的,当然都是以1.3.6.1.2.1开头的。

对象命名树的顶级对象有三个,即ISO、ITU-T和这两个组织的联合体。在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个类别,见表4。现在的mib-2所包含的信息类别已超过40个。

表4最初的结点mib管理的信息类别类别

类别                       标号 所包含的信息
       system                   (1) 主机或路由器的操作系统
       interfaces               (2) 各种网络接口及它们的测定通信量
       address translation (3) 地址转换(例如ARP映射)
       ip                           (4) Internet软件(IP分组统计)
       icmp                      (5) ICMP软件(已收到ICMP消息的统计)
       tcp                        (6) TCP软件(算法、参数和统计)
       udp                       (7) UDP软件(UDP通信量统计)
       egp                       ( EGP软件(外部网关协议通信量统计)

应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。

这里要提一下MIB中的对象{1.3.6.1.4.1},即enterprises(企业),其所属结点数已超过3000。例如IBM为11.3.6.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。世界上任何一个公司、学校只要用电子邮件发往iana-mib@isi.edu进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用SNMP进行管理。

6.管理信息结构SMI

SNMP中,数据类型并不多。这里我们就讨论这些数据类型,而不关心这些数据类型在实际中是如何编码的。

INTEGER

一个变量虽然定义为整型,但也有多种形式。有些整型变量没有范围限制,有些整型变量定义为特定的数值(例如,IP的转发标志就只有允许转发时的或者不允许转发时的这两种),有些整型变量定义一个特定的范围(例如,UDP和TCP的端口号就从0到65535);

OCTERSTRING

0或多个8bit字节,每个字节值在0~255之间。对于这种数据类型和下一种数据类型的BER编码,字符串的字节个数要超过字符串本身的长度。这些字符串不是以NULL结尾的字符串;

DisplayString

0或多个8bit字节,但是每个字节必须是ASCII码。在MIB-II中,所有该类型的变量不能超过255个字符(0个字符是可以的);

OBJECTIDENTIFIER

NULL代表相关的变量没有值。例如,在get或get-next操作中,变量的值就是NULL,因为这些值还有待到代理进程处去取;

IpAddress

4字节长度的OCTERSTRING,以网络序表示的IP地址。每个字节代表IP地址的一个字段;

PhysAddress

OCTERSTRING类型,代表物理地址(例如以太网物理地址为6个字节长度);

Counter

非负的整数,可从0递增到232—1(4294976295)。达到最大值后归0;

Gauge

非负的整数,取值范围为从0到4294976295(或增或减)。达到最大值后锁定直到复位。例如,MIB中的tcpCurrEstab就是这种类型的变量的一个例子,它代表目前在ESTABLISHED或CLOSE_WAIT状态的TCP连接数;

TimeTicks

时间计数器,以0.01秒为单位递增,但是不同的变量可以有不同的递增幅度。所以在定义这种类型的变量的时候,必须指定递增幅度。例如,MIB中的sysUpTime变量就是这种类型的变量,代表代理进程从启动开始的时间长度,以多少个百分之一秒的数目来表示;

SEQUENCE

这一数据类型与C程序设计语言中的“structure”类似。一个SEQUENCE包括0个或多个元素,每一个元素又是另一个ASN.1数据类型。例如,MIB中的UdpEntry就是这种类型的变量。它代表在代理进程侧目前“激活”的UDP数量(“激活”表示目前被应用程序所用)。在这个变量中包含两个元素:

IpAddress类型中的udpLocalAddress,表示IP地址。

INTEGER类型中的udpLocalPort,从0到65535,表示端口号。

SEQUENDEOF

这是一个向量的定义,其所有元素具有相同的类型。如果每一个元素都具有简单的数据类型,例如是整数类型,那么我们就得到一个简单的向量(一个一维向量)。但是我们将看到,SNMP在使用这个数据类型时,其向量中的每一个元素是一个SEQUENCE(结构)。因而可以将它看成为一个二维数组或表。

7.SNMPv2协议

简单性是SNMP标准取得成功的主要原因。因为在大型的、多厂商产品构成的复杂网络中,管理协议的明晰是至关重要的,但同时这又是SNMP的缺陷所在——为了使协议简单易行,SNMP简化了不少功能,如:

没有提供成批存取机制,对大块数据进行存取效率很低;

没有提供足够的安全机制,安全性很差;

只在TCP/IP协议上运行,不支持别的网络协议;

没有提供manager与manager之间通信的机制,只适合集中式管理,而不利于进行分布式管理;

只适于监测网络设备,不适于监测网络本身。

针对这些问题,对它的改进工作一直在进行。如1991年11月,推出了RMON(RemoteNetworkMonitoring)MIB,加强SNMP对网络本身的管理能力。它使得SNMP不仅可管理网络设备,还能收集局域网和互联网上的数据流量等信息。1992年7月,针对SNMP缺乏安全性的弱点,又公布了S-SNMP(SecureSNMP)草案。

到1993年初,又推出了SNMPVersion2即SNMPv2(推出了SNMPv2以后,SNMP就被称为SNMPv1)。SNM-Pv2包容了以前对SNMP所做的各项改进工作,并在保持了SNMP清晰性和易于实现的特点以外,功能更强,安全性更好,具体表现为:

提供了验证机制、加密机制、时间同步机制等,安全性大大提高,

提供了一次取回大量数据的能力,效率大大提高;

增加了manager和manager之间的信息交换机制,从而支持分布式管理结构。由中间(intermediate)manager来分担主manager的任务,增加了远地站点的局部自主性。

可在多种网络协议上运行,如OSI、Appletalk和IPX等,适用多协议网络环境(但它的缺省网络协议仍是UDP)。

根据Carnegie-Mellin大学(SNMPv2标准的制定者之一)的StevenWaldbusser测试结果,SNMPv2的处理能力明显强于SNMPv1,大约是SNMPv1的15倍。

SNMPv2一共由12份协议文本组成(RFC1441-RFC1452),已被作为Internet的推荐标准予以公布。可看出它支持分布式管理。一些站点可以既充当manager又充当agent,同时扮演两个角色。作为agent,它们接受更高一级管理站的请求命令,这些请求命令中一部分与agent本地的数据有关,这时直接应答即可;另一部分则与远地agent上的数据有关。这时agent就以manager的身份向远地agent请求数据,再将应答传给更高一级的管理站。在后一种情况下,它们起的是proxy(代理)的作用。

下面将SNMPv2标准加以详细介绍,包括SNMPv2标准的中的安全机制,SNMPv2标准中的Party实体,以及如何从通信协议操作、SMI、MIB三方面来看SNMPv2标准

7.1 SNMPv2标准中的安全机制

SNMPv2对SNMPv1的一个大的改进,就是增强了安全机制。对管理系统安全的威胁主要有下面几种

(1)信息篡改(modification)

SNMPv2标准中,允许管理站(manager)修改agent上的一些被管理对象的值。破坏者可能会将传输中的报文加以改变,改成非法值,进行破坏。因此,协议应该能够验证收到的报文是否在传输过程中被修改过;

(2)冒充(masquerade)

SNMPv2标准中虽然有访问控制能力,但这主要是从报文的发送者来判断的。那些没有访问权的用户可能会冒充别的合法用户进行破坏活动。因此,协议应该能够验证报文发送者的真实性,判断是否有人冒充;

(3)报文流的改变(messagestreammodification)

由于SNMPv2标准是基于无连接传输服务的,报文的延迟、重发以及报文流顺序的改变都是可能发生的。某些破坏者可能会故意将报文延迟、重发,或改变报文流的顺序,以达到破坏的目的。因此,协议应该能够防止报文的传输时间过长,以给破坏者留下机会;

(4)报文内容的窃取(disclosure)

破坏者可能会截获传输中的报文,窃取它的内容。特别在创建新的SNMPv2Party时,必须保证它的内容不被窃取,因为以后关于这个Party的所有操作都依赖于它。因此,协议应该能够对报文的内容进行加密,保证它不被窃听者获取。

针对上述安全性问题,SNMPv2中增加了验证(Authentication)机制、加密(Privacy)机制,以及时间同步机制来保证通信的安全。

7.2 SNMPv2 Party

SNMPv2标准中增加了一种叫做Party的实体。Party是具有网络管理功能的最小实体,它的功能是一个SNMPv2entity(管理实体)所能完成的全部功能的一个子集。每个manager和agent上都分别有多个Par-ty,每个站点上的各个Party彼此是平等的关系,各自完成自己的功能。实际的信息交换都发生在Party与Party之间(在每个发送的报文里,都要指定发送方和接收方的Par-ty)。每个Party都有一个唯一的标识符(partyidentity)、一个验证算法和参数以及一个加密算法和参数。Party的引入增加了系统的灵活性和安全性,可以赋予不同的人员以不同的管理权限。SNMPv2中有三种安全性机制:验证(authentication)机制、加密(privacy)机制和访问控制(accesscontrol)机制。这些机制都工作在Party一级,而不是manager/agent一级。

7.3 SNMPv2协议操作

SNMPv2标准的核心就是通信协议——它是一个请求/应答式的协议。这个协议提供了在manager与agent、manager与manager之间交换管理信息的直观、基本的方法。每条SNMPv2的报文都由一些域构成.

如果发送方、接收方的两个Party都采用了验证(authentication)机制,它就包含与验证有关的信息;否则它为空(取NULL)。验证的过程如下:发送方和接收方的Party都分别有一个验证用的密钥(secretkey)和一个验证用的算法。报文发送前,发送方先将密钥值填入图中digest域,作为报文的前缀。然后根据验证算法,对报文中digest域以后(包括digest域)的报文数据进行计算,计算出一个摘要值(digest),再用摘要值取代密钥,填入报文中的digest域。接收方收到报文后,先将报文中的摘要值取出来,暂存在一个位置,然后用发送方的密钥放入报文中的digest。将这两个摘要值进行比较,如果一样,就证明发送方确实是srcParty域中所指明的那个Party,报文是合法的;如果不一样,接收方断定发送方非法。验证机制可以防止非法用户"冒充"某个合法Party来进行破坏。

authInfo域中还包含两个时间戳(timestamp),用于发送方与接收方之间的同步,以防止报文被截获和重发。

SNMPv2的另一大改进是可以对通信报文进行加密,以防止监听者窃取报文内容。除了privDst域外,报文的其余部分可以被加密。发送方与接收方采用同样的加密算法(如DES)。通信报文可以不加任何安全保护,或只进行验证,也可以二者都进行。

8.SNMPv3的体系结构

RFC 2271定义的SNMPv3体系结构,体现了模块化的设计思想,可以简单地实现功能的增加和修改。其特点:

适应性强:适用于多种操作环境,既可以管理最简单的网络,实现基本的管理功能,又能够提供强大的网络管理功能,满足复杂网络的管理需求;

扩充性好:可以根据需要增加模块;

安全性好:具有多种安全处理模块。SNMPv3主要有三个模块:信息处理和控制模块、本地处理模块和用户安全模块

(1)信息处理和控制模块  

信息处理和控制模块(Message Processing And Control Model)在RFC 2272中定义,它负责信息的产生和分析,并判断信息在传输过程中是否要经过代理服务器等。在信息产生过程中,该模块接收来自调度器(Dispatcher)的PDU,然后由用户安全模块在信息头中加入安全参数。在分析接收的信息时,先由用户安全模块处理信息头中的安全参数,然后将解包后的PDU送给调度器处理。

(2)本地处理模块  

本地处理模块(Local Processing Model)的功能主要是进行访问控制,处理打包的数据和中断。访问控制是指通过设置代理的有关信息使不同的管理站的管理进程在访问代理时具有不同的权限,它在PDU这一级完成。常用的控制策略有两种:限定管理站可以向代理发出的命令或确定管理站可以访问代理的MIB的具体部分。访问控制的策略必须预先设定。SNMPv3通过使用带有不同参数的原语使用来灵活地确定访问控制方式。  

(3)用户安全模块  

与SNMPv1和SNMPv2相比,SNMPv3增加了三个新的安全机制:身份验证,加密和访问控制。其中,本地处理模块完成访问控制功能,而用户安全模块(User Security Model)则提供身份验证和数据保密服务。身份验证是指代理(管理站)接到信息时首先必须确认信息是否来自有权的管理站(代理)并且信息在传输过程中未被改变的过程。实现这个功能要求管理站和代理必须共享同一密钥。管理站使用密钥计算验证码(它是信息的函数),然后将其加入信息中,而代理则使用同一密钥从接收的信息中提取出验证码,从而得到信息。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。  

下面简要介绍身份验证和加密的数学工具。SNMPv3使用私钥(privKey)和验证密钥(authKey)来实现这两种功能。  

身份验证:RFC2104中定义了HMAC,这是一种使用安全哈希函数和密钥来产生信息验证码的有效工具,在互联网中得到了广泛的应用。SNMP使用的HMAC可以分为两种:HMAC-MD5-96和HMAC-SHA-96。前者的哈希函数是MD5,使用128位authKey作为输入。后者的哈希函数是SHA-1,使用160位authKey作为输入。  

加密:采用数据加密标准(DES)的密码组链接(CBC)码,使用128位的privKey 作为输入。

论坛徽章:
0
2 [报告]
发表于 2011-04-29 17:06 |只看该作者
9.公共管理信息CMIP

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

CMIP管理模型可以用三种模型进行描述:组织模型用于描述管理任务如何分配;功能模型描述了各种网络管理功能和它们之间的关系;信息模型提供了描述被管对象和相关管理信息的准则。从组织模型来说,所有CMIP的管理者和被管代理者存在于一个或多个域中,域是网络管理的基本单元。从功能模型来说,CMIP主要实现失效管理、配置管理、性能管理、记帐管理和安全性管理。每种管理均由一个特殊管理功能领域(SMFA,SpecialManagementFunctionalArea)负责完成。从信息模型来说,CMIP的MIB库是面向对象的数据存储结构,每一个功能领域以对象为MIB库的存储单元。

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

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

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

但是,CMIP的缺点也同样明显:

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

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

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

10.SNMP与CMIP的比较

SNMP与CMIP是网络界最主要的两种网络管理协议。在未来的网络管理中,究竟哪一种将占据优势,一直是业界争论的话题。

总的来说,SNMP和CMIP两种协议是同大于异。两者的管理目标、基本组成部分都基本相同。在MIB库的结构方面,很多厂商将SNMP的MIB扩展成与CMIP的MIB结构相类似,而且两种协议的定义都采用相同的抽象语法符号(ASN.1)。

不同之处,首先,SNMP面向单项信息检索,而CMIP则面向组合项信息检索。其次,在信息获得方面,SNMP主要基于轮询方式,而CMIP主要采用报告方式。再次,在传送层支持方面,SNMP基于无连接的UDP,而CMIP倾向于有连接的数据传送。此外,两者在功能、协议规模、性能、标准化、产品化方面还有相当多的不同点。

11.网络管理协议的前景

在网络界,除SNMP、SNMPv2、CMIP以外,现在正兴起一些新的网络管理协议和环境。其中,以分布式计算环境(DME,Distributed Management Environment)最为著名。DME是由OSF(开放软件基金会)提出的。OSF是一个非盈利的研究和开发组织,其目标是提供一个软件解决方案,使来自不同厂家的计算机可以协同工作于一个真正的开放系统计算环境下。其文档以RFT(RequestforTechnology)的形式提供。

DME代表了一种结构。在此结构下,管理系统和网络可以很好地结合。它可以构成分布式系统管理的基础,并保持与现有网络管理方案的结合。它独立于操作系统,并支持事实上的和正式的网络与系统管理标准。DME的结构有许多新颖之处。以前,无论是网络管理还是系统管理,管理员通过修改与一个资源或服务相关的数据、通过对一些服务和数据进行操作来进行管理。而在DME环境下,信息和操作都被划分为对象。DME以对象为单位对系统进行管理。所有DME管理操作有一个一致的界面和风格:通过与对象通信。这种设计的很大好处是模块性很强,完全是一种面向对象的管理方式,系统易于管理和开发。ISV们可以建立自己的某些特定管理功能的对象库或被管对象库,然后将其加入到已有的管理应用程序中。这一切由于DME面向对象的管理方式而变得简单。

DME有两个关键概念:应用程序服务和框架(Framework)。应用程序服务提供一些最重要的系统管理功能,而框架则提供开发系统管理应用程序所用的构造模块(buildingblock)。这种设计提供了与现有解决方案的一致性,并可在多厂商分布式网络环境中进行互操作。DME应用程序服务包括软件管理(SoftwareManagement)、许可权管理(LicenseManagement)、打印服务(PrintingServices)和事件管理(EventManagement)。它们以一组模块和API的形式提供,有一个一致的用户界面。DME还提供机制,使开发商可以很容易地加入新的服务。DME框架由一组功能全面的构造模块组成,使新网管应用程序的开发变得简单。这些组成是:

管理请求代理(MRB,ManagementRequestBrokers)MRB是DME框架的核心组成。在DME下,所有对对象的请求都被MRB接收。MRB负责找到这个对象在网络中的位置,然后转发请求。MRB支持现有的网络管理协议SNMP、CMIP,用它们收集网络中的设备信息。MRB还支持基于RPC(RemoteProcedureCall)的管理协议。

对象服务器对象服务器用来管理和维护网络中的对象。DME提供两种类型的对象服务器,一个用于短期任务(如更换口令等),另一个用于长期任务(如监视一个网络)。

事件管理服务当网络中出现问题或发生变化时,需要通知管理应用程序。DME的事件管理服务提供了转发、登录和过滤这类通知的功能,可以对过滤器进行编程来分析一个事件通告的属性,并将此事件与某个特定的动作联系起来。另外,为了使此服务易于使用,DME还提供了用于定义事件的高级模板语言。

数据管理服务DME提供了一个管理数据库,用来存放网络被管对象的有关数据信息。此管理数据库存放在磁盘上。目前,DME的主要问题是缺乏支持,尚未得到进一步的实践检验。

12.SNMP安装配置

(1)Linux下的安装参考Net-SNMP安装

(2)Windows 2000上配置SNMP服务

在Windows2000下安装SNMP

1)打开Windows 2000控制面板

2)双击“添加与删除程序”图标

3)选择添加与删除Windows组件,组件面板显现。

4)勾上管理和监控工具箱

5)单击“详细”

6)勾上简单网管协议并单击确定

7)单击下一步继续直到完成。

配置Windows2000的SNMP服务

1)打开Windows 2000控制面板

2)双击管理工具图标

3)双击服务图标

4)选择SNMP Service

5)编辑属性,选择代理标签

6)确认Contact和location被选中

7)选择陷井标签

敲入Community Name:public

9)单击加入到列表

10)在陷井目的地,单击Add,并填入Ip address.

11)单击确定

12)选择安全标签

13)高亮public并单击编辑,将Community Rightes改为Read Create

14)单击确定

15)停止SNMP 服务,并重起

16)双击SNMP Trap Service,选择起动方式“自动”

17)单击确定

1停止SNMP Trap Service并重启

13.NET-SNMP使用

见文档《net-snmp安装配置手册.pdf》  net-snmp安装配置手册.pdf (508.21 KB, 下载次数: 43)

2011-1-25 11:36 上传下载次数: 43

14.参考URL

http://net-snmp.cn/snmp/SNMP-study.html
       http://net-snmp.cn/snmp/snmp2.html
       http://www.cnpaf.net/Class/SNMP/200510/5038.html
       http://www.cnpaf.net/Class/SNMP/200408/43.html
       http://www.cnpaf.net/Class/SNMP/200408/44.html
       http://www.cnpaf.net/Class/SNMP/200408/42.html
       http://www.cnpaf.net/Class/SNMP/200510/5037.html
       http://www.cnpaf.net/Class/SNMP/200408/41.html
       http://www.cnpaf.net/Class/SNMP/200408/40.html
       http://www.cnpaf.net/Class/SNMP/200408/39.html
       http://www.cnpaf.net/Class/SNMP/200408/37.html
       http://www.cnpaf.net/Class/SNMP/200408/36.html
       http://www.cnpaf.net/Class/SNMP/200408/35.html
       相关站点
       SNMP协议开发乐园 http://net-snmp.cn/
       中国协议网 http://www.cnpaf.net
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP