1、简单网络管理协议 SNMP 的介绍和应用目录简单网络管理协议 SNMP 的介绍和应用 .11. 网络管理基本概念 22. 简单网络管理协议 SNMP 概述 .32.1 SNMP 的发展 32.2 SNMP 的配置 43. 管理信息库 MIB .64. SNMP 的 5 种协议数据单元 .85.管理信息结构 SMI126. SNMPv2 协议 .146.1 SNMPv2 标准中的安全机制 156.2 SNMPv2 Party166.3 SNMPv2 协议操作 167. SNMPv3 的体系结构 .178. 公共管理信息 CMIP .189. SNMP 与 CMIP 的比较 .1910.网络管理协
2、议的前景 2011SNMP 协议在网络中的实际应用 .211. 网络管理基本概念随着计算机和通信技术的飞速发展,网络管理技术已成为重要的前言技术。目前还没有对网络管理的精确定义。例如,对公用交换网,网络管理通常指实时网络监控,以便在不利的条件下(如过载、故障)使网络的性能仍能达到最佳。又如,狭义的网络管理仅仅指网络的通信量管理,而广义的网络管理指网络的系统管理。网络管理功能可概括为 OAMP,即网络的运行(Operation) 、处理(Administration) 、维护(Maintenance) 、服务提供(Provisioning)等所需要的各种活动。有时也考虑前三种,即把网络管理功能归
3、结为 OAM。网络管理通常用到以下术语: 网络元素(network element)网络中具体的通信设备或逻辑实体,又称网元。 对象(object)通信和信息处理范畴里可标识的切拥有一定信息特性的资源。但应注意,这里所用的“对象”与面向对象系统中所定义的对象并不完全一样。 被管理对象(managed object)被管理对象指可使用管理协议进行管理和控制的网络资源的抽象表示。例如,一个层的实体或一个连接。 管理信息库 MIBMIB 是网络管理系统中的重要构件,它有一个系统内的许多被管对象及其属性组成。MIB 这个概念实际上就是一个虚拟数据库。这个数据库提供有关被管理网络元素的信息,而这些信息由
4、管理进程和各个代理进程共享。MIB 由管理进程和各个代理进程共同使用。 综合网络管理 INM用统一的方法在一个异构网络中管理多厂商生产的计算机硬件和软件资源。这也称为一体化网络管理。OSI 很早就在 OSI 的总体标准中提出了网络管理标准的框架,即 ISO 7498-4。ITU-T 在网络管理方面紧密地和 ISO 合作,制订了与 ISO 7498-4 相对应的X.700 系列建议书。ISO 和 ITU-T 制订的两个重要标准是:(1)ISO 9595 ITU-T X.710 公共管理信息服务定义 CMIS(2)ISO 9596 ITU-T X.711 公共管理信息协议规格说明 CMIP2. 简
5、单网络管理协议 SNMP 概述2.1 SNMP 的发展简单网络管理协议(SNMP)是目前 TCP/IP 网络中应用最为广泛的网络管理协议。1990 年 5 月,RFC 1157 定义了 SNMP(simple network management protocol)的第一个版本 SNMPv1。RFC 1157 和另一个关于管理信息的文件 RFC 1155 一起,提供了一种监控和管理计算机网络的系统方法。因此,SNMP 得到了广泛应用,并成为网络管理的事实上的标准。SNMP 在 90 年代初得到了迅猛发展,同时也暴露出了明显的不足,如,难以实现大量的数据传输,缺少身份验证(Authenticat
6、ion)和加密(Privacy)机制。因此,1993 年发布了 SNMPv2,具有以下特点: 支持分布式网络管理 扩展了数据类型 可以实现大量数据的同时传输,提高了效率和性能 丰富了故障处理能力 增加了集合处理功能 加强了数据定义语言但是,SNMPv2 并没有完全实现预期的目标,尤其是安全性能没有得到提高,如:身份验证(如用户初始接入时的身份验证、信息完整性的分析、重复操作的预防) 、加密、授权和访问控制、适当的远程安全配置和管理能力等都没有实现。1996 年发布的 SNMPv2c 是 SNMPv2 的修改版本,功能增强了,但是安全性能仍没有得到改善,继续使用 SNMPv1 的基于明文密钥的身
7、份验证方式。IETF SNMPv3 工作组于 1998 年元月提出了互联网建议 RFC 2271-2275,正式形成SNMPv3。这一系列文件定义了包含 SNMPv1、SNMPv2 所有功能在内的体系框架和包含验证服务和加密服务在内的全新的安全机制,同时还规定了一套专门的网络安全和访问控制规则。可以说,SNMPv3 是在 SNMPv2 基础之上增加了安全和管理机制。Internet 还有一个远期的网络管理标准 CMOT(Common Management information service and protocol Over TCP/IP),意思是 “在 TCP/IP 上的公共管理信息服务
8、与协议” 。虽然 CMOT 使用了 OSI 的网络管理标准CMIS/CMIP,但现在还未达到实用阶段。SNMP 最重要的饿知道思想就是要尽可能简单,以便缩短研制周期。SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP 可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。虽然 SNMP 是在 TCP/IP 基础上的网络管理协议,但也可扩展到其他类型的网络设备上。2.2 SNMP 的配置图 1 是使用 SNMP 的典型配置。整个系统必须有一个管理站(management station) ,它实际上是网控中心。在管理站沙锅内运行
9、管理进程。在每个被管对象中一定要有代理进程。管理进程和代理继承利用 SNMP 报文进行通信,而SNMP 报文又使用 UDP 来传送。图中有两个主机和一个路由器。这些协议栈中带有阴影的部分是原俩这些主机和路由器所具有的,而没有阴影的部分是为实现网络管理而增加的。路 由 器 主 机 主 机 管 理 站 代 理 进 程 SNMP UDP IP 网 络 接 口 管 理 进 程 SNMP UDP IP 网 络 接 口 用 户 进 程 FTP等 TCP 代 理 进 程 SNMP UDP IP 网 络 接 口 用 户 进 程 FTP等 TCP 代 理 进 程 SNMP UDP IP 网 络 接 口 Inte
10、rnet 图 1 SNMP的 配 置 有时网络管理协议无法控制某些网络元素,例如该网络元素使用的是另一种网络管理协议。这是可使用委托代理(proxy agent) 。委托代理能提供如协议转换和过滤操作的汇集功能。然后委托代理来对管理对象进行管理。图 2 表示委托管理的配置情况。委 托 代 理 Proxy agent 管 理 站 委 托 代 理 Proxy agent 管 理 进 程 SNMP UDP IP 网 络 接 口 映 射 函 数 代 理 进 程 被 委 托 的 SNMP 设 备 使 用 UDP 的 协 议 IP 网 络 接 口 网 络 接 口 管 理 进 程 SNMP UDP IP 网
11、 络 接 口 网 络 网 络 图 2 委托管理的配置SNMP 的网络管理由三部分组成,即管理信息库 MIB、管理信息结构 SMI以及 SNMP 本身。下面简要介绍。3. 管理信息库 MIB管理信息库 MIB 指明了网络元素所维持的变量(即能够被管理进程查询和设置的信息) 。MIB 给出了一个网络中所有可能的被管理对象的集合的数据结构。SNMP 的管理信息库采用和域名系统 DNS 相似的树型结构,它的根在最上面,根没有名字。图 3 画的是管理信息库的一部分,它又称为对象命名(object naming tree) 。根 ccitt(0) iso(1) joint-iso-ccitt(2) sta
12、ndard(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) 图 3 管理信息库的对象命名
13、举例对象命名树的顶级对象有三个,即 ISO、ITU-T 和这两个组织的联合体。在ISO 的下面有 4 个结点,其中的饿一个(标号 3)是被标识的组织。在其下面有一个美国国防部(Department of Defense)的子树(标号是 6) ,再下面就是Internet(标号是 1) 。在只讨论 Internet 中的对象时,可只画出 Internet 以下的子树(图中带阴影的虚线方框) ,并在 Internet 结点旁边标注上1.3.6.1即可。在 Internet 结点下面的第二个结点是 mgmt(管理) ,标号是 2。再下面是管理信息库,原先的结点名是 mib。1991 年定义了新的版本
14、 MIB-II,故结点名现改为 mib-2,其标识为1.3.6.1.2.1,或Internet(1) .2.1。这种标识为对象标识符。最初的结点 mib 将其所管理的信息分为 8 个类别,见表 1。现在 de mib-2所包含的信息类别已超过 40 个。表 1 最初的结点 mib 管理的信息类别类别 标号 所包含的信息system (1) 主机或路由器的操作系统interfaces address translationipicmptcpudpegp(2)(3)(4)(5)(6)(7)(8)各种网络接口及它们的测定通信量地址转换(例如 ARP 映射)Internet 软件(IP 分组统计)IC
15、MP 软件(已收到 ICMP 消息的统计)TCP 软件(算法、参数和统计)UDP 软件(UDP 通信量统计)EGP 软件(外部网关协议通信量统计)应当指出,MIB 的定义与具体的网络管理协议无关,这对于厂商和用户都有利。厂商可以在产品(如路由器)中包含 SNMP 代理软件,并保证在定义新的MIB 项目后该软件仍遵守标准。用户可以使用同一网络管理客户软件来管理具有不同版本的 MIB 的多个路由器。当然,一个没有新的 MIB 项目的路由器不能提供这些项目的信息。这里要提一下 MIB 中的对象1.3.6.1.4.1,即 enterprises(企业) ,其所属结点数已超过 3000。例如 IBM 为
16、1.3.6.1.4.1.2,Cisco 为1.3.6.1.4.1.9,Novell 为1.3.6.1.4.1.23等。世界上任何一个公司、学校只要用电子邮件发往 iana-mibisi.edu 进行申请即可获得一个结点名。这样各厂家就可以定义自己的产品的被管理对象名,使它能用 SNMP 进行管理。4. SNMP 的 5 种协议数据单元SNMP 规定了 5 种协议数据单元 PDU(也就是 SNMP 报文) ,用来在管理进程和代理之间的交换。 get-request 操作:从代理进程处提取一个或多个参数值 get-next-request 操作:从代理进程处提取紧跟当前参数值的下一个参数值 set
17、-request 操作:设置代理进程的一个或多个参数值 get-response 操作:返回的一个或多个参数值。这个操作是由代理进程发出的,它是前面三种操作的响应操作。 trap 操作:代理进程主动发出的报文,通知管理进程有某些事情发生。前面的 3 种操作是由管理进程向代理进程发出的,后面的 2 个操作是代理进程发给管理进程的,为了简化起见,前面 3 个操作今后叫做 get、get-next 和set 操作。图 4 描述了 SNMP 的这 5 种报文操作。请注意,在代理进程端是用熟知端口 161 俩接收 get 或 set 报文,而在管理进程端是用熟知端口 162 来接收trap 报文。 UD
18、P端 口 162 SNMP管 理 程 序 UDP端 口 161 UDP端 口 161 UDP端 口 161 get-request get-response get-next-request get-response set-request get-response trap SNMP代 理 程 序 图 4 SNMP 的 5 种报文操作图 5 是封装成 UDP 数据报的 5 种操作的 SNMP 报文格式。可见一个 SNMP 报文共有三个部分组成,即公共 SNMP 首部、get/set 首部 trap 首部、变量绑定。变 量 绑 定 trap 首 部 8字 节 SNMP报 文 公 共 SNMP首
19、 部 get/set 首 部 变 量 绑 定 IP首 部 UDP首 部 UDP数 据 报 2字 节 IP数 据 报 版 本 共 同 PDU类 型 请 求 标 识 差 错 状 态 差 错 名 值 名 值 ( 0) 体 ( 0 3) 符 ( 0 5) 索 引 PDU类 型 企 业 代 理 的 trap 类 型 特 定 时 间 名 值 名 值 ( 4) IP地 址 ( 0 6) 代 码 戳 图 5 SNMP 报文格式(1)公共 SNMP 首部共三个字段: 版本 写入版本字段的是版本号减 1,对于 SNMP(即 SNMPV1)则应写入 0。 共同体(community)共同体就是一个字符串,作为管理进
20、程和代理进程之间的明文口令,常用的是 6 个字符“public” 。 PDU 类型根据 PDU 的类型,填入 04 中的一个数字,其对应关系如表 2 所示意图。表 2 PDU 类型PDU 类型 名称0 get-request1 get-next-request2 get-response3 set-request4 trap(2)get/set 首部 请求标识符(request ID)这是由管理进程设置的一个整数值。代理进程在发送 get-response 报文时也要返回此请求标识符。管理进程可同时向许多代理发出 get 报文,这些报文都使用 UDP 传送,先发送的有可能后到达。设置了请求标识
21、符可使管理进程能够识别返回的响应报文对于哪一个请求报文。 差错状态(error status)由代理进程回答时填入 05 中的一个数字,见表 3 的描述。表 3 差错状态描述差错状态名字 说明0 noError 一切正常1 tooBig代理无法将回答装入到一个 SNMP报文之中2 noSuchName 操作指明了一个不存在的变量3 badValue一个 set 操作指明了一个无效值或无效语法4 readOnly 管理进程试图修改一个只读变量5 genErr 某些其他的差错 差错索引(error index)当出现 noSuchName、badValue 或 readOnly 的差错时,由代理进
22、程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。(3)trap 首部 企业(enterprise)填入 trap 报文的网络设备的对象标识符。此对象标识符肯定是在图 3 的对象命名树上的 enterprise 结点1.3.6.1.4.1下面的一棵子树上。 trap 类型此字段正式的名称是 generic-trap,共分为表 4 中的 7 种。表 4 trap 类型描述trap 类型 名字 说明0 coldStart 代理进行了初始化1 warmStart 代理进行了重新初始化2 linkDown 一个接口从工作状态变为故障状态3 linkUp 一个接口从故障状态变为工作状态4
23、authenticationFailure从 SNMP 管理进程接收到具有一个无效共同体的报文5 egpNeighborLoss 一个 EGP 相邻路由器变为故障状态6 enterpriseSpecific代理自定义的事件,需要用后面的“特定代码”来指明当使用上述类型 2、3、5 时,在报文后面变量部分的第一个变量应标识响应的接口。 特定代码(specific-code)指明代理自定义的时间(若 trap 类型为 6) ,否则为 0。 时间戳(timestamp)指明自代理进程初始化到 trap 报告的事件发生所经历的时间,单位为10ms。例如时间戳为 1908 表明在代理初始化后 1908m
24、s 发生了该时间。(4)变量绑定(variable-bindings)指明一个或多个变量的名和对应的值。在 get 或 get-next 报文中,变量的值应忽略。5.管理信息结构 SMISNMP 中,数据类型并不多。这里我们就讨论这些数据类型,而不关心这些数据类型在实际中是如何编码的。 INTEGER一个变量虽然定义为整型,但也有多种形式。有些整型变量没有范围限制,有些整型变量定义为特定的数值(例如,IP 的转发标志就只有允许转发时的或者不允许转发时的这两种),有些整型变量定义一个特定的范围(例如,UDP和 TCP 的端口号就从 0 到 65535)。 OCTER STRING0 或多个 8
25、bit 字节,每个字节值在 0255 之间。对于这种数据类型和下一种数据类型的 BER 编码,字符串的字节个数要超过字符串本身的长度。这些字符串不是以 NULL 结尾的字符串。 DisplayString0或多个8bit字节,但是每个字节必须是ASCII码。在MIB-II中,所有该类型的变量不能超过255个字符(0个字符是可以的)。 OBJECT IDENTIFIER NULL代表相关的变量没有值。例如,在get或get-next操作中,变量的值就是NULL,因为这些值还有待到代理进程处去取。 IpAddress4字节长度的OCTER STRING,以网络序表示的IP地址。每个字节代表IP地址
26、的一个字段。 PhysAddressOCTER STRING类型,代表物理地址(例如以太网物理地址为6个字节长度)。 Counter非负的整数,可从0递增到2 321(4294976295)。达到最大值后归0。 Gauge非负的整数,取值范围为从0到4294976295(或增或减)。达到最大值后锁定直到复位。例如,MIB中的tcpCurrEstab就是这种类型的变量的一个例子,它代表目前在ESTABLISHED或CLOSE_WAIT状态的TCP连接数。 TimeTicks时间计数器,以0.01秒为单位递增,但是不同的变量可以有不同的递增幅度。所以在定义这种类型的变量的时候,必须指定递增幅度。例
27、如,MIB中的sysUpTime变量就是这种类型的变量,代表代理进程从启动开始的时间长度,以多少个百分之一秒的数目来表示。 SEQUENCE这一数据类型与C程序设计语言中的“structure”类似。一个SEQUENCE包括0个或多个元素,每一个元素又是另一个ASN.1数据类型。例如,MIB中的UdpEntry就是这种类型的变量。它代表在代理进程侧目前“激活”的UDP数量(“激活”表示目前被应用程序所用)。在这个变量中 包含两个元素: IpAddress类型中的udpLocalAddress,表示IP地址。 INTEGER类型中的udpLocalPort,从0到65535,表示端口号。 SEQ
28、UENDEOF这是一个向量的定义,其所有元素具有相同的类型。如果每一个元素都具有简单 的数据类型,例如是整数类型,那么我们就得到一个简单的向量(一个一维向量)。但是我们将 看到,SNMP在使用这个数据类型时,其向量中的每一个元素是一个SEQUENCE(结构)。因而可以将它看成为一个二维数组或表。6. SNMPv2 协议 简单性是 SNMP 标准取得成功的主要原因。因为在大型的、多厂商产品构成的复杂网络 中,管理协议的明晰是至关重要的,但同时这又是 SNMP 的缺陷所在为了使协议简单易 行,SNMP 简化了不少功能,如: 没有提供成批存取机制,对大块数据进行存取效率很低; 没有提供足够的安全机制
29、,安全性很差; 只在 TCP/IP 协议上运行,不支持别的网络协议; 没有提供 manager 与 manager 之间通信的机制,只适合集中式管理,而不利于进行分布 式管理; 只适于监测网络设备,不适于监测网络本身。 针对这些问题,对它的改进工作一直在进行。如 1991 年 11 月,推出了RMON(Remote Netw ork Monitoring)MIB,加强 SNMP 对网络本身的管理能力。它使得 SNMP 不仅可管理网络设备, 还能收集局域网和互联网上的数据流量等信息。1992 年 7 月,针对 SNMP 缺乏安全性的弱点,又 公布了 S-SNMP(Secure SNMP)草案。
30、到 1993 年初,又推出了 SNMP Version 2 即 SNMPv2(推出了 SNMPv2 以后,SNMP 就被称为 SNM Pv1)。SNM-Pv2 包容了以前对 SNMP 所做的各项改进工作,并在保持了 SNMP 清晰性和易于实现 的特点以外,功能更强,安全性更好,具体表现为: 提供了验证机制、加密机制、时间同步机制等,安全性大大提高, 提供了一次取回大量数据的能力,效率大大提高; 增加了 manager 和 manager 之间的信息交换机制,从而支持分布式管理结构。由中间( intermediate)manager 来分担主 manager 的任务,增加了远地站点的局部自主性。
31、 可在多种网络协议上运行,如 OSI、Appletalk 和 IPX 等,适用多协议网络环境(但它的 缺省网络协议仍是 UDP)。 根据 Carnegie-Mellin 大学(SNMPv2 标准的制定者之一)的 Steven Waldbusser 测试结果 ,SNMPv2 的处理能力明显强于 SNMPv1,大约是 SNMPv1 的15 倍。 SNMPv2 一共由 12 份协议文本组成(RFC1441-RFC1452),已被作为 Internet的推荐标准予 以公布。 可看出它支持分布式管理。一些站点可以既充当 manager 又充当 agent,同时扮演两个角色。作为 agent,它们接受更高
32、一级管理站的请求命令 ,这些请求命令中一部分与 agent 本地的数据有关,这时直接应答即可;另一部分则与远地ag ent 上的数据有关。这时 agent 就以 manager 的身份向远地 agent 请求数据,再将应答传给更高 一级的管理站。在后一种情况下 ,它们起的是 proxy(代理)的作用。 下面将 SNMPv2 标准加以详细介绍,包括 SNMPv2 标准的中的安全机制,SNMPv2 标准中的 Pa rty 实体,以及如何从通信协议操作、SMI、MIB 三方面来看SNMPv2 标准。 6.1 SNMPv2 标准中的安全机制 SNMPv2 对 SNMPv1 的一个大的改进,就是增强了安
33、全机制。对管理系统安全的威胁主要有 下面几种: (1)信息篡改(modification) SNMPv2 标准中,允许管理站(manager)修改 agent 上的一些被管理对象的值。破坏者可能 会将传输中的报文加以改变,改成非法值,进行破坏。因此,协议应该能够验证收到的报文是 否在传输过程中被修改过。 (2)冒充(masquerade) SNMPv2 标准中虽然有访问控制能力,但这主要是从报文的发送者来判断的。那些没有访 问权的用户可能会冒充别的合法用户进行破坏活动。因此 ,协议应该能够验证报文发送者 的真实性,判断是否有人冒充。 (3)报文流的改变(message stream modif
34、ication) 由于 SNMPv2 标准是基于无连接传输服务的,报文的延迟、重发以及报文流顺序的改变都 是可能发生的。某些破坏者可能会故意将报文延迟、重发,或改变报文流的顺序,以达到破 坏的目的。因此,协议应该能够防止报文的传输时间过长,以给破坏者留下机会。 (4)报文内容的窃取(disclosure) 破坏者可能会截获传输中的报文,窃取它的内容。特别在创建新的 SNMPv2 Party 时,必 须保证它的内容不被窃取,因为以后关于这个 Party 的所有操作都依赖于它。因此,协议应该 能够对报文的内容进行加密,保证它不被窃听者获取。针对上述安全性问题,SNMPv2 中增加了验证(Authe
35、ntication)机制、加密(Privacy)机 制,以及时间同步机制来保证通信的安全。 6.2 SNMPv2 Party SNMPv2 标准中增加了一种叫做 Party 的实体。Party 是具有网络管理功能的最小实体,它 的功能是一个 SNMPv2 entity(管理实体)所能完成的全部功能的一个子集。每个 manager 和 agent 上都分别有多个 Par-ty,每个站点上的各个 Party 彼此是平等的关系,各自完成自己的 功能。实际的信息交换都发生在Party 与 Party 之间(在每个发送的报文里,都要指定发送方 和接收方的 Par-ty)。每个 Party 都有一个唯一的
36、标识符(party identity)、一个验证算法 和参数以及一个加密算法和参数。Party 的引入增加了系统的灵活性和安全性,可以赋予不 同的人员以不同的管理权限。SNMPv2 中有三种安全性机制:验证(authentication)机制、加 密(privacy)机制和访问控制(access control)机制。这些机制都工作在 Party 一级,而不是 manager/agent 一级。 6.3 SNMPv2 协议操作 SNMPv2 标准的核心就是通信协议它是一个请求/应答式的协议。 这个协议提供了在 manager 与 agent、manager 与 manager 之间交换管理信息
37、的直观、基本的方法。 每条 SNMPv2 的报文都由一些域构成: 如果发送方、接收方的两个 Party 都采用了验证(authentication)机制,它就包含与验 证有关的信息;否则它为空(取 NULL)。验证的过程如下:发送方和接收方的 Party 都分别有一 个验证用的密钥(secret key)和一个验证用的算法。报文发送前,发送方先将密钥值填入图 中 digest 域,作为报文的前缀。然后根据验证算法,对报文中 digest 域以后(包括 digest 域) 的报文数据进行计算,计算出一个摘要值(digest),再用摘要值取代密钥,填入报文中的 dig est 域。接收方收到报文后
38、,先将报文中的摘要值取出来,暂存在一个位置,然后用发送方的 密钥放入报文中的 digest。将这两个摘要值进行比较,如果一样,就证明发送方确实是 srcP arty 域中所指明的那个 Party,报文是合法的;如果不一样,接收方断定发送方非法。验证机 制可以防止非法用户“冒充“某个合法 Party 来进行破坏。 authInfo 域中还包含两个时间戳(time stamp),用于发送方与接收方之间的同步,以防 止报文被截获和重发。 SNMPv2 的另一大改进是可以对通信报文进行加密,以防止监听者窃取报文内容。除了 privDst 域外,报文的其余部分可以被加密。发送方与接收方采用同样的加密算法
39、(如 DES)。 通信报文可以不加任何安全保护,或只进行验证,也可以二者都进行。 7. SNMPv3 的体系结构RFC 2271 定义的 SNMPv3 体系结构,体现了模块化的设计思想,可以简单地实现功能的增加和修改。其特点: 适应性强:适用于多种操作环境,既可以管理最简单的网络,实现基本的管理功能,又能够提供强大的网络管理功能,满足复杂网络的管理需求。 扩充性好:可以根据需要增加模块。 安全性好:具有多种安全处理模块。SNMPv3 主要有三个模块:信息处理和控制模块、本地处理模块和用户安全模块。(1)信息处理和控制模块信息处理和控制模块(Message Processing And Cont
40、rol Model)在 RFC 2272 中定义,它负责信息的产生和分析,并判断信息在传输过程中是否要经过代理服务器等。在信息产生过程中,该模块接收来自调度器(Dispatcher)的PDU,然后由用户安全模块在信息头中加入安全参数。在分析接收的信息时,先由用户安全模块处理信息头中的安全参数,然后将解包后的 PDU 送给调度器处理。(2)本地处理模块本地处理模块(Local Processing Model)的功能主要是进行访问控制,处理打包的数据和中断。访问控制是指通过设置代理的有关信息使不同的管理站的管理进程在访问代理时具有不同的权限,它在 PDU 这一级完成。常用的控制策略有两种:限定管
41、理站可以向代理发出的命令或确定管理站可以访问代理的 MIB 的具体部分。访问控制的策略必须预先设定。SNMPv3 通过使用带有不同参数的原语使用来灵活地确定访问控制方式。(3)用户安全模块与 SNMPv1 和 SNMPv2 相比,SNMPv3 增加了三个新的安全机制:身份验证,加密和访问控制。其中,本地处理模块完成访问控制功能,而用户安全模块(User Security Model)则提供身份验证和数据保密服务。身份验证是指代理(管理站)接到信息时首先必须确认信息是否来自有权的管理站(代理)并且信息在传输过程中未被改变的过程。实现这个功能要求管理站和代理必须共享同一密钥。管理站使用密钥计算验证
42、码(它是信息的函数) ,然后将其加入信息中,而代理则使用同一密钥从接收的信息中提取出验证码,从而得到信息。加密的过程与身份验证类似,也需要管理站和代理共享同一密钥来实现信息的加密和解密。下面简要介绍身份验证和加密的数学工具。SNMPv3 使用私钥(privKey)和验证密钥(authKey)来实现这两种功能。身份验证:RFC2104 中定义了 HMAC,这是一种使用安全哈希函数和密钥来产生信息验证码的有效工具,在互联网中得到了广泛的应用。SNMP 使用的 HMAC可以分为两种:HMAC-MD5-96 和 HMAC-SHA-96。前者的哈希函数是 MD5,使用128 位 authKey 作为输入
43、。后者的哈希函数是 SHA-1,使用 160 位 authKey 作为输入。加密:采用数据加密标准(DES)的密码组链接(CBC)码,使用 128 位的privKey 作为输入。8. 公共管理信息 CMIPCMIP 协议是在 OSI 制订的网络管理框架中提出的网络管理协议。与其说它是一个网络管 理协议,不如说它是一个网络管理体系。这个体系包含以下组成部分:一套用于描述协议的 模型,一组用于描述被管对象的注册、标识和定义的管理信息结构,被管对象的详细说明以 及用于远程管理的原语和服务。CMIP 与SNMP 一样,也是由被管代理和管理者、管理协议与管 理信息库组成。在 CMIP中,被管代理和管理者
44、没有明确的指定,任何一个网络设备既可以是 被管代理,也可以是管理者。 CMIP 管理模型可以用三种模型进行描述:组织模型用于描述管理任务如何分配;功能模 型描述了各种网络管理功能和它们之间的关系;信息模型提供了描述被管对象和相关管理信 息的准则。从组织模型来说 ,所有 CMIP 的管理者和被管代理者存在于一个或多个域中,域是 网络管理的基本单元。从功能模型来说,CMIP 主要实现失效管理、配置管理、性能管理、记 帐管理和安全性管理。每种管理均由一个特殊管理功能领域(SMFA,Special Management F unctional Area)负责完成。从信息模型来说,CMIP 的 MIB
45、库是面向对象的数据存储结构,每 一个功能领域以对象为 MIB 库的存储单元。 CMIP 是一个完全独立于下层平台的应用层协议,它的五个特殊管理功能领域由多个系统 管理功能(SMF)加以支持。相对来说 ,CMIP 是一个相当复杂和详细的网络管理协议。它的设 计宗旨与 SNMP 相同,但用于监视网络的协议数据报文要相对多一些。CMIP 共定义了 11 类 PDU 。在 CMIP 中,变量以非常复杂和高级的对象形式出现,每一个变量包含变量属性、变量行为 和通知。CMIP 中的变量体现了 CMIP MIB 库的特征 ,并且这种特征表现了 CMIP 的管理思想,即 基于事件而不是基于轮询。每个代理独立完
46、成一定的管理工作。 CMIP 的优点在于: 它的每个变量不仅传递信息,而且还完成一定的网络管理任务。这是CMIP 协议的最大 特点,在 SNMP 中是不可能的。这样可减少管理者的负担并减少网络负载。 完全安全性。它拥有验证、访问控制和安全日志等一整套安全管理方法。但是,CMIP 的缺点也同样明显: 它是一个大而全的协议,所以使用时,其资源占用量是 SNMP 的数十倍。它对硬件设备 的要求比人们所能提供的要高得多。 由于它在网络代理上要运行相当数量的进程,所以大大增加了网络代理的负担。 它的 MIB 库过分复杂,难于实现。迄今为止,还没有任何一个符合 CMIP的网络管理系统 。 9. SNMP
47、与 CMIP 的比较 SNMP 与 CMIP 是网络界最主要的两种网络管理协议。在未来的网络管理中,究竟哪一种将 占据优势,一直是业界争论的话题。 总的来说,SNMP 和 CMIP 两种协议是同大于异。两者的管理目标、基本组成部分都基本相 同。在 MIB 库的结构方面,很多厂商将 SNMP 的 MIB 扩展成与CMIP 的 MIB 结构相类似,而且两种协 议的定义都采用相同的抽象语法符号(ASN.1)。 不同之处,首先,SNMP 面向单项信息检索,而 CMIP 则面向组合项信息检索。其次,在信息 获得方面,SNMP 主要基于轮询方式 ,而 CMIP 主要采用报告方式。再次,在传送层支持方面,S
48、N MP 基于无连接的 UDP,而 CMIP 倾向于有连接的数据传送。此外,两者在功能、协议规模、性能 、标准化、产品化方面还有相当多的不同点。 10.网络管理协议的前景在网络界,除 SNMP、SNMP v2、CMIP 以外,现在正兴起一些新的网络管理协议和环境。其 中,以分布式计算环境(DME,Distributed Management Environment)最为著名。DME 是由 OS F(开放软件基金会)提出的。OSF 是一个非盈利的研究和开发组织,其目标是提供一个软件解 决方案,使来自不同厂家的计算机可以协同工作于一个真正的开放系统计算环境下。其文档 以RFT(Request fo
49、r Technology)的形式提供。 DME 代表了一种结构。在此结构下,管理系统和网络可以很好地结合。它可以构成分布 式系统管理的基础,并保持与现有网络管理方案的结合。它独立于操作系统,并支持事实上 的和正式的网络与系统管理标准。DME 的结构有许多新颖之处。以前,无论是网络管理还是 系统管理, 管理员通过修改与一个资源或服务相关的数据、通过对一些服务和数据进行操作 来进行管理。而在 DME 环境下,信息和操作都被划分为对象。DME 以对象为单位对系统进行管 理。所有 DME管理操作有一个一致的界面和风格:通过与对象通信。这种设计的很大好处是 模块性很强,完全是一种面向对象的管理方式,系统易于管理和开发。ISV 们可以建立自己的 某些特定管理功能的对象库或被管对象库,然后将其加入到已有的管理应用