附:
SNMP
的技术术语
术语
|
术语描述
|
SNMP
|
Simple Network Management Protocol(
简单网络管理协议
)
|
是一个标准的用于管理基于
IP
网络上设备的协议
|
|
MIB
|
Management Information Base(
管理信息库
)
|
定义代理进程中所有可被查询和修改的参数
|
|
SMI
|
Structure of Management Information(
管理信息结构
)
|
SMI
定义了
SNMP
中使用到的
ASN.1
类型、语法,并定义了
SNMP
中使用到的类型、宏、符号等。
SMI
用于后续协议的描述和
MIB
的定义。每个版本的
SNMP
都可能定义自己的
SMI
|
|
ASN.1
|
Abstract Syntax Notation One(
抽象语法定义
)
|
用于定义语法的正式语言,在
SNMP
中定义
SNMP
的协议数据单元
PDU
和管理对象
MIB
的格式。
SNMP
只使用了
ASN.1
中的一部分,而且使用
ASN.1
的语言特性定义了一些自定义类型和类型宏
,这些组成了
SMI
|
|
PDU
|
Protocol Data Unit(
协议数据单元
)
|
它是网络中传送的数据包。每一种
SNMP
操作,物理上都对应一个
PDU
|
|
NMS
|
Network Management System
网络管理系统,又名网络管理站,简称
“
管理站
”
|
它是
SNMP
的总控机,提供统一的用户界面访问支持
SNMP
的设备,一般提供
UI
界面,并有统计、分析等功能,是网管系统的总控制台。
NMS
是网络管理操作的发起者
|
|
BER
|
Basic Encoding Rule,
基本编码规格
|
描述如何将
ASN.1
类型的值编码为字符串的方法。它是
ASN.1
标准的一部分。
BER
编码将数据分成
TLV
三部分,
T
为
Tag
的缩写,是类型标识;
L
为
Length
的缩写,标识类型的长度;
V
为
Value
的缩写,标识数据内容。按照
TLV
的顺序对数据进行编码,生成字节流。
SNMP
使用
BER
将
SNMP
的操作请求和应答编码后进行传输,并用于接收端进行解码
|
|
Agent
|
是
SNMP
的访问代理,简称
“
代理
”
,为设备提供
SNMP
能力,负责设备与
NMS
的通信
|
Proxy
|
代理服务器。对实现不同协议的设备进行协议转换,使非
IP
协议的设备也能被管理
|
Trap
|
是由设备主动发出的报警数据,用于提示重要的状态的改变
|
目录
1基础知识
2管理信息库MIB
3管理信息结构SMI
4SNMPv2协议
5SNMPv3的体系结构
6公共管理信息CMIP
7SNMP与CMIP的比较
8网络管理协议的前景
1基础知识
1.1SNMP
SNMP
是基于管理工作站
/
代理模式的,如下图所示。运行网络管理程序的计算机成为网络管理工作站(
NMS
)
,
代理是运行在网络设备上的进程。管理工作站通过向代理询问获得网络设备的工作状态信息,代理则负责处理和响应来自管理工作站的请求,并向管理工作站报告本地发生的重大事件。
1.2SNMP背景
SNMP
的基本思想:
为不同种类的设备、不同厂家生产的设备、不同型号的设备,定义为一个统一的接口和协议,使得管理员可以是使用统一的外观面对这些需要管理的网络设备进行管理。通过网络,管理员可以管理位于不同物理空间的设备,从而大大提高网络管理的效率,简化网络管理员的工作。
1.3SNMP结构概述
1.3.1SNMP的典型应用
SNMP
被设计为工作在
TCP/IP
协议族上。
SNMP
基于
TCP/IP
协议工作,对网络中支持
SNMP
协议的设备进行管理。
所有支持
SNMP
协议的设备都提供
SNMP
这个统一界面,使得管理员可以使用统一的操作进行管理,而不必理会设备是什么类型、是哪个厂家生产的。运行代理的网络设备可以是路由器、交换机、集线器、主机、网络打印机,甚至是一台不间断电源(
UPS
),这些设备成为被管理设备。
1.3.2SNMP支持的网管操作
对于网络管理,我们面对的数据是设备的配置、参数、状态等信息,面对的操作是读取和设置;同时,因为网络设备众多,为了能及时得到设备的重要状态,还要求设备能主动地汇报重要状态,这就是报警功能。
Get
:读取网络设备的状态信息。
Set
:远程配置设备参数。
Trap
:管理站及时获取设备的重要信息。
1.3.3SNMP的配置
下图是使用
SNMP
的典型配置。整个系统必须有一个管理站(
management station
),它实际上是网控中心。在管理站内运行管理进程。每个被管对象中一定要有代理进程。管理进程和代理进程利用
SNMP
报文进行通信,而
SNMP
报文又使用
UDP
来传送。图中有两个主机和一个路由器。这些协议中带有阴影的部分是原主机和路由器所具有的,而没有阴影的部分是为实现网络管理而增加的。
有时网络管理协议无法控制某些网络元素,例如该网络元素使用的是另一种网络管理协议。这时可使用委托代理(
proxy agent
)。委托代理能提供如协议转换和过滤操作的汇集功能。然后委托代理来对管理对象进行管理。下图表示委托管理的配置情况。
1.4 SNMP的5种协议数据单元
SNMP
规定了
5
种协议数据单元
PDU
(也就是
SNMP
报文),用来在管理进程和代理之间的交换。
get-request
|
从代理进程处提取一个或多个参数值
|
get-next-request
|
从代理进程处提取紧跟当前参数值的下一个参数值
|
set-request
|
设置代理进程的一个或多个参数值
|
get-response
|
返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作
|
trap
|
代理进程主动发出的报文,通知管理进程有某些事情发生
|
前面的
3
种操作是由管理进程向代理进程发出的,后面的
2
个操作是代理进程发给管理进程的,为了简化起见,前面
3
个操作今后叫做
get
、
get-next
和
set
操作。下图描述了
SNMP
的这
5
种报文操作。请注意,在代理进程端是用熟知端口
161
来接收
get
或
set
报文,而在管理进程端是用熟知端口
162
来接收
trap
报文。
下面根据
RFC1157
详细介绍
Agent
接受到报文后采取的动作:
首先解码生成用内部数据结构表示的报文,解码依据
ASN.1
的基本编码规则,如果在此过程中出现错误导致解码失败则丢弃该报文,不做进一步处理。
第二步:将报文中的版本号取出,如果与本
Agent
支持的
SNMP
版本不一致,则丢弃该报文,不做进一步处理。
第三步:将报文中的团体名取出,此团体名由发出请求的网管站填写。如与本设备认可的团体名不符,则丢弃该报文,不做进一步处理,同时产生一个陷阱报文。
SNMPv1
只提供了较弱的安全措施,在版本
3
中这一功能将大大加强。
第四步:从通过验证的
ASN.1
对象中提出协议数据单元
PDU
,如果失败,丢弃报文,不做进一不处理。否则处理
PDU
,结果将产生一个报文,该报文的发送目的地址应同收到报文的源地址一致。
1.5几个易混淆的概念
1.5.1SNMP现有几个版本
SNMP
共有
v1
,
v2
,
v3
这三个版本:
l
v1
和
v2
都具有基本的读、写
MIB
功能。
l
v2
增加了警报、批量数据获取、管理站和管理站通信能力。
l
v3
在
v2
的基础上增加了
USM
,使用加密的数据和用户验证技术,提高了安全性。
l
另外,
RMON
是
SNMP
的一个重要扩展,为
SNMP
增加了子网流量、统计、分析能力。现有两个版本:
Rmon
:提供了
OSI
七层网络结构中网络层和数据链路层监视能力。
Rmon2
:提供了
OSI
七层网络结构中网络层之上各层的监视能力。
1.5.2ASN.1、BER、SMI、MIB、PDU的关系
2管理信息库MIB
管理信息库
MIB
指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息)。
MIB
给出了一个网络中所有可能的被管理对象的集合的数据结构。
SNMP
的管理信息库采用和域名系统
DNS
相似的树型结构,它的根在最上面,根没有名字。下图画的是管理信息库的一部分,它又称为对象命名(
object naming tree
)。
对象命名树的顶级对象有三个,即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个类别,见下表。现在的mib-2所包含的信息类别已超过40个。
最初的结点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
|
(8)
|
EGP
软件(外部网关协议通信量统计)
|
应当指出,MIB的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含SNMP代理软件,并保证在定义新的MIB项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的MIB的多个路由器。当然,一个没有新的MIB项目的路由器不能提供这些项目的信息。
3管理信息结构SMI
SMI
定义在
RFC 1155
中。该规范定义了一个基本的框架,使用框架内的规范可以定义
MIB
。
SMI
定义了基本的数据类型、宏结构及命令规则。
SMI
只用到
ASN.1
的很小一部分。因此,
MIB
只能存储简单的数据类型,分别是标量和标量的二维数组。
SNMP
只能检索标量,包括表中的单个条目。
SMI
不支持负责数据结构的创建和检索。
SMI
的内容包括:
1. MIB
结构定义语句
2.
单个对象定义语句(包括语法和每个对象的值)
3.
数据编码格式
3.1 管理信息的结构和标识
管理对象以虚拟信息存储方式存储和访问
----
这一结构被称为
MIB (
管理信息库
)
。
SMI
使用
BER
进行编码。
每个对象都有自己的名字、类型
(Syntax)
、和编码。
l
名字:
对象名字和对象标识都是唯一的,都能唯一地识别对象。对象名字更直观,对象标识更简洁。在
PDU
中需要使用对象标识,因为它是数值型的,更容易编码,编码更小。
l
类型:
定义对象的类型,如:
Integer
或
Octet String
类型。
l
编码:
描述如何对对象实例按对象类型进行编码,以使数据在网络上传输。
3.2管理对象定义语法
SMI
不定义
MIB
对象,但
SMI
规定了定义管理对象的格式。对象定义通常包括
5
个域:
u
OBJECT
是一个字符串名,名为
OBJECT DESCRIPTOR.
他指定对象类型,这个类型和
OBJECT IDENTIFIER
对应。
u
SYNTAX
对象类型的抽象语法。它必须可以解析到
ObjectSyntax
类型的一个实例上。
u
DEFINITION
对象类型语义的文本描述。
u
ACCESS
权限,取值为只读、读写、只写、不能访问这
4
个值。
u
STATUS
状态,取值为强制
(mandatory)
、可选
(optional)
或过时的
(obsolete)
。
3.2.1 对象标识
在
Internet
标准中的
MIB
对象标识中不能有
0
。
0
是留作扩展的。每个和对象类型相对应的对象描述
(Object Descriptor)
应该是独一无二的,是可记忆和打印的字符串。
如
udp
的对象标识和对象描述可以表示为下面的格式
:
对象标识:
1.3.6
.1.2.1.7
对象描述:
iso.org.dod.internet.mgmt.mib.udp
3.2.2 对象类型和实例
对象类型
(Object-Type)
是一类可管理对象的定义,对象实例是一个对象类型的实例,而这个实例有具体的值。
3.2.3 管理对象宏
管理对象宏定义了对象定义的格式。
RFC 1155
中定义了一个管理对象宏,后面的
RFC 1212
引入了新的格式,称为
“
简明管理对象宏
”
。
Trap
的宏定义并没有在
RFC1155
中包括,在随后的
RFC
中给出了
Trap
的定义宏。
3.3 Trap的定义
由于
SMI
独立于
SNMP
协议定义,并且先于协议定义,所以,当在
SNMP
中设计
Trap
时,
SMI
没有相关的定义语法。
后来,
RFC-1215
,给出了
Trap
的定义格式,该
RFC
是对
SMI
的补充。
3.3.1 规则
1.trap-type
标识下面定义的是一个
Trap
,定义是在设计的实现期使用,而不是在运行期。
2.enterprise
企业标识:定义在
private.enterprise
下。本域必须提供定义此
Trap
的企业标识,标识这个
Trap
是哪个企业定义的。根据惯例:如果企业标识值是
snmp
,
sysObjectID
的值被放在
Trap PDU
的
enterprise
字段内。
3.variables
变量定义了
MIB
对象的有序序列,这些对象包含在每个
Trap
类型的实例中。每个变量按顺序被放置在
SNMP Trap PDU
的
variable-bindings
内。
4. description
Trap
的描述。
description
的全部值必须包含在双引号内。更要注意的是,如果
MIB
模块其他地方没有包含
Trap
的原文描述,描述域必须定义。
5.reference
参考。用于和其他
MIB
模块定义的
Trap
的
description
进行相互参照。
6. value
Trap
的值是整数。其值为
enterprise
下的唯一值。
value
将放在
Trap PDU
的专用字段内
(special-trap)
内。该值用以唯一地标识一个
Trap
,在
enterprise
值相同的情况下,
value
用来标识具体的
Trap
。
enterprise
用来标识
Trap
属于哪个企业。
3.3.2 SNMP中预定义的Trap
SNMP
中定义了
6
个基本的
Trap
,这
6
个
Trap
可以涵盖大部分设备的主要状态改变,与企业自定义的
Trap
配合使用,就可以处理几乎所有重要状态改变的情况。
1.
coldStart
SNMP
发送实体正在重新初始化,以修正代理的配置或协议实体的实现,特别是由于崩溃或重大故障而引起的意外重启。
2.
warmStart
发送实体正在重新初始化,但不修改代理的配置或协议实例的实现。这就是典型的常规启动。
3.
linkDown
表示代理的一个通信连接失败。
Variablebindings
字段中的第一个元素就是响应接口的
ifIndex
实例的名称和取值。
4.
linkup
表示代理的一个通信连接成功。
Variablebindings
字段中的第一个元素就是响应接口的
ifIndex
实例的名称和取值。
5.
authenticationFailure
表示发送方的
SNMP
消息验证失败。
6.
egpNeighborLoss
表示发送协议实体的
EGP
邻居已被标记为
Down
,相邻关系已经不存在。
Variablebindings
字段中的第一个对象就是关闭
EGP
实体的
egpNeighAddr
。
3.3.3 企业专用的Trap
SNMP
定义的
6
个
Trap
可以涵盖大部分情况,但是许多的情况下设备有自己特殊的状况,企业也希望发送或接收自己定义的
Trap
以得到的特殊的消息。通用
Trap
不能涵盖所有的情况,使用
Trap
定义宏就可以定义企业自己的
Trap
。
企业设备发送自定义的
Trap
时,必须同时将定义的
Trap
的
MIB
一起分发出去,否则,其他管理站将不能识别自定义的
Trap
的格式。
4SNMPv2协议
简单性是SNMP标准取得成功的主要原因。因为在大型的、多厂商产品构成的复杂网络中,管理协议的明晰是至关重要的,但同时这又是SNMP的缺陷所在——为了使协议简单易行,SNMP简化了不少功能,如:
l
没有提供成批存取机制,对大块数据进行存取效率很低;
l
没有提供足够的安全机制,安全性很差;
l
只在TCP/IP协议上运行,不支持别的网络协议;
l
没有提供manager与manager之间通信的机制,只适合集中式管理,而不利于进行分布式管理;
l
只适于监测网络设备,不适于监测网络本身。
针对这些问题,对它的改进工作一直在进行。如1991年11月,推出了RMON(Remote Netw ork Monitoring)MIB,加强SNMP对网络本身的管理能力。它使得SNMP不仅可管理网络设备, 还能收集局域网和互联网上的数据流量等信息。1992年7月,针对SNMP缺乏安全性的弱点,又公布了S-SNMP(Secure SNMP)草案。
到1993年初,又推出了SNMP Version 2即SNMPv2(推出了SNMPv2以后,SNMP就被称为SNM Pv1)。SNM-Pv2包容了以前对SNMP所做的各项改进工作,并在保持了SNMP清晰性和易于实现的特点以外,功能更强,安全性更好,具体表现为:
l
提供了验证机制、加密机制、时间同步机制等,安全性大大提高,
l
提供了一次取回大量数据的能力,效率大大提高;
l
增加了manage和manage之间的信息交换机制,从而支持分布式管理结构。由中间(intermediate)manager来分担主manager的任务,增加了远地站点的局部自主性。
l
可在多种网络协议上运行,如OSI、Appletalk和IPX等,适用多协议网络环境(但它的缺省网络协议仍是UDP)。
根据Carnegie-Mellin大学(SNMPv2标准的制定者之一)的Steven Waldbusser测试结果 ,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标准。
4.1 SNMPv2标准中的安全机制
SNMPv2
对SNMPv1的一个大的改进,就是增强了安全机制。对管理系统安全的威胁主要有下面几种:
(1)
信息篡改(modification)
SNMPv2
标准中,允许管理站(manager)修改agent上的一些被管理对象的值。破坏者可能 会将传输中的报文加以改变,改成非法值,进行破坏。因此,协议应该能够验证收到的报文是否在传输过程中被修改过。
(2)
冒充(masquerade)
SNMPv2
标准中虽然有访问控制能力,但这主要是从报文的发送者来判断的。那些没有访问权的用户可能会冒充别的合法用户进行破坏活动。因此 ,协议应该能够验证报文发送者的真实性,判断是否有人冒充。
(3)
报文流的改变(message stream modification)
由于SNMPv2标准是基于无连接传输服务的,报文的延迟、重发以及报文流顺序的改变都是可能发生的。某些破坏者可能会故意将报文延迟、重发,或改变报文流的顺序,以达到破坏的目的。因此,协议应该能够防止报文的传输时间过长,以给破坏者留下机会。
(4)
报文内容的窃取(disclosure)
破坏者可能会截获传输中的报文,窃取它的内容。特别在创建新的SNMPv2 Party时,必须保证它的内容不被窃取,因为以后关于这个Party的所有操作都依赖于它。因此,协议应该能够对报文的内容进行加密,保证它不被窃听者获取。
针对上述安全性问题,SNMPv2中增加了验证(Authentication)机制、加密(Privacy)机制,以及时间同步机制来保证通信的安全。
4.2 SNMPv2 Party
SNMPv2
标准中增加了一种叫做Party的实体。Party是具有网络管理功能的最小实体,它的功能是一个SNMPv2 entity(管理实体)所能完成的全部功能的一个子集。每个manager和 agent上都分别有多个Party,每个站点上的各个Party彼此是平等的关系,各自完成自己的功能。实际的信息交换都发生在Party与Party之间(在每个发送的报文里,都要指定发送方和接收方的Party)。每个Party都有一个唯一的标识符(party identity)、一个验证算法和参数以及一个加密算法和参数。Party的引入增加了系统的灵活性和安全性,可以赋予不同的人员以不同的管理权限。SNMPv2中有三种安全性机制:验证(authentication)机制、加密(privacy)机制和访问控制(access control)机制。这些机制都工作在Party一级,而不是 manager/agent一级。
4.3 SNMPv2协议操作
SNMPv2
标准的核心就是通信协议———它是一个请求/应答式的协议。
这个协议提供了在manager与agent、manager与manager之间交换管理信息的直观、基本的方法。
每条SNMPv2的报文都由一些域构成:
如果发送方、接收方的两个Party都采用了验证(authentication)机制,它就包含与验证有关的信息;否则它为空(取NULL)。验证的过程如下:发送方和接收方的Party都分别有一个验证用的密钥(secret key)和一个验证用的算法。报文发送前,发送方先将密钥值填入图中digest域,作为报文的前缀。然后根据验证算法,对报文中digest域以后(包括digest域) 的报文数据进行计算,计算出一个摘要值(digest),再用摘要值取代密钥,填入报文中的digest域。接收方收到报文后,先将报文中的摘要值取出来,暂存在一个位置,然后用发送方的密钥放入报文中的digest。将这两个摘要值进行比较,如果一样,就证明发送方确实是Party域中所指明的那个Party,报文是合法的;如果不一样,接收方断定发送方非法。验证机制可以防止非法用户"冒充"某个合法Party来进行破坏。
authInfo
域中还包含两个时间戳(time stamp),用于发送方与接收方之间的同步,以防止报文被截获和重发。
SNMPv2
的另一大改进是可以对通信报文进行加密,以防止监听者窃取报文内容。除了privDst域外,报文的其余部分可以被加密。发送方与接收方采用同样的加密算法(如DES)。
通信报文可以不加任何安全保护,或只进行验证,也可以二者都进行。
5SNMPv3的体系结构
RFC 2271
定义的SNMPv3体系结构,体现了模块化的设计思想,可以简单地实现功能的增加和修改。其特点:
l
适应性强:适用于多种操作环境,既可以管理最简单的网络,实现基本的管理功能,又能够提供强大的网络管理功能,满足复杂网络的管理需求。
l
扩充性好:可以根据需要增加模块。
l
安全性好:具有多种安全处理模块。
SNMPv3
主要有三个模块:信息处理和控制模块、本地处理模块和用户安全模块。
(1)信息处理和控制模块
信息处理和控制模块(Message Processing And Control Model)在RFC 2272中定义,它负责信息的产生和分析,并判断信息在传输过程中是否要经过代理服务器等。在信息产生过程中,该模块接收来自调度器(Dispatcher)的PDU,然后由用户安全模块在信息头中加入安全参数。在分析接收的信息时,先由用户安全模块处理信息头中的安全参数,然后将解包后的PDU送给调度器处理。
(2)本地处理模块
本地处理模块(Local Processing Model)的功能主要是进行访问控制,处理打包的数据和中断。访问控制是指通过设置代理的有关信息使不同的管理站的管理进程在访问代理时具有不同的权限,它在PDU这一级完成。常用的控制策略有两种:限定管理站可以向代理发出的命令或确定管理站可以访问代理的MIB的具体部分。访问控制的策略必须预先设定。
(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 作为输入。
6公共管理信息CMIP
CMIP
协议是在OSI制订的网络管理框架中提出的网络管理协议。与其说它是一个网络管理协议,不如说它是一个网络管理体系。这个体系包含以下组成部分:一套用于描述协议的模型,一组用于描述被管对象的注册、标识和定义的管理信息结构,被管对象的详细说明以及用于远程管理的原语和服务。CMIP与SNMP一样,也是由被管代理和管理者、管理协议与管理信息库组成。在CMIP中,被管代理和管理者没有明确的指定,任何一个网络设备既可以是被管代理,也可以是管理者。
CMIP
管理模型可以用三种模型进行描述:组织模型用于描述管理任务如何分配;功能模型描述了各种网络管理功能和它们之间的关系;信息模型提供了描述被管对象和相关管理信息的准则。从组织模型来说,所有CMIP的管理者和被管代理者存在于一个或多个域中,域是网络管理的基本单元。从功能模型来说,CMIP主要实现失效管理、配置管理、性能管理、记帐管理和安全性管理。每种管理均由一个特殊管理功能领域(SMFA,Special Management F unctional Area)负责完成。从信息模型来说,CMIP的MIB库是面向对象的数据存储结构,每一个功能领域以对象为MIB库的存储单元。
CMIP
是一个完全独立于下层平台的应用层协议,它的五个特殊管理功能领域由多个系统 管理功能(SMF)加以支持。相对来说,CMIP是一个相当复杂和详细的网络管理协议。它的设计宗旨与SNMP相同,但用于监视网络的协议数据报文要相对多一些。CMIP共定义了11类PDU 。在CMIP中,变量以非常复杂和高级的对象形式出现,每一个变量包含变量属性、变量行为和通知。CMIP中的变量体现了CMIP MIB库的特征,并且这种特征表现了CMIP的管理思想,即基于事件而不是基于轮询。每个代理独立完成一定的管理工作。
CMIP
的优点在于:
l
它的每个变量不仅传递信息,而且还完成一定的网络管理任务。这是CMIP协议的最大特点,在SNMP中是不可能的。这样可减少管理者的负担并减少网络负载。
l
完全安全性。它拥有验证、访问控制和安全日志等一整套安全管理方法。
但是,CMIP的缺点也同样明显:
l
它是一个大而全的协议,所以使用时,其资源占用量是SNMP的数十倍。它对硬件设备的要求比人们所能提供的要高得多。
l
由于它在网络代理上要运行相当数量的进程,所以大大增加了网络代理的负担。
l
它的MIB库过分复杂,难于实现。迄今为止,还没有任何一个符合CMIP的网络管理系统。
7SNMP与CMIP的比较
SNMP
与CMIP是网络界最主要的两种网络管理协议。在未来的网络管理中,究竟哪一种将占据优势,一直是业界争论的话题。
总的来说,SNMP和CMIP两种协议是同大于异。两者的管理目标、基本组成部分都基本相同。在MIB库的结构方面,很多厂商将SNMP的MIB扩展成与CMIP的MIB结构相类似,而且两种协议的定义都采用相同的抽象语法符号(ASN.1)。
不同之处,首先,SNMP面向单项信息检索,而CMIP则面向组合项信息检索。其次,在信息获得方面,SNMP主要基于轮询方式,而CMIP主要采用报告方式。再次,在传送层支持方面,SNMP基于无连接的UDP,而CMIP倾向于有连接的数据传送。此外,两者在功能、协议规模、性能 、标准化、产品化方面还有相当多的不同点。
8网络管理协议的前景
在网络界,除SNMP、SNMP v2、CMIP以外,现在正兴起一些新的网络管理协议和环境。其中,以分布式计算环境(DME,Distributed Management Environment)最为著名。DME是由OSF(开放软件基金会)提出的。OSF是一个非盈利的研究和开发组织,其目标是提供一个软件解决方案,使来自不同厂家的计算机可以协同工作于一个真正的开放系统计算环境下。其文档以RFT(Request for Technology)的形式提供。
DME
代表了一种结构。在此结构下,管理系统和网络可以很好地结合。它可以构成分布式系统管理的基础,并保持与现有网络管理方案的结合。它独立于操作系统,并支持事实上的和正式的网络与系统管理标准。DME的结构有许多新颖之处。以前,无论是网络管理还是系统管理,管理员通过修改与一个资源或服务相关的数据、通过对一些服务和数据进行操作来进行管理。而在DME环境下,信息和操作都被划分为对象。DME以对象为单位对系统进行管理。所有DME管理操作有一个一致的界面和风格:通过与对象通信。这种设计的很大好处是模块性很强,完全是一种面向对象的管理方式,系统易于管理和开发。ISV们可以建立自己的某些特定管理功能的对象库或被管对象库,然后将其加入到已有的管理应用程序中。这一切由于DME面向对象的管理方式而变得简单。
DME
有两个关键概念:应用程序服务和框架(Framework)。应用程序服务提供一些最重要的系统管理功能,而框架则提供开发系统管理应用程序所用的构造模块(building block)。这种设计提供了与现有解决方案的一致性,并可在多厂商分布式网络环境中进行互操作。DME应用程序服务包括软件管理(Software Management)、许可权管理(License Management )、打印服务(Printing Services)和事件管理(Event Management)。它们以一组模块和API的形式提供,有一个一致的用户界面。DME还提供机制,使开发商可以很容易地加入新的服务。DME框架由一组功能全面的构造模块组成,使新网管应用程序的开发变得简单。这些组成是:
l
管理请求代理(MRB,Management Request Brokers) MRB是DME框架的核心组成。在 DME下,所有对象的请求都被MRB接收。MRB负责找到这个对象在网络中的位置,然后转发请求。MRB支持现有的网络管理协议SNMP、CMIP,用它们收集网络中的设备信息。MRB还支持基于RPC(Remote Procedure Call)的管理协议。
l
对象服务器对象服务器用来管理和维护网络中的对象。DME提供两种类型的对象服务器,一个用于短期任务(如更换口令等),另一个用于长期任务(如监视一个网络)。
l
事件管理服务当网络中出现问题或发生变化时,需要通知管理应用程序。DME的事件管理服务提供了转发、登录和过滤这类通知的功能,可以对过滤器进行编程来分析一个事件通告的属性,并将此事件与某个特定的动作联系起来。另外,为了使此服务易于使用,DME还提供了用于定义事件的高级模板语言。
l
数据管理服务DME提供了一个管理数据库,用来存放网络被管对象的有关数据信息。此管理数据库存放在磁盘上。
目前,
DME
的主要问题是缺乏支持,尚未得到进一步的实践检验。