第3章OSI的网络管理
3.1 OSI的管理模型与体系结构
OSI网络管理框架是ISO在1979年开始制定的,也是国际上最早制定的网络管理标准。ISO7498-4制定了OSI的系统管理框架,它涉及对开放系统网络的管理,以及对根据OSI的参考模型设计的系统(包括相关通信)的行为的管理。这个框架定义了OSI的系统管理的基本概念和方案。ISO制定的OSI网络管理标准中,管理协议是CMIP(Common Management Information Protocol),所提供的管理服务是CMIS(Common Management Information Service)。
OSI网络管理体系机构要运行在OSI协议栈上,这是一个完全面向对象的设计,应用了面向对象的所有概念,包括对象的继承、包含、关联等。根据这个设计,该体系结构由信息模型、组织模型、通信模型和功能模型4个主要部分组成,它们结合在一起提供了非常全面的网络管理方案。
(1)信息模型。信息模型包括一个管理信息结构、层次命名体系和管理对象(MO)定义,其中管理信息结构是SNMP的管理信息结构的超集,而且也要用抽象语法来表示(ASN.1)。
(2)组织模型。组织模型实质上是指在一个开放系统的网络中采用分布式的协同管理。它与SNMP一样,是管理站与管理代理模式。
(3)通信模型。通信模型是基于系统的通信体系结构,它包括三种交换管理信息的机制:应用管理、层管理和层操作。其中,应用管理是应用层管理应用进程之间的通信;层管理是特定层管理实体之间的通信;层操作是标准协议实体之间的管理通信。
(4)功能模型。功能模型把整个管理系统划分成了5个功能域:配置、故障、性能、计费和安全管理。
CMIP定义的是如何实现CMIS服务,即指定了协议交换的PDU及其传送语法。
OSI网络管理的整体结构是建立在ISO参考模型的基础上的,网络管理应用进程使用的是ISO参考模型中的应用层。在这一层中,公共管理信息服务元素(CMISE)提供了应用程序使用CMIP的手段。联系控制服务元素ACSE(Association Control Service Element)用于建立和拆除两个系统之间应用层的通信联系。远程操作服务元素ROSE(Remote Operation Service Element)用于处理应用层之间的请求/应答交互。
这些协议及其应用,构成了ISO网络管理方案的框架结构。除了这些定义在应用层的协议外,OSI没有在底层特别为网络管理定义协议。
3.2 OSI的管理框架
ISO7498-4文件提供了OSI的系统管理框架。OSI的网络管理分为:系统管理和(N)层管理。系统管理包含所有7层管理对象,管理信息的交换采用的是端到端的可靠传输;层管理则只涉及某一层的管理对象,并利用下一层的通信协议传递管理信息。下面简单地介绍OSI系统管理框架结构的相关内容。
3.2.1 管理站和代理
OSI系统管理操作在对等的开放系统之间进行,一个系统称为管理站,另一个与之对等的系统称为代理,如图3-1所示。
图3-1 管理站和代理的关系
管理站为网络管理员与网络管理系统的接口。它的基本构成如下。
● 一组具有分析数据、发现故障等功能的管理程序。
● 一个用于网络管理员监控网络的接口。
● 将网络管理员的要求转变为对远程网络元素的实际监控的能力。
● 一个从所有被管网络实体的MIB中抽取信息的数据库。
管理站实施管理功能,而代理接受管理站的查询,并且根据管理站的命令设置管理对象的参数。但是在OSI管理中,管理站和代理的角色并非是绝对的,在一次交互作用中作为管理站的系统在另一次交互中可能担任的是代理的角色。至于代理和管理对象之间的关系,它们可能属于同一系统,也可能属于不同系统。代理如何管理本地的对象,如何了解远处对象的情况,完全取决于具体的实现。
管理站和代理之间要有共享的管理知识,这样它们之间可以相互了解,而且只有在此基础上才能够相互通信。这些管理知识包括具有哪些功能和功能单元,支持哪些管理对象,管理功能和管理对象之间有什么关系等。管理站和代理之间可以通过交换应用上下文(Application Context,AC)获得共享的管理知识。一般来说,AC是指管理站和代理之间共同使用的应用服务元素及其调用规则。系统管理应用实体的管理知识存储在本地的文件中,在建立应用联系阶段,通过交换应用上下文,可形成共享的管理知识。
3.2.2 通信模型
系统管理的目的是针对被管对象的资源进行管理和控制。因此,需要在相互协作的开放系统之间交换管理信息。OSI的通信模型包括如下三种主要管理类别。
(1)系统管理。
(2)层管理。
(3)协议管理(即层操作)。
图3-2说明了OSI的通信模型。OSI的网络管理体系结构并没有详细说明三种管理类别之间相互作用的特性。
图3-2 OSI的通信模型
1. 系统管理
系统管理涉及对互操作系统的全部管理行为。它是用分布式的系统管理应用(System Management Application,SMA)来表示的。这些系统管理应用由一系列相关的系统管理应用进程(System Management Application Process,SMAP)及它们之间的相互操作组成。
由于管理所导致的不对称关系,一个系统管理应用进程根据具体的应用,既可以担当管理者的角色,也可以担当代理的角色。网络管理应用中与通信相关的部分是系统管理应用实体(System Management Application Element,SMAE),它使用适当的网络管理协议与其他系统交换管理信息。这种管理通信的方式是OSI网络管理体系结构中的标准。
OSI的网络管理体系结构指定了网络管理应用进程通过系统管理应用实体交换管理信息这一过程,可以是基于它自己专用的服务(公共管理信息服务)和一个相关管理协议(公共管理信息协议)。图3-3显示了在OSI通信体系结构中的CMIS和CMIP。
图3-3 OSI通信体系结构中的CMIS和CMIP
CMIS用于访问可控制远程被管对象,它允许用户在管理信息库的整个信息树上进行操作。CMIS是面向连接的服务,它使用联系控制服务元素(ACSE)进行连接控制。CMIP协议接收来自CMIS的服务原语,构造适当的应用协议数据单元,并通过下层(如表示层)的服务将PDU传送给对等的CMIP用户。
2. 层管理
层管理包括涉及一个特定层的功能、服务和协议等内容,它不需要其OSI上层的服务,如第三层的交换路由信息等。尽管OSI的网络管理体系结构明确地将层管理划分为一类,但由于ISO在这方面只做了很少的工作,只定义了第三层的路由信息交换及第三层和第四层的对象库,因此这里对层管理不做深入的讨论。
层管理的通信实体被称做N层管理实体(Layer Management Entity,LME),其相关协议称为N层管理协议。
3. 协议管理(即层操作)
实际上,管理信息和功能也是标准层协议的组成部分,如HDLC中的测试帧、X.25协议中的RESULT-PDU数据单元或连接建立过程中的附加协议参数等。因此认识协议元素与管理的相关性是十分必要的。在许多最新的协议(如ATM、DQDB)和一些已经应用多年的协议(如X.25)的修订版中都已经考虑到了两者之间的关系。在这方面,目前仍有许多工作要做。
3.2.3 通信机制
管理站和代理之间的通信是通过交换包含管理信息的协议数据单元(PDU)进行的。通常是管理站向代理发送请求PDU,代理响应PDU回答。在有些情况下,代理也可能主动向管理站发送消息,特别把这种消息叫做事件报告(Event Reporting),管理站可根据事件报告的内容决定是否做出回答。
为了及时了解被管理资源的最新情况,管理站必须经常查询代理中的管理对象,这种定期的查询叫做轮询(Polling)。轮询的间隔或频度对网络管理的性能有很大影响。轮询过于频繁,会加重网络通信负载;轮询过少,又不能及时掌握管理对象的最新状态。所以轮询的间隔应根据网络配置和管理目标仔细设计。另外如果管理对象中出现了特殊情况(如作为管理对象的打印机缺纸),管理对象可以主动向代理发出通知。必要时代理可以把对象的通知以事件报告的形式发往管理站。
管理站要想知道代理是否存在,是否可随时与之通信,可以采用一种叫做心跳的机制(Heartbeats),即代理每隔一定时间向管理站发出信号,报告自己的状态。同样,心跳的间隔也是需要慎重考虑的。
3.2.4 管理域和管理策略
对于分布式管理,管理域是一个重要的概念。管理对象的集合叫做管理域。管理域的划分可能是基于地理范围的,也可能是基于管理功能的,或者是基于技术原因。无论怎样划分,其目的都是对不同管理域中的对象实行不同的管理策略。图3-4给出了一个管理域的例子。
图3-4 管理域的例子
每个管理域有一个唯一的名字,包含一组被管理的对象。管理和代理之间有一套通信规则。属于一个管理域的对象也可能属于另一个管理域,如图3-4中的对象YAB既属于管理域A,也属于管理域B。当网络被划分为不同的管理域后,还应该有一个更高级的控制中心,以免引起混乱。因而在以上概念模型的基础上又引入了上层管理域(Administrative Domain)的概念。上层管理域的作用是划分和改变管理和控制。图3-4中的管理域A和B属于同一上层管理域。关于分布式网络管理的许多概念,如管理域的安全问题、管理域的备份策略问题,管理域之间的动态关系问题等,是学术界目前讨论的主要论题,标准还不成熟。
3.3 OSI的管理信息模型
管理信息模型是指用面向对象的方法为与管理相关的资源建立的模型,由此产生了一套构造管理信息库的方法。面向对象的设计方法允许根据实际需要,以模块的方式增加新的被管对象类及其功能。在OSI的规范中,要求开放系统之间以系统管理协议传递的信息使用面向对象的设计原则。下面首先介绍模型设计中涉及的几个关于面向对象的基本概念。
(1)封装
封装是面向对象技术的一个基本特征。在OSI的管理信息模型中,每一种被管理的网络资源类型都由一个被管对象类来表示。该类资源的一个特定应用由一个被管对象实例表示:与该资源相关的管理数据及应用于该资源的管理过程被包装(封装)在相应对象中。网络管理应用只有通过相应对象才能访问网络资源,并实现监视和控制。
(2)属性
属性是被管对象所代表资源的某一种特性,如当前状态等。属性值反映了相关资源的状态。因此对网络资源的监视、控制实际上是通过对资源属性的监视或设置相应属性值来进行的。
一个属性的数据类型可以是整型、实型、字符串型、布尔型或者由一些基本类型组合成的复合类型。对一个属性的访问权限包括只读、只写或读写等。另外,在一个对象类内部,可以把一些属性进行归类以构成一个属性组。这样,当需要对属于该属性组的所有元素执行同一操作时,只需将该操作应用到该组即可。
(3)对象类和继承
从前面的介绍中,可以看出,被管对象类实际上是一个模板,它定义了一个特定的对象类型的属性、操作及行为等对象元素。所有拥有相同元素的对象实例是同一对象类的成员,不同的成员在具体的属性值上可以有所不同。
由于对象类的这种结构,允许根据已有对象类定义新的对象类,新的对象类称为原对象类的子类。这种定义子类的方法的优点如下。
● 每个类拥有自己的子类,每个子类又可以拥有自己的子类,依此类推,就可以形成同一种类的层次结构。这种层次结构几乎可以反映任何被管资源的实际结构。
● 每个子类都延续了其父类的特性,即所谓的继承关系。通过继承关系,使得对对象特性的定义得以简化,也便于对对象的特性进行扩展。
OSI规定对对象类特性的扩展可以通过以下方式进行。
● 增加新的属性。
● 扩展或限制已有属性的范围。
● 增加新的操作和通告。
● 为已有操作和通告增加参数。
● 扩展或限制操作和通告中参数的范围。
一个子类还可以从多个父类中派生出来,同时继承定义在每一个父类上的属性、操作、行为或通告等。
所有对象类最终是从一个唯一的对象类中派生出来的,这个最终意义上的父类形成一个顶点,其他对象类则以该顶点为根节点形成一个类的层次结构,如图3-5所示。
图3-5 对象类的继承关系
(4)操作
系统管理操作可作用于被管对象的一个属性,也可以作用于整个被管对象。管理系统要执行一项操作,需要满足以下条件。
● 执行操作的管理系统具有执行该操作所必需的访问权限。
● 该操作不违反一致性限制。
(5)行为
当在被管对象上执行某项操作时,该对象将表现出特有的行为特征,即如何做出反应。
被管对象的行为反应是在受到来自外部或内部信号激发时产生的。外部激发信号由以CMIP消息方式传递的系统管理操作构成,内部的激发信号由被管对象内部事件构成,如计数器等。
(6)通告
当被管对象检测到某些会对其产生影响的外部或内部事件时,它会发出相应的时间通告。通告可以记录下来,也可以以某种协议传输到外部的管理系统中。管理系统可以规定被管对象对事件通告的处理方式。
管理信息模型的定义指明了可以在被管对象上执行的操作。这些操作是以管理实体使用网络管理协议向被管对象发送消息的方式执行的。这些操作可以分为以下两种类型。
① 面向对象的操作。应用于整个对象的操作包括以下几个。
● 创建。
● 删除。
● 执行。
② 面向对象属性的操作。应用于对象属性的操作包括以下几个。
● 读取属性值。
● 替换属性值。
● 设置属性值为默认值。
● 增加成员到一个属性组中。
● 从一个属性组中删除成员。
这里涉及一个将在后面提到的同步方式问题。
● 选择最小方式执行操作,则或者所有操作都成功执行,或者一个操作也不执行。
● 选择最大方式执行操作,则被管对象对请求执行操作的一组属性中的每一个进行相应操作。作为这种操作的结果,对象将报告那些可以执行操作的属性及其属性值,以及那些无法执行操作的属性的错误指示。
3.4 公共管理信息服务
OSI系统管理的基本功能是通过协议在两个实体管理者(manager)和代理(agent)之间交换管理信息。OSI系统管理的这一功能被称做公共管理信息服务元素(CMISE)。它由以下两个部分组成。
(1)用户接口
指定所提供的服务,即公共管理信息服务。
(2)协议
指实现CMIS的协议,即公共管理信息协议。它规定了协议数据单元的格式及相关进程。
如图3-6表示了CMIS提供及使用的服务。
图3-6 CMIS提供及使用的服务
在OSI的网络协议标准中,同一个开放系统的相邻层之间创建和使用原语的规则是在OSI协议服务元素标准中定义的。协议服务元素把服务原语及其参数映射成协议数据单元(PDU),然后经过通信链路传送到另一方。CMIS以服务原语的形式为管理操作提供了7种服务,如表3-1所示。为了进行管理操作,CMIS的用户之间必须能够建立应用联系,而这必须依赖联系控制服务元素——ACSE提供的服务。CMIP主要用于为CMIS交换协议数据单元,同时CMIP又依赖于远程操作服务元素(ROSE)。ACSE和ROSE又依赖于表示层的服务。
表3-1 CMIS提供的服务
我们将在本节和3.5节分别介绍CMIS和CMIP。
3.4.1 公共管理信息服务的定义
公共管理信息服务(CMIS)定义了为OSI提供的服务。这些服务由管理进程激活来进行远程通信。CMIS是以原语的形式定义的,这些原语(见表3-1)可以看做是命令或带有参数的过程调用。CMIS可以分为以下两类。
(1)有确认(confirmed)的服务
由远程管理进程发回一个响应以确认命令的接收,以及所请求的操作成功与否。
(2)无确认(non-confirmed)的服务
不需要提供响应。
从实际应用的角度出发,CMIS又可以分为以下三类。
(1)联系服务(association service)
用户要进行通信必须首先建立一个应用联系。而这个联系是依赖于联系控制服务元素进行控制的。
(2)管理通知服务(management-notification service)
该服务传递用于通知(notification)的管理信息。通知的定义及随后通信实体的行为依赖于产生通知的被管对象的具体规范。
(3)管理操作服务(management-operation services)
这里包括6 个不同的服务,它们传递用于系统管理操作(systems-management operations)的管理信息。与管理通知服务类似,操作的定义及随后通信实体的行为依赖于执行操作的被管对象的具体规范。
公共管理信息服务提供了以下两个组织功能。
(1)链接(linkage)
对于一个有确认的操作可以有多个响应。通过使用一个链接标识参数可以把这些响应和那个操作链接起来。
(2)选择被管对象(management-object selection)
一个操作可以被多个被管对象执行。这些被管对象的选择,是以满足一定标准并且服从同步条件来进行的。
下面首先介绍这两个组织功能,然后再详细描述CMIS。
3.4.2 链接
某些服务原语,如M-GET,M-SET,M-ACTION,M-DELETE等,允许指定在多个对象上操作。当一个请求被指定在多个对象上操作时,每一个对象都返回一个响应。这就需要某种机制将不同的响应与产生响应的原始请求联系起来,以避免因存在无结果的请求而使得后续的响应与它的原始请求无法匹配。
CMIS提供的链接功能实现的正是这种联系机制。
链接是通过链接标识符来提供的。首先,在请求和指示原语中有唯一分配的引用标识符,然后在相应的响应和确认原语中去匹配该标识符。由于该标识符的唯一性,使得在整个操作中,每个响应能够和它的原始请求始终保持联系,从而达到了连接的目的。
3.4.3 选择被管对象
当用户选择多个对象进行操作时,需要满足一定的条件。为此,CMIS提供了一组工具帮助用户进行对象的选择。这些工具是作为M-GET,M-SET,M-ACTION,M-DELETE服务原语中的参数来提供的。
这里需要提到三个概念:划定范围、过滤和同步。
1. 划定范围(scoping)
划定范围是指确定要进行过滤的对象。范围的划定是通过引用被管对象的特定实例来定义的。该对象被称做基被管对象(base managed object)。基被管对象是选择进行过滤的对象的起点。根据前面提到的包含和命名原则,被管对象会形成一个层次型或树状结构。用基对象作为树根,就可以得到整个对象树的子树集合。从整个角度出发,对于对象范围的划定可以有以下4种描述。
(1)基对象本身。
(2)基对象的第n层下属。
(3)基对象及从基对象到第n层(包括第n层)的所有下属。
(4)基对象及它的所有下属。
图3-7说明了上述基本概念。
图3-7 划定范围的4种描述
2. 过滤(filtering)
过滤是一个逻辑表达式,它包含对一个或多个在划定范围内的被管对象的属性的值或存在的判断。判断可能是关于相等、排序、集合比较或存在的测试,并且需要满足下面的匹配规则。
(1)相等:给定值(asserted value)等于属性值。
(2)小于等于:给定值小于等于属性值。
(3)大于等于:给定值大于等于属性值。
(4)子串:属性值中以给定顺序包括特定子串。
(5)子集:所有的给定成员在属性中存在。
(6)父集:属性的所有成员在给定属性中都存在。
(7)非空交集:至少有一个给定成员在属性中存在。
(8)存在:属性值存在。
3. 同步(synchronization)
在划定范围的过程中,可能会出现需要对一个以上的被管对象进行过滤的情况。这时就需要确定以何种顺序对这些对象进行选择,即同步处理问题。目前在CMIS的规范中,CMIS用户可以采用以下两种同步方式。
(1)原子同步。检查所有被选择进行操作的被管对象,确定它们是否能够成功地执行操作。只要有一个被管对象不能执行操作,则所有对象都不执行操作。
(2)最大努力的同步。允许所选择出来的对象都执行该操作。
3.4.4 联系服务
为了使两个CMIS用户能够进行管理操作,首先要在它们之间建立应用联系,而这依赖于联系控制服务元素提供的服务。
联系控制服务元素服务的作用是建立和终止应用联系。
CMIS用户在使用联系控制服务元素建立应用联系时,需要完成以下两个动作。
(1)建立一个用来交换CMIS服务原语的应用联系。
(2)在建立联系时,两个CMIS用户就联系中使用的CMIS特性达成一致协议。
联系控制服务元素使用的CMIS特性是以功能单元(functional units)的形成来描述的。表3-2列出了CMIS的功能单元,每个功能单元定义了服务所提供的一组功能。
表3-2 CMIS的功能单元
CMIS默认值提供的服务是核心功能单元。对于其他功能单元,可以在建立联系时,由联系双方通过协商决定是否将它们加入到核心功能单元中。
联系控制服务元素包括以下3种服务原语。
(1)A-ASSOCIATE:主要用来建立应用联系。
(2)A-RELEASE:用于有序地释放一个联系。
(3)A-ABORT:导致突然释放一个联系。
CMIS用户在发出A-ASSOCIATE服务请求时,要提供建立联系所需要的参数。该参数包括以下信息。
(1)功能单元(functional units):它是请求建立联系的用户所发出的为建立此联系而建议的一系列附加功能单元。这个参数可以出现在请求/指示或响应/确认原语中。
(2)访问控制(access control):这部分没有被明确定义。用户可以根据需要来增加访问控制信息。
(3)用户信息(user information):应用专用信息。
3.4.5 管理通知服务
在管理通知服务中只定义了一个服务原语:M-EVENT-REPORT。CMIS的用户利用它互相通知检测到的各种事件,包括传递故障管理操作中常用的各种警告信息。用户可以要求需要确认服务或不需要确认服务。在图3-8中画出了与该服务有关的原语及其先后关系。这些原语中必须携带一定的参数,CMIP协议(CMIP、CMIP协议机)实体用这些参数构造相应的应用层协议数据单元,接收方CMIP协议实体再将其恢复到另一个原语中。M-EVENT-REPORT服务原语中的参数分为以下几个。
图3-8 M-EVENT-REPORT服务原语和服务过程
(1)发起方标识符:这个参数用于表明发送时间的网络管理实体,它的取值在网络管理国际标准中并没有定义,但必须在全网范围内独一无二,以区分不同的网络管理实体。这个参数在这个服务的所有原语(一个服务需要2个、4个或更多个原语)中都必须携带。
(2)模式:该参数用来表明这次服务是需要确认还是不要确认的,需要确认则接收方用户必须给出一个确认。该参数在请求原语(request)和指示原语(indication)中都必须携带。
(3)管理对象类:该参数指明这次报告的事件是在哪类管理对象上发生的(指定事件源)。管理对象的“类”决定了这个管理对象有哪些属性,同类的管理对象具有同样的属性集合。该参数在请求和指示原语中是必须携带的,而在响应(response)和确认(confirm)原语中是可有可无的。
(4)管理对象实例:该参数说明发生事件的是哪个管理对象实例,通常和前一个参数(管理对象类)一起确定一个网络资源。这个参数在请求和指示原语中是必须有的,而在响应和确认原语中可有可无。
(5)事件类型:这个参数说明这次报告的是什么事件,但事件代码的解释则与管理对象无关,不同的管理对象可能定义不同的事件代码表。请求和指示原语中必须携带该参数,如果在响应和确认原语中包括事件回答参数,则也必须同时包括事件类别参数。
(6)事件发生时间:这个参数说明该事件检测到的时间。这个参数在请求和指示原语中是可选的参数,在响应和确认原语中则没有。
(7)事件信息:当报告事件的用户需要解释该事件发生的原因或说明事件发生的环境等情况时,就可使用该参数。这个参数内容的解释与管理实体有关,不同的管理实体之间可能有不同的定义。这个参数在请求和指示原语中是可选的,在响应和确认实体中则没有。
(8)当前时间:这个参数携带发出原语的时间。在请求和指示原语中没有这个参数,在响应和确认原语中它是可选的。
(9)事件回答(事件响应):该参数包含的内容是对事件报告的回答,说明事件报告操作是成功还是失败。在请求和指示原语中不能有这个参数,在响应和确认中它则是一个条件参数,由发出响应的用户决定在参数域中传送什么内容。
(10)差错信息(差错代码):这个参数携带的是当本操作失败时的原因等诊断信息。CMIS的差错信息及其使用如表3-3所示。
表3-3 CMIS的差错信息表
续表
注:打×表示该服务操作有该种差错信息。
3.4.6 管理操作服务
管理操作服务包括6类服务:M-GET, M-SET, M-ACTION, M-CREATE, M-DELETE和M-CANCEL-GET。它们负责传递用于系统管理操作的管理信息。
1. M-GET
该服务是提供给CMIS用户以从另一个对等的CMIS用户那里获取信息的。它主要用于管理者从代理的管理信息库中获取信息。这个服务是要求确认的服务,其服务原语和服务过程如图3-9所示。
图3-9 M-GET的服务原语和服务过程
下面解释M-GET原语的参数。
(1)发起方标识符:这个参数代表需要读取信息的管理实体,即CMIS用户的标识符,也即用户名。该标识符的取值在OSI标准中没有规定,但在全网范围内必须是唯一的,以能够区别正在工作的不同管理实体。在所有原语中,该标识符是必不可少的。
(2)链式标记:这个标记只有在读取命令需要多重回答时才用到(利用划定范围功能就可以一次指定多个管理对象进行操作,由它们分别给出回答),用于区别发出回答的多个管理实体。对它的规定与对发起方标识符的规定一样。多重回答的各个回答之间的关系包含在这个参数中。
(3)基本对象类:这个参数指定要在这次操作中读取对象属性等信息的一组管理对象类,也可只指定一个管理对象类。如果是指定一组,则这个参数只指定了要进行搜索、筛选的一系列管理对象中的第一个。基本对象类是实现确定范围功能所必需的。
(4)基本对象实例:该参数指定一个管理对象的实例,也是指定了搜索和筛选的第一个实例,这是实现确定范围功能所必需的。
(5)范围:这个参数用于指定管理对象树的一棵子树,也即指定一组管理对象进行搜索和筛选,以便对它们进行有选择地读取。在OSI标准中规定了4个搜索级别:只搜索基本管理对象、搜索基本管理对象所代表子树上的第N层管理对象、搜索基本管理对象所在子树上的第M~N层管理对象和搜索基本管理对象所代表子树上的所有管理对象。该参数的默认值为只搜索基本管理对象。
(6)筛选器(过滤条件):该参数指定了搜索时的测试条件,满足条件的管理对象就是要进行读取信息的,但筛选器只对范围所规定的管理对象进行筛选。筛选器实质上是一个布尔多项式,即用布尔操作符AND、OR、NOT连接起来的多项式。
(7)访问控制:OSI标准对这个参数的取值没有做出规定,但说明了其用途。这个参数是为了支持CMIS用户在建立会话时采取一些访问控制措施而设置的。该参数可以在请求和指示原语中使用,但在响应和确认原语中是没有的。
(8)同步:当有多重回答存在时,发起方管理实体用该参数告诉对等用户在多个回答之间如何同步。同步方案有原子方式和尽最大努力方式两种。原子方式规定了所有选中进行操作的管理对象都必须成功完成操作,否则所有对象的操作都认为是失败的。而尽最大努力方式则要求各个对象的操作独立进行,能够完成操作的对象就返回操作响应,部分对象不能完成操作也不影响其他对象的操作。
(9)属性列表(属性名清单):该参数是可选的,在服务请求原语中使用,响应方必须把该列表中指定的管理对象之属性值在回答(响应)中传回请求用户。如果该参数省略,则意味着响应中要包括所有的属性。这个参数的使用与CMIS和管理对象的实现有关。
(10)管理对象类:该参数在请求和指示原语中使用,在响应和确认原语中是可选的,用于说明响应中传送的是哪个对象类的属性。
(11)管理对象实例:该参数在请求和指示原语中不可用,而在响应和确认原语中是可选的,用于说明响应中传送的是哪个对象实例的属性。
(12)当前时间:请求和指示原语中不用这个参数。它在响应和确认原语中也是可选的,用于说明管理实体发出响应的时间。
(13)属性值列表(属性值清单):这个参数由一组属性标识符和属性值组成,它们都是管理实体给出的响应内容。这个参数可表示GET操作的成败,如果成功就会出现这些属性标识符和它们的值。
(14)差错信息(差错代码):当M-GET操作或服务不能正确完成时,该参数给发起方用户返回一个差错信息,可以用于故障诊断。可能返回的差错信息如表3-3所示。
2. M-CANCEL-GET
M-CANCEL-GET服务用于取消占用过多时间和资源的GET操作。GET服务是唯一带有取消选项的服务。因为其他操作都要改变管理对象的特性如属性值等,不能在操作过程未结束时取消操作,如果中途取消操作会造成操作不完全,而不完全的操作又可能会使管理对象处于未知的状态。只有GET是不影响对管理对象的操作的,随时可以取消操作且不会造成管理对象的状态改变。另外,即便是GET操作,也不应该在管理对象的状态不稳定时去读取信息。
如果用户发现在GET的参数中给出的范围太大,包括了太多的管理对象,需要大量时间处理或需要耗费大量的资源以完成该操作,这时就可以用M-CANCEL-GET服务原语来取消前面发出的M-GET服务请求。M-CANCEL-GET服务的原语交换过程如图3-10所示。
图3-10 M-CANCEL-GET服务原语和服务过程
“取消get”操作原语的引入主要用于取消大量数据的读取,当get操作要读取的是一大堆数据,如一个操作命令选中多个管理对象进行操作或对一个管理对象操作但形成多个回答(即多重回答)时,及时使用“取消get”操作可以减轻网络的负担,尤其在网络业务量较大时更能显示出该操作的好处。
由于get操作不会改变管理对象的状态、属性值等,因而可以放心地使用“取消get”操作而不会带来麻烦。但必须让管理进程知道get操作是正常完成还是被取消的。
M-CANCEL-GET服务原语比较简单,只有以下3个参数。
(1)发起方标识符:该参数指明调用M-CANCEL-GET服务的管理实体的名字或代号。与其他原语中的发起方标识符一样,OSI管理标准中也没有规定这个标识符的值该如何取得,但至少必须在该标识符的使用系统和时间范围内是唯一的。在所有的请求原语中都有这个参数。
(2)发起GET方标识符:这个参数指定要删除哪个M-GET操作(说明要删除的M-GET操作是由哪个管理实体发起的)。
(3)差错信息(差错代码):如果操作不能完成,则用这个参数通知发起方管理实体关于本次操作未能完成的原因。操作失败的差错信息编码如表3-3所示。
3. M-SET
当管理实体需要改变管理对象的属性值时可调用这个服务,以请求对等的管理实体完成相应的操作。该服务可以按照需要确认方式提供服务,也可以按照不确认方式提供服务,这决定于发起方用户的要求。服务中传送的设置内容对CMIS来说可以是任意的,因为M-SET只负责传送设置请求和设置结果,至于如何设置和设置什么则是管理实体的事。M-SET的服务原语和服务过程如图3-11所示。
图3-11 M-SET的服务原语和服务过程
M-SET服务原语有如下的一些参数。
(1)发起方标识符:表明请求M-SET服务的管理实体(CMIS用户)。
(2)链式标记:这个参数只有在需要多重回答时才用,用于区别发出回答的管理实体。
(3)模式:该标识符指定本次操作是需要确认还是不需要确认,在请求和指示原语中必须有此参数。
(4)基本对象类:这个参数给出需要进行操作的管理对象类。它在请求和指示原语中是必须的,在响应和确认原语中则没有。
(5)基本对象实例:这个参数给出需要进行操作的管理对象实例。它在请求和指示原语中是必须有的,在响应和确认原语中则没有。
(6)范围:这个参数用于确定管理对象树的一棵子树,这棵子树上的一部分管理对象是将要进行搜索并操作的。除了指定子树外,该参数还进一步指定在这棵子树上的搜索范围,但是它需要与基本对象参数一起指定:基本对象本身、基本对象以下第N层(子孙)节点上的对象、基本对象以下第M~N层(子孙)节点上的对象或者是基本对象及其所有子孙。如果省略这个参数,则指定为基本对象及其所有子孙。
(7)筛选器(过滤条件):这个参数给出搜索子树时的匹配条件,符合条件的对象才是本次要操作的管理对象。匹配条件实质是一个布尔多项式,即用布尔操作符AND、OR和NOT连接起来的逻辑多项式。
(8)访问控制:该参数如何取值在标准中尚无规定,它决定于参与管理通信的各个对等实体之间的协议。在响应和确认原语中没有这个参数。
(9)同步:该参数用于规定对多个对象进行操作时各个对象操作的顺序关系。这个参数指定的同步类型分原子方式和尽最大努力方式两种。
(10)管理对象类:这个参数在响应和确认原语中才有,而且是可选的,用于说明该响应是对哪个管理对象类操作的结果。
(11)管理对象实例:这个参数在响应和确认原语中才有,而且是可选的,用于说明该响应是对哪个管理对象实例操作的结果。
(12)属性值列表(属性值清单):这个参数是必须有的,包括一组属性标识符及其属性值,与前面将的其他操作原语中的属性列表一样。
(13)当前时间:该参数携带响应产生的时间,实际上就是M-SET操作完成的时间,因而只有响应和确认原语中才有它,而且是可选的。
(14)差错信息(差错代码):如果M-SET操作失败,CMIS将返回操作失败的原因码。差错信息编码如表3-3所示。
4. M-ACTION
这个服务与M-SET服务不同。SET服务是对管理对象的参数及各种属性进行操作的,而M-ACTION服务则对管理对象执行一些动作,如要求环路测试软件发送一个测试序列等。该服务也提供两种选择:需要确认服务和不要确认服务。M-ACTION的服务原语和服务过程如图3-12所示。
图3-12 M-ACTION服务原语和服务过程
M-ACTION服务原语中的每个参数的含义如下。
(1)发起方标识符:与其他服务原语一样,它是请求服务管理实体的标识符。它在与该管理实体有关的管理环境中是唯一的。
(2)链式标记:该参数只有在多重回答时才用,用于区别发出回答的管理实体。
(3)模式:该参数指定本次操作需要确认还是不要确认。这个参数只有在请求和指示原语中才有。
(4)基本对象类:这个参数给出需要执行动作的管理对象类。它在请求和指示原语中是必须有的,在响应和确认原语中则没有。
(5)基本对象实例:这个参数给出需要执行动作的管理对象实例。它在请求和指示原语中则没有。
(6)范围:这个参数用于确定管理对象树的一棵子树,这棵子树上的对象是将要进行搜索、匹配并执行动作的。它与其他原语中的范围参数作用相同。
(7)筛选器(过滤条件):这个参数给出了搜索子树时的匹配条件。有符合条件的对象才是本次要执行动作的管理对象。
(8)管理对象类:这个参数在响应和确认原语中才有,而且是可选的,用于说明该响应是对哪个管理对象类执行动作的结果。
(9)管理对象实例:这个参数在响应和确认原语中才有,而且是可选的,用于说明该响应是对哪个管理对象实例执行动作的结果。
(10)访问控制:该参数如何取值在标准中尚无规定,它决定于参数与管理通信的各个对等管理实体之间的协议。在响应和确认原语中没有这个参数。
(11)同步:该参数用于规定对多个对象执行动作时各个对象的动作的顺序关系。这个参数指定的同步类型分原子方式和尽最大努力方式两种。
(12)动作类型:该参数说明对管理对象执行哪个动作。
(13)动作变量:这个参数对执行的动作给出了更加详细的信息。在请求和指示原语中它是可选的参数,在响应和确认原语中则没有这个参数。
(14)当前时间:该参数携带响应产生的时间,实际上就是M-ACTION操作完成的时间,因而它只有在响应和确认原语中才有,而且是可选的。
(15)动作结果(动作变量):这个参数中包含执行动作的结果,如成功还是失败等。
(16)差错信息(差错代码):如果M-ACTION操作失败,CMIS将返回操作失败的原因码。差错信息编码如表3-3所示。
5. M-CREATE
管理实体可以要求对等管理实体创建一个管理对象实例,这个服务就是为支持这类操作而设的。发出请求的管理实体必须提供完整的管理对象信息及相应的属性值等参数。这个服务总是需要确认的,请求方用户总会得到一个回答。创建管理对象实例的服务原语和服务过程如图3-13所示。
图3-13 M-CREATE的服务原语和服务过程
M-CREATE服务原语中每个参数的含义如下。
(1)发起方标识符:与其他服务原语一样,它是请求服务管理实体的标识符。它在与该管理实体有关的管理环境中是唯一的。
(2)管理对象类:这个参数在响应和确认原语中是可选的,在请求和指示原语中是必不可少的。该参数说明将要创建的是哪个类的管理对象。
(3)管理对象实例:该参数在响应和确认原语中是可选的,但在请求和指示原语中是必不可少的。该参数说明将要创建的是哪个类的管理对象实例。
(4)父管理对象实例:这个参数指定一个已经创建的管理对象实例,新创建的实例将是它的子实例。
(5)访问控制:该参数如何取值在标准中尚无规定,它决定于参与管理通信的各对等管理实体之间的协议。在响应和确认原语中没有这个参数。
(6)参考对象实例:这个参数指定一个已经存在的管理对象实例作为新创建的对象的参照物,该参考对象实例的属性等参数值就作为新创建对象实例的默认值。该参数在请求和指示原语中必须有,在响应和确认原语中则没有。
(7)属性值列表(属性值清单):该列表由发起方用户给出,对等服务用户按照这个列表返回属性值。如果该参数省略,则返回所有属性的值。
(8)当前时间:该参数携带响应产生的时间,实际上就是M-CREATE操作完成的时间,因而它只有在响应和确认原语中才有,而且是可选的。
(9)差错信息(差错代码):如果M-CREATE操作失败,CMISE将返回操作失败的原因码。差错信息编码如表3-3所示。
6. M-DELETE
这个服务用于删除管理对象树中的一个节点(一个管理对象实例)。这个服务只提供要求确认的服务。M-DELETE的服务原语和参数,以及服务过程如图3-14所示。
图3-14 M-DELETE服务原语和服务过程
M-DELETE服务原语中的每个参数的含义如下。
(1)发起方标识符:与其他服务的原语一样,它是请求服务管理实体的标识符。它在该管理实体有关的管理环境中必须是唯一的。
(2)链式标记:该参数只有在多重回答时才用,用于指明发出回答的管理实体。
(3)基本对象类:这个参数给出需要搜索并删除的管理对象类。它在请求和指示原语中是必须有的,在响应和确认原语中则没有。
(4)基本对象实例:这个参数给出需要搜索并删除的管理对象实例。它在请求和指示原语中是必须有的,在响应和确认原语中则没有。
(5)范围:这个参数用于确定管理对象树的一棵子树,这棵子树上的对象是将要进行搜索、匹配并执行删除操作的。这个参数如果省略,则指定为基本对象及其所有子孙。
(6)筛选器(过滤条件):这个参数给出搜索子树时的匹配条件。只有符合条件的对象才是本次要删除的管理对象。匹配条件实质是一个布尔多项式,即用布尔操作符AND、OR和NOT连接起来的逻辑多项式。
(7)访问控制:该参数如何取值在标准中尚无规定,它决定于参与管理通信的各对等管理实体之间的协议。在响应和确认原语中没有这个参数。
(8)同步:该参数用于规定对多个对象执行删除操作时不同对象操作之间的关系。这个参数指定的同步类型分原子方式和尽最大努力方式两种。
(9)管理对象类:这个参数在响应和确认原语中才有,而且是可选的。该参数说明该响应是对哪个管理对象类执行删除的结果。
(10)管理对象实例:该参数在响应和确认原语中才有,而且是可选的。该参数用于说明该响应是对哪个管理对象实例执行删除的结果。
(11)当前时间:该参数携带响应产生的时间,实际上就是M-DELETE操作完成的时间,因而它只有在响应和确认原语中才有,而且是可选的。
(12)差错信息(差错代码):如果M-DELETE操作失败,CMIS将返回操作失败的原因码。差错信息编码如表3-3所示。
3.5 公共管理信息协议
CMIP是在ISO的网络管理标准文本ISO 9595中定义的,它所支持的服务正是3.4节介绍的CMIS的各种服务。也就是说,CMIS对上层提供前面介绍的7种服务,而不同系统中的CMIS之间则按照CMIP进行管理信息的交换。与其他通信协议一样,CMIP规定了一套规则,CMIP协议实体之间按照这套规则交换各种协议数据单元(PDU)。PDU的语法和语义是按照ASN.1的规则定义的。
需要注意的是,CMIP只是定义了怎样解释一个数据包中的信息,但并不强调对于任何来自管理对象的请求信息,CMIS用户应该做什么。因此,网络管理系统在从管理对象请求任何相关信息时,可以采用任何实现方式去解释该信息。
3.5.1 CMIP的协议数据单元
CMIP在提供公共管理信息服务时,它首先接受用户的服务请求原语,如M-CREATE.request原语,然后将它转换成一个特定的协议数据单元(PDU)并调用应用层的其他应用协议实体将它们传送到对等的CMIP协议实体,PDU中携带了原语中给出的所有参数。对等的CMIP协议实体接收到该PDU以后将它转换成相应的指示服务原语,如M-CREATE.indication,递交给用户。这样就完成了一次单程的服务。如图3-15所示,图中画出了相应的传输过程。
图3-15 公共管理信息服务的传输过程
由于协议数据单元的详细定义很琐碎,故这里只用例子来说明在ISO的网络管理标准中是如何定义公共管理信息协议数据单元的。下面以M-CREATE服务为例进行说明。
在OSI管理标准中,协议数据单元的格式是按照ASN.1中规定的结构化方法来定义的。其中与M-CREATE操作相对应的协议数据单元的定义如图3-16所示。图中省略了一些次要内容,以便更容易理解其定义方法。
图3-16 M-CREATE的协议数据单元的定义
图3-16 中的协议数据单元由3 个主要字段组成,它们分别是ARGUENT(变量)、RESULT(结果)和ERRORS(错误信息)。其中ARGUMENT字段是发起方用户给出的操作参数,附带在M-CREATE服务原语中带,从发起方传送到接收方;RESULT字段和ERRORS字段则是从接收方用户(操作的执行用户)发回的有关操作进行情况的信息,CMIP协议实体是从M-CREATE响应原语中得到这些信息的。
图3-16中还给出了上述3个字段的详细定义,ARGUMENT字段和RESULT字段都由多个小字段组成的,有的小字段则又分成更小的字段。图中还有关于字段内容和原语参数的关系。值得注意的是,服务原语的诸多参数中除发起方标识符外,所有其他参数都对应于PDU中的一个字段或小字段。如果原语中的参数是可选的,则在PDU中相应的字段也是可选的。因为在调用ROSE服务时由ROSE负责识别通信的对等实体,所以发起方标识符参数不包含在CMIP的PDU中。
3.5.2 CMIP协议的操作
前面介绍了CMIS的服务及CMIP的协议数据单元,那么它们之间及和应用层的其他服务之间是如何协同工作的呢?下面就通过一个M-EVENT-REPORT服务的例子,来说明如何利用CMIP协议实现CMIS服务。其他服务的实现与此类似。图3-17表示了CMIS服务用户、CMIP及下面的ROSE服务元素之间的操作关系。具体服务实现过程如下。
(1)CMIP从CMIS用户那里接收到一个M-EVENT-REPORT请求原语。原语的参数包括以下几个。
● 用以将该操作与CMISE支持的其他操作区别开来的标识符。
● 被管对象的信息。
● 说明事件发生时间的时间戳。
● 有关事件的其他信息。
(2)CMIP检查请求原语,并用相应的参数构造一个M-EVENT-REPORT应用协议数据单元。
图3-17 CMIP EVENT REPORT操作示例
(3)通过RO-INVOKE请求原语,将该应用协议数据单元发送给ROSE服务元素。ROSE则通过P-DATA原语将该数据单元发送给表示层。
(4)接收方的CMIP通过ROSE的RO-INVOKE指示原语接收应用协议数据单元。
(5)如果数据单元是可接收的,它就发出一个M-EVENT-REPORT指示原语给接收的CMIS服务用户。此时,对等的服务用户就收到了必要的信息以指导它如何报告结果。
(6)CMIS服务用户发送一个M-EVENT-REPORT响应原语给CMIP。响应原语的参数包括以下几个。
● 用以将该操作与CMISE支持的其他操作区别开来的标识符。
● 被管对象的信息。
● 被报告的事件类型。
● 说明响应发生的时间戳。
● 事件报告结果。
如果该原语是个操作失败的响应,则原语中会包括一个说明错误性质的错误参数。
(7)CMIP利用这些参数构造一个新的APDU。
(8)如果操作成功,CMIP就通过ROSE的RO-RESULT请求原语将该APDU发送给时间报告请求的发起方。
(9)发起方的CMIP通过RO-RESULT指示原语接收APDU。
(10)如果APDU是可接收的,CMIP就给发起方的CMIS用户发送一个M-EVENT-REPORT确认原语。
3.5.3 远程操作服务元素ROSE
CMIP的实现依赖于远程操作服务。ROSE和ACSE构成了管理信息交换功能的基础。ROSE主要是对请求/响应的交互通信模式进行有效管理。ROSE提供的服务可以把一个用户所要进行的远程操作和携带的参数传递给位于远地的另一个用户,并由远地的用户执行该操作,然后再利用ROSE所提供的服务把操作结果发回给远程操作的调用者。
ROSE允许有以下两种操作方式。
(1)同步方式——应用实体在收到第一个操作的回答之前,不再发出第二个同类型的操作请求。这是控制交互式、事务处理类型系统的常见方法。
(2)异步方式——应用实体不必等到第一个操作的响应送回,就可以继续请求新的远程操作。
远程操作还可以根据对响应的要求分为五类,如表3-4所示。
表3-4 ROSE的操作类型
ROSE还提供一种链接操作(linked operation),它允许两个应用实体之间进行相互父子调用操作。如图3-18所示,一个应用实体调用一个父操作在远程应用实体中执行。该父操作在执行过程中又调用了两个子操作在第一个应用实体中执行。在执行这个子操作的过程中,又调用了另一个子操作(及孙操作)在远程应用实体中执行。当然,这种调用必须在该应用实体的调用权限之内。
图3-18 ROSE提供应用实体之间的链接操作
ROSE提供了五种服务,如表3-5所示。
表3-5 ROSE的五种服务
在使用ROSE的过程中,需要遵循以下规则。
(1)CMIP总是使用ROSE的第3类联系。联系的发起者和响应者都可以发起操作。
(2)对于有确认的CMIS操作,CIMP使用ROSE的第1类或第2类操作(如表3-4所示)。
(3)对于无确认的CMIS操作,CMIP使用ROSE的第5类操作。
3.5.4 OSI网络管理的发展与CMOT
1. OSI网络管理的发展
CMIP协议是由政府和许多大公司联合资助发展的一个网络管理协议。当初由于有大量的资金支持,因此许多人认为它会成为被广泛使用的网络管理协议。但是由于实现中存在的问题,限制了CMIP的适用性。目前,它主要局限在少数最初的开发者中使用。
由于在最初设计CMIS/CMIP时,是想提供一套适用于不同类型网络设备的完整的网络管理协议簇。因此,CMIS/CMIP是建立在ISO参考模型的基础之上,通过在应用层上实现CMIP、ACSE和ROSE等协议,提供了较完整的联系操作、响应请求和事件通告等机制,为开发灵活、有效的网络管理应用奠定了基础。但是,也正是由于CMIS/CMIP追求成为适用于广泛的网络管理协议,使得它的规模过于庞大,造成现有的系统中很少能轻松地运用最终实现出来的CMIP协议。它要求对现有的系统提供较大投资进行升级,如增加大量内存和购买新的协议代理等。这是限制CMIS/CMIP推广的一个主要原因。
相比而言,目前在Internet的网络管理中被广泛使用的另一种网络管理协议——简单网络管理协议——由于是按照简单和易于实现的原则设计的,因此它可以在多数网络设备中方便快速地实现。
2. CMOT
为了解决CMIS/CIMP在实现上过于复杂的问题,一种使用TCP进行传输的协议被提了出来,即CMOT。CMOT是在TCP/IP协议簇上实现CMIS服务的。
与CMIS一样,CMOT仍然依赖于CMISE、ACSE和ROSE协议。不同的是,CMOT并不依赖于ISO表示层协议的实现,而是使用了另一个协议——轻量级表示层协议(Lightweight Presentation Protocol,LPP)。该协议提供了与UDP和TCP两个目前最普遍的传输协议的接口。图3-19表示了CMOT协议层次结构。
图3-19 CMOT的层次结构
由于TCP/IP协议簇没有定义OSI的服务,因此,LPP的作用就是在OSI的应用服务元素和TCP/UDP模块之间建立一种映射。如图3-19所示,LPP必须将ACSE和ROSE映射到传输层。
虽然已经有了CMOT的定义,但由于种种原因,CMOT并未能得到很好的发展和应用。网络管理生产商们也不打算在这上面花费太多的人力、物力和时间;相反,许多生产商都在SNMP的开发上进行了大量投资。这也是SNMP在网络管理协议中仍然占据主导地位的一个主要原因。