【摘要】:代理也能够使用网络管理协议向管理站报告异常事件。表2.11SMI的基本数据类型续表2.6.6.4SNMP协议和协议数据单元SNMP协议用于在管理站和管理代理之间传递MIB信息。
2.6.6.1 简单网络管理协议SNMP概述
网络管理体系结构当中有三个重要组件:管理站、管理代理和网络管理协议。整个系统有一个管理站,在管理站上运行管理进程,在每一个被管理设备运行管理代理进程。管理进程和代理进程通过网络管理协议进行通信,由代理进程在被管设备上进行本地操作。
网络管理协议是网络管理体系的核心,它运行在管理站和被管设备之间,允许管理站查询被管设备的状态,并经过其代理间接地在这些设备上采取动作。代理也能够使用网络管理协议向管理站报告异常事件。20世纪80年代后期推出的简单网络管理协议SNMP(Simple Network Management Protocol)是目前应用和实施最为广泛的网络管理协议。
SNMP发布于1988年。1989年10月,有70多个厂家(包括IBM、HP、Sun、Prime等著名公司)宣布支持SNMP。当时OSI虽然已制定出许多网络管理标准,但却没有符合OSI标准的产品。在这种情况下,Internet在1990年制定出SNMP网络管理标准[RFC 1155,1157],使SNMP很快变成了事实上的计算机网络管理标准。
SNMP的基本功能包括监视网络性能、检测分析网络差错和配置网络设备等。在网络正常工作时,SNMP可实现统计、配置和测试等功能。当网络出故障时,可实现各种差错检测和恢复功能。虽然SNMP是在TCP/IP基础上的网络管理协议,但也可扩展到其他类型的网络设备上。
SNMP的网络管理框架由3个部分组成,即管理信息库MIB、管理信息结构SMI以及SNMP本身。
(1)MIB是对网络管理对象的定义。在SNMP框架中,管理信息表现为管理对象的集合,称为管理信息库MIB。一个MIB对象可以是计数器、软件版本的描述信息、设备功能的状态信息或路由信息等。
(2)SMI是数据的定义语言,定义了数据类型、对象模型以及写入和修改管理信息的规则。MIB对象使用这种数据定义语言进行定义。
(3)SNMP协议用于在管理站和代理之间传递信息和命令。
2.6.6.2 管理信息库MIB
MIB是对网络管理对象的定义,指明了能够被管理进程查询和设置的管理对象,给出了一个网络中所有可能的被管对象的集合的数据结构。SNMP的MIB采用和域名系统DNS相似的树形命名结构,称为对象命名树(object naming tree)。
对象命名树的根没有名字。对象命名树的顶级对象有三个,分别是ISO、CCITT(即现在的ITU-T)和这两个组织的联合体。在ISO的下面有4个节点,其中的一个(标号为3)是被标识的组织,其下有一个美国国防部(Department of Defense)的子树(标号为6),再向下就是Internet(标号为1)。因此,Internet节点的标识为{1.3.6.1}。
在Internet节点下的第2个节点是mgmt(管理),标号为2,再向下是管理信息库mib-2,其标识为{1.3.6.1.2.1}。这种标识称为对象标识符(Object Identifier)。
最初的mib节点将其所管理的信息分为8个类别,现在的mib-2所包含的信息类别已经超过40个。
这里要提一下enterprises(企业)对象{1.3.6.1.4.1},其下属节点数已超过3000。例如,IBM为{1.3.1.4.1.2},Cisco为{1.3.6.1.4.1.9},Novell为{1.3.6.1.4.1.23}等。这些厂家可以在各自节点标识之下定义自己产品的被管对象名,使它能用SNMP进行管理。
2.6.6.3 管理信息结构SMI
管理信息结构SMI(Structure of Management Information)是SNMP的另一个重要组成部分。为了使网络管理协议简单,SMI对MIB可使用的变量类型作了许多限制,因而产生了定义MIB变量类型的规则。这些规则称为SMI规格说明。如图2.23所示。
SMI标准指明了所有的MIB变量必须使用抽象语法记法ASN.1来定义。这种记法使得数据的含义不存在任何二义性。例如,使用ASN.1的协议设计者不能简单地说一个具有整数值的变量,而必须说明该变量的准确格式和整数的取值范围。
图2.23 MIB的对象命名树图
SMI的基本数据类型。尽管SMI基于ASN.1对象定义语言,但它也增加了很多SMI的特定数据类型,所以SMI也被认为是具有专门用途的数据定义语言。RFC 2578中定义了11种基本数据类型,如表2.11所示。除这些对象以外,还可以使用Sequence of结构将一些有序的MIB对象集合组成列结构。
表2.11 SMI的基本数据类型
续表
(www.chuimin.cn)
2.6.6.4 SNMP协议和协议数据单元
SNMP协议用于在管理站和管理代理之间传递MIB信息。SNMP的基本操作如下:
(1)“读”操作,用get报文来检测各被管对象的状况。
(2)“写”操作,用set报文来控制各被管对象的状况。
SNMP采用请求响应和陷阱两种工作模式来实现这些操作。
SNMP的请求响应功能通过轮询操作来实现,即SNMP管理站定时向被管理设备周期性地发送轮询信息。这种方式可以使系统实现相对简单,但不够灵活,系统开销较大,而且所能管理的设备数目也不能太多。
SNMP还采用一种陷阱(trap)的工作模式,它允许被管理设备不经过管理站的询问就能报告某些信息。这种信息称为trap,即陷阱,表示它能够捕捉“事件”,在某些事件达到门限值的时候就可以向管理站进行报告。
因此,SNMP使用轮询以维持对网络资源的实时监视,同时也采用陷阱机制报告特殊事件,这使得SNMP成为一种有效的网络管理协议。
为了在管理站和管理代理之间传递信息,执行读(get)写(set)操作,SNMPv2定义了7种类型的报文,如表2.12所示。这些报文通常被称为SNMP的协议数据单元(PDU),采用如图2.24所示的报文格式。
表2.12 SNMP协议的报文类型
注 SNMP协议的第一个版本SNMPv1只定义了5种类型的报文,分别是get-request,get-next-request,get-response,set-request和trap。
图2.24 SNMP报文结构图
1.对于get/set首部
请求标识符(request ID),由管理进程设置的一个整数值。代理进程在发送get-response报文时也要返回此请求标识符。管理进程可同时向许多代理发出get报文,这些报文都使用UDP传送,先发送的有可能后到达。设置了请求标识符可使管理进程能够识别返回的响应报文对于哪一个请求报文。
(1)差错状态(error status)由代理进程回答时填入0~5中的一个数字。
(2)差错索引(error index)当出现noSuchName、badValue、或readOnly的差错时,由代理进程在回答时设置的一个整数,它指明有差错的变量在变量列表中的偏移。
2.对于trap首部
(1)企业(enterprise),填入产生trap报文的网络设备的对象标识符。此对象标识符肯定是在对象命名树上的enterprises节点{1.3.6.1.4.1}下面的一棵子树上。
(2)trap类型,共分为7种(类型0~6)。
(3)特定代码,指明代理自定义的事件(若trap类型为6),否则为0。
(4)时间戳,指明自代理进程初始化到trap报告的事件发生所经历的时间,单位为10 ms。
相关推荐