第3章管理信息库包含有关被管理资源以及元素信息的数据库是网络管理系统的基础。在基于TCP/IP系统管理中,这个数据库被称为管理信息库(MIB)。它定义和构建了MIB的通用性框架结构,被称为管理信息结构(SMI,StructureofManagementInformation)。管理信息结构(SMI)指定了能够在MIB中使用的数据类型以及怎样表示和命名MIB中的资源。3.1概述3.1.1管理信息结构3.1.2MIB树结构简介3.1.3对象标识符3.1.4对象数据类型3.1概述在网络系统管理模型中,对网络资源信息的描述是非常重要的。管理信息库不是简单的数据的堆积,为了满足多个用户共享数据的需要,要将相关数据按照合理的数据模型进行组织和存储,以提供方便、高效、可靠、一致的信息服务。采用基于远程监控的网络管理框架,必须对多厂商的网络设备以及异构网络的信息进行统一、一致和规范的描述。否则管理者就无法读取、设置和理解远程的管理信息。为此,OSI提出了公共信息模型作为标准管理信息模型。公共信息模型采用面向对象技术,提出了被管对象的概念来对被管资源进行描述。被管对象是被管资源及其属性的抽象描述,它独立于各个厂商的设备等具体被管资源,具有统一、一致和规范的定义。OSI被管对象将行为、属性、操作和通报封装在对象边界上,Manager(或Agent)只能看到被封装在对象边界上的被管对象的特性,对象边界以内的特性是不可见的。通过被管对象类说明,封装的行为、属性、操作、通报和该类实例的完整性和一致性得到定义。OSI系统管理采用被管对象类的概念。每个对象实例是一个类的成员。OSI被管对象类都被赋予了一个全局唯一的标识符,实际上可以看作是对象的名称,这个名称是按照一定的规则命名的。同时,属性、动作和通报这些类成分的说明都被赋予独立的标识符,使它们能够在多个对象类的定义中被重复利用。新的被管对象类可以通过继承现有被管对象类来定义。在新的被管对象类中,被继承的被管对象类的特性(属性、动作、通报和行为)得以利用,同时也可以扩充新的特性。这种继承机制利用被管资源的共性,使程序代码被重复利用,加强了用户接口的一致性。在SNMP标准中采用了与OSI不太相同的管理信息模型。无论是管理站还是管理代理,都维护一个本地的管理信息库(MIB)。MIB的信息结构和数据类型在SNMP的标准之一的管理信息结构(SMI)中定义。为了保证SNMP的简单性,MIB只存储简单的数据:标量和标量表,其数据类型也只有简单的几种。虽然SNMP也采用被管对象的概念,但在SMI中,被管对象只是一个原子数据元素,并不具备封装和继承等特征。因此,SNMP的被管对象定义及程序代码的可重复利用性很低。SNMP的信息模型采用的不是真正意义上的面向对象技术。3.1.1管理信息结构为了规范管理信息模型,SNMP发布了管理信息结构SMI。SMI定义了SNMP框架所用信息的组织、组成和标识,规定了MIB中被管对象的数据类型及其表示和命名方法。SMI的基本思想是追求MIB的简单性和可扩充性。它还为描述MIB对象和协议怎样交换信息奠定了基础。SNMPv1的SMI被定义在RFC1155中,而SNMPv2的管理信息结构是在RFC1442中规定的。按照SMI定义的SNMP管理对象都具有3个属性:名字、语法和编码。名字即对象标识符,唯一标识一个MIB对象;语法即如何描述对象的信息,它用抽象语法记法1(ASN.1)来定义对象的数据结构(采用的是抽象语法表示的子集),同时也针对SNMP的需要作了一定的补充;编码描述了一个管理对象的相关信息如何被格式化为适合网络传送的数据段,这是因为管理代理和管理站之间进行通信必须对对象信息统一编码,SMI规定了对象信息的编码采用基本编码规则(BasicEncodingRule)。与OSI系统管理模型相同,SNMP也借助被管对象的概念对管理信息模型进行定义。但是,SNMP中的被管对象除了数据类型和访问控制特性之外,几乎再没有其他特性,因此不是真正意义上的对象。这种特点给SNMP的实现带来了便利,人们可以简单地将SNMP中的被管对象等效为数据变量。它们的组织和传递因而变得很简单,系统中所有的被管对象逻辑上被组织为一棵树,即MIB树。对被管对象的访问可以采用简单结构的PDU进行。MIB树的架构与OSI系统管理模型所采用的方法相同,如下图所示为OSI的管理信息库树(MIB树)示意图(图中仅列出部分对象)。SNMP的被管对象也被组织在这棵由对象标识符组成的管理信息库树下。ccitt(0)iso(1)org(3)Joint-iso-ccitt(2)dod(6)internet(1)mgmt(2)mib-2(1)experimental(3)private(4)directory(1)IBM(2)interfaces(2)system(1)…snmp(11)3.1.2MIB树结构简介MIB树的根节点并没有名字或编号,但是它有下面3个子树:ccitt(0)子树,由CCITT管理iso(1)子树,由ISO管理Joint-iso-ccitt(2)子树,由ISO和CCITT共同管理在iso(1)节点下有一些其它的子树,其中包括ISO为其他组织定义的子树—org(3)。在org(3)子树下,一个值得关注的特殊节点是被美国国防部(DepartmentOfDefense)使用的节点:dod(6),所有通过DOD的协议,如,Internet中基于TCP/IP通信的有关对象都位于该子树下。在Intenet节点下又包括4个子树:directory(1)子树:作为保留,在将来使用。mgmt(2)子树:mgmt(2)子树用于在IAB批准的文档中定义的对象,目前该子树中对象在网络管理中的使用最为广泛。如:mib-2。在本章下一节中将较为详细地介绍其中的管理对象。experimental(3)子树:用于识别在互联网实验中使用的所有管理对象。Private(4)子树:用于识别单方面定义的对象。或者说为各个企业管理信息准备的。该子树中网络管理系统访问最多的部分是enterprises(1)节点。该节点下的每个子树分配给一个企业,而企业必须先向IAB登记注册它们自已的厂商代码,然后就可以在该代码下创建他们自己的对象。如:IBM公司节点。MIB树上的每个节点对应一个被管对象,节点的所属关系也就是被管对象的包含关系,是一种管理和控制的关系,层次型的管理对象便于对对象进行管理。一个高级被管对象会包含多个层次的众多的被管对象。上层的中间节点往往代表某些组织机构的名字,说明这些机构负责其下面的子树信息的管理和审批。下层的中间节点代表的子树是与每个网络资源或网络协议相关的信息集合。如:有关接口的管理信息都放置在interfaces(2)子树中。值得注意的是,在SNMP模型中,只有处于叶子位置上的对象才有实例值可以被直接访问,我们称这些对象为基本被管对象。构造树型结构的做法为MIB的发展提供了很好的基础。MIB树中既包含标准和统一的被管对象,也容纳实验中的和专用的被管对象,使得它既有规范性,又不乏灵活性。另外,树状结构的组织方式可以很容易地加入新的网络管理对象,具有良好的扩充性。新加入的对象只是对其所连接父节点子树的延伸,对其他节点不会产生影响。3.1.3对象标识符对于被管对象的名字,即对象的标识,SMI提供了对象命名机制,它采用的是层次型的对象命名规则,所有对象构成一棵命名树,MIB树上的每个节点都有一个字符串名称(如:internet)和一个数字编号(如:在internet节点上的数字编号为1),同一层次的对象编号从左到右逐渐递增。每个对象的对象标识符就是把连接树根节点至对象所在节点路径上所有节点标识(字符串或编号)进行罗列而成。如:internet的数字标识符可写为:1.3.6.1,或者写成字符型标识符:{iso(1)org(3)dod(6)1}。3.1.4对象数据类型由SMI定义的SNMP管理信息库中对象的数据类型主要有三种:简单类型(simple)简单结构类型(simple-constructed)应用类型(application-wide)3.2MIB功能组及对象3.2.1MIB概述3.2.2MIBII的功能组MIB-II中包含11个功能组和175个对象。其中,定义的11个组如下图所示。可以看出它是mgmt节点下的第一个节点,MIB-II(mib-2)的对象标识符(OID)为1.3.6.1.2.1。在它下面分为11个节点,每个节点对应一个功能组。Internet{1.3.6.1}directory(1)mgmt(2)experimental(3)private(4)mib-2(1)system(1)interfaces(2)ad(3)ip(4)icmp(5)snmp(11)transmission(10)cmot(9)egp(8)udp(7)tcp(6)下表列出mib-2功能组名、对象标识符(OID)(这里用mib-2代表1.3.6.1.2.1,即mib-2的对象标识符)和每个组的主要描述。功能组对象标识符主要描述systemmib-21关于系统的总体信息,如系统说明和管理信息interfacesmib-22关于系统到子网的各个接口的信息atmib-23关于IP地址与物理地址的转换ipmib-24关于IP的信息icmpmib-25关于ICMP的信息tcpmib-26关于TCP的信息udpmib-27关于UDP的信息egpmib-28关于EGP的信息cmotmib-29为CMOT协议保留transmissionmib-210关于传输介质的管理信息,为传输信息保留snmpmib-211关于SNMP的信息3.2.3MIB-II的主要对象1.系统组(SystemGroup)系统组是Internet标准MIB中最基本的一个组,包含一些最常用的被管对象。网络管理系统(NMS)一旦发现新的系统被加到网络中,首先需要访问该系统的这个组,来获取系统的名称、物理地点、联系人等信息。2.接口组(InterfacesGroup)接口组包含与系统中的接口有关的被管对象。3.地址转换组(AddressTranslationGroup)组地址转换(at)组由一个表构成,表中的每一行完成系统中的一个物理接口地址向网络地址的映射。4.ip组Internet将IP协议作为组网协议。ip组包含IP协议中的各种参数信息。5.icmp组ICMP(InternetControlMessageProtocol)是TCP/IP协议族中的一部分,所有实现IP协议的系统都提供ICMP。6.tcp组tcp组包含与面向连接的传输控制协议(TCP)有关的被管对象。7.udp组udp组包含与无连接传输协议有关的被管对象。3.3被管对象的描述3.3.1ASN.13.3.2SNMP的数据类型和结构描述3.3.3被管对象的定义为了明确和规范地描述管理信息模型,需要形式化描述语言。对管理信息模型的描述,主要任务是定义被管对象。因此,管理模型所采用的描述语言必须能够有效地描述对象。著名的ASN.1(AbstractSyntaxNotationOne,抽象语法描述1)就符合这一要求,因而在管理信息定义中被广泛应用。本节主要介绍利用ASN.1描述被管对象的基本规则和方法。3.3.1ASN.1抽象语法技法(ASN.1)由CCITT(现ITU-T)和ISO联合开发,在管理模型中,ASN.1一方面用于描述和定义存储对象规则,即对象的类型和数据值;另一方面也用于描述和定义传递对象的规则,例如PDU格式。3.3.2SNMP的数据类型和结构描述SNMP被管对象的句法中只包括名称、数据类型、访问权限、状态等项目的定义。3.3.3被管对象的定义为了简化和规范定义方法,SMI提供了一个被管对象的MACRO(宏)—OBJECT-TYPEMACRO。所谓MACRO,就是一些类似事物的集合。而OBJECT-TYPEMACRO就是被管对象的集合,而一个具体的被管对象类就是这个MACRO的实例。即,定义了这个MACRO后,只要为它提