SNMPv2的管理模型
1.介绍
一个网络管理系统包含:几个(可能是许多的)节点,每个都有一个名为代理的处理实体。代理有到管理工具的通路;至少一个管理站点和一个管理协议,该协议用于在代理和管理站点间传递管理信息。协议的实施是在一个定义了鉴定和认证策略的管理体系下进行的。
网络管理站点上运行监视和控制网络元素的管理应用程序。网络元素是诸如主 机,路由器,终端服务器等的设备,通过对它们的管理信息的访问来监视和控制网络元素。
本文档--<<SNMPv2的管理模型>>--的目的就是定义:在不同的配置和环境下,管理体系是怎样被用来实现实际的网络管理的。
这里描述的模型使后面的要求成为必要:交换SNMPv2消息的对等实体使用唯一 的表示。所以,这里表现出与先前的SNMP[1]的基于社区的管理模型的不同。通过对每个SNMPv2消息来源和预期的接收者的明白无误的标识,这个新的策略改善了过去的社区方案,它不仅支持一个更加方便的访问控制模型,而且允许在将来对非对称公匙安全协议的有效运用。
1.1.术语的注解
为了便于说明,原先的Internet标准网络管理体系(在RFC
2.模型的元素
2.1.SNMPv2参与者
SNMPv2参与者是一个概念性的,虚拟的执行环境,它的操作被限制在(出于对安全性的考虑)一个特定SNMPv2实体的所有可能的操作的子集中(参考2.2),该子集被管理性地定义。不论一个SNMPv2实体什么时候处理一个SNMPv2消息,它都是以一个SNMPv2参与者的身份进行操作,因而它的操作就被限制在为这个参与者定义的操作集合中。对这个参与者,其特定的可能的操作可能与其他参与者的操作 集合重叠或者不相关,它也可能是那个SNMPv2实体的所有可能操作的一个合适或者不合适的子集。从协议体系上讲,每个SNMPv2参与者包含:
? 一个唯一的,与众不同的参与者标识。
? 一个逻辑网络位置,参与者执行时所在的逻辑网络位置称为一个传送协议的域, 并且传送寻址信息。
? 一个专门的鉴定协议和相关的参数,所有那个参与者产生的协议消息通过他们 被鉴定为初始的和完整的。
? 一个专门的私有协议和相关参数,用来保护所有参与者接收的协议消息,防止 泄漏。
从概念上讲,每个SNMPv2参与者可以用一个ASN.1值表示,符合下面的语法:
SnmpParty::=SEQUENCE{
partyIdentity
OBJECTIDENTIFIER,
partyTDomain
OBJECTIDENTIFIER,
partyTAddress
OCTETSTRING,
partyMaxMessageSize
INTEGER,
partyAuthProtocol
OBJECTIDENTIFIER,
partyAuthClock
INTEGER,
partyAuthPrivate
OCTETSTRING,
partyAuthPublic
OCTETSTRING,
partyAuthLifetime
INTEGER,
partyPrivProtocol
OBJECTIDENTIFIER,
partyPrivPrivate
OCTETSTRING,
partyPrivPublic
OCTETSTRING
}
对于每个代表一个SnmpParty参与者的SnmpParty值,下列叙述是成立的:
o它的partyIdentity组件是参与者的标识
o它的partyTDomain组件称作传送域,并指明参与者用来接收网络管理通信量的那种传送设备。一个传送域的例子是snmpUDPDomain(在UDP上的SNMPv2,使用SNMPv2参与者).
o它的partyTAddress组件称作传送寻址信息,代表一个参与者用来接收网络管理通信量的传送设备的地址。
o它的partyMaxMessageSize组件称作最大消息的尺码,代表这个参与者将要接收的最大SNMPv2消息的八位组的长度。
o它的partyAuthProtocol组件称作鉴定协议,指明了一个协议和鉴定所有该参与者生成的消息是初始和完整的机制。在这种上下文下,值noAuth表明该参与者产生的消息未被鉴定为初始和完整。
o它的partyAuthClock组件称作鉴定时钟,代表与该参与者关联的当前时间。本组件的重要性是在鉴定协议中体现的。
o它的partyAuthPrivate组件称作私有鉴定密匙,代表支持鉴定协议所需的任何保密的值。本组件的重要性是在鉴定协议中体现的。
o它的partyAuthPublic组件称作公有鉴定密匙,代表任何支持鉴定协议所需的公共值。本组件的重要性是在鉴定协议中体现的。
o它的partyAuthLifetime组件称作生命周期,代表该参与者生成的协议消息的可以接受的传送延时的管理性的上界。本组件的重要性是在鉴定协议中体现的。
o它的partyPrivProtocol组件称作私有协议,指明了一个协议和一个防止该参与者接收到的所有协议消息泄漏的机制。在这种情况下,值noPriv表明该参与者接收到的消息未被保护以防止泄漏。
o它的partyPrivPrivate组件称作私有密匙,代表支持私有协议所需的保密值。本组件的重要性是在私有协议中体现的。
o它的partyPrivPublic组件称作公有密匙,代表支持私有协议所需的任何公共值。本组件的重要性是在私有协议中体现的。
对于所有的被某个SNMPv2实体实现的SNMPv2参与者,如果它的鉴定协议是 noAuth而且它的私有协议是noPriv,那么那个实体称作不安全的。
2.2.SNMPv2实体
一个SNMPv2实体是一个实际的处理者,它通过用[2]中指明的方式产生消息并且/或者对SNMPv2协议消息进行响应来完成网络管理操作。当一个SNMPv2实体以一个特定的SNMPv2参与者的身份进行操作时,这个实体的操作必须限制在管理性地定义在那个参与者上的所有可能的操作的子集中。
通过定义,一个SNMPv2实体的操作在一个特定SNMPv2参与者生成的任何单个协 议消息的处理和一个潜在的不同的SNMPv2参与者生成的任何其他协议消息的处理之间不需要同时发生。相应地,一个支持超过一个参与者的SNMPv2实体的实现不需要是多线程的。当然,也存在着实现时选用多线程的情况。
从协议体系上说,每个SNMPv2实体维护一个保存了它所知的所有SNMPv2参与者 的逻辑数据库,这些参与者的操作有的是逻辑地实现的,有的是通过代理与远地实体地交互来实现的,有的是远地实体实现的。另外,每个SNMPv2实体维护一个存有该实体所知的所有被管理对象资源(参照2.8)。最后,每个SNMPv2实体维护一个存有定义了针对已知的SNMPv2参与者的访问权限的访问控制策略信息的逻辑数据库。
2.3.SNMPv2管理站点
一个SNMPv2管理站点是一个SNMPv2参与者在通过生成相应的SNMPv2协议消息来 初始化SNMPv2管理操作时,或者在它接收和处理陷阱通告时假定的运作性的角色。有时,术语SNMPv2管理站点也指专注于操作角色的SNMPv2的部分实现(例如图形工作站)。这种SNMPv2的部分实现可能用来提供方便或管理设备的本地革新,但是它们可能对代表远地协议用户的SNMPv2管理操作提供很少甚至没有支持。
2.4.SNMPv2代理
一个SNMPv2代理是一个SNMPv2参与者在为响应收到的诸如一个SNMPv2管理站点 (参照2.3)生成的SNMPv2协议消息而进行SNMPv2管理操作时假定的操作性角色。有时,术语SNMPv2代理也指专注于这种操作角色的SNMPv2(例如在嵌入式系统中)的部分实现。这种部分实现对代表管理设备的远地用户的SNMPv2管理操作的实现提供了支持,但是它可能对这些设备的本地革新提供很少甚至没有支持。
2.5.视图子树
一个视图子树是所有名字有公共的ASN.1实体标识符前缀的管理信息库对象的 集合。一个视图子树由OBJECTIDENTIFIER的值来标识,该值是该子树中所有(潜在)的类似的管理信息库对象实例中最大的OBJECTIDENTIFIER前缀。
当标识一个视图子树的OBJECTIDENTIFIER前缀比根据SMI[3]定义的OBJECT IDENTIFIER长时,用这个视图子树来控制访问就会在对象实例层有梯度。这种梯度在超越作为代理角色的SNMPv2实体的范围之上来考虑。所以,一个作为代理角色的SNMPv2实体的实现不需要支持在标识一个特定叶子对象类型时有多于必要数目的子标识符的视图子树的值。然而,在决定哪一个作为管理者角色的SNMPv2实体应该接收陷阱通知时,也用到了访问控制信息。(
2.6.MIB视图
一个MIB视图是根据SMI[3](那就是,所有MIB对象的所有实例的通用集合)定义的所有对象类型的所有实例的集合的子集:
o一个MIB视图的每个元素用一个ASN.1OBJECTIDENTIFIER值唯一地标识。所以,一个特定对象类型的完全相同命名的实例(例如在不同的代理中)必须包含在不同的MIB视图中。也就是,在一个特定的MIB视图中,一个特定的对象实例名字解析为最多一个对象实例。
o每个MIB视图被定义为视图子树的一个集合。
2.7.代理关系
一个代理关系在下面情况下存在:为了处理一个接收到的管理请求,一个SNMPv2 实体必须和其他逻辑上远地的实体通讯。一个用代理关系来处理管理请求的SNMPv2实体叫做一个SNMPv2代理机构。
当一个逻辑上远地的参与者和一个SNMPv2实体间的通讯是通过SNMPv2时(通过 任何传输协议),那个代理参与者称作一个SNMPv2本地代理关系。SNMPv2本地代理关系的部署是一种有利的手段,用它可以分期偿还或轮换构建一个大的管理系统时的管理处理或带宽的代价。
当一个逻辑上远地的参与者和一个SNMPv2实体间的通讯不是通过SNMPv2时(通 过任何传输协议),那个代理参与者称作一个SNMPv2远地代理关系。远地代理关系的部署是一种使Internet上的从某种意义上讲不可管理的设备或部门可以通过SNMPv2来管理。
定义一个通常用于一个SNMPv2代理关系的SNMPv2实体的行为的透明原则如下:
一个SNMPv2实体处理从另一个SNMPv2实体接收而来的SNMPv2协议消息的方式对 于后者是完全透明的。这种透明原则是从历史上分离结构体系与实现的SNMP原则中继承而来。这种 二分法给Internet标准网络管理体系的信息和分配模型都带来了好处,而且它是可能建造的大型管理系统的建筑性基石。与这种原则一致,尽管在某些环境下SNMPv2代理机构的实现可能与传输层的网桥的实现相似,这种特定的实现战略(或其他任何实现战略)不值得在SNMPv2管理体系或代理管理的标准机制中得到认可。很明显,在透明原则里,在任何两个SNMPv2对等体之间需要保持SNMPv2的管理操作的语义。特别地,如果一个操作集合的范围延伸到去管理位于多个网络位置的信息,它的“似乎是同步”的语义将极难保证。正因为如此,允许管理位于多个位置的信息的操作集合的代理配置是不提倡的,尽管这种操作并没有被协议体系明确的禁止,以防在很稀少的情况下,可能需要以一种相容的方法来支持它们。 在这种透明原则下,还很明显的是:与一个代理机构的交互时,不提供给一个管理站点实现它的请求的代理机制的特点和过程的信息。也就是,除了在底层传输地址中的任何明显的区别外,应该使管理站点看起来似乎是在通过SNMPv2与被代理的设备直接通讯。所以,一个在代理机构和它被代理设备间的通讯超时信息应该表现为在管理站点与代理机构间的超时。同样的,一个来自于被代理设备的出错响应应该尽可能的以代理机构和管理站点间的对应出错信息表示。
2.8.SNMPv2上下文
一个SNMPv2上下文是指一个可被一个SNMPv2实体访问的被管理对象资源的集合。被一个上下文标识的对象资源可能是本地的或远地的。
一个涉及本地对象资源的SNMPv2上下文被标识为一个MIB视图。在这种情况下,一个SNMPv2实体用本地机制去访问被SNMPv2上下文标识的管理信息。
一个涉及远地对象资源的远地SNMPv2上下文被标识为一个代理关系。在这种情 况下,一个SNMPv2实体作为一个代理机构去访问被SNMPv2上下文标识的管理信息。
2.9.SNMPv2管理通讯
SNMPv2管理通讯是一个从一个特定的SNMPv2参与者到第二个特定的SNMPv2参与者的,关于包含在相应的SNMPv2实体中可以被访问的SNMPv2上下文中的管理信息的通讯。特别地,一个SNMPv2管理通讯可以是:
o一个发起通讯的参与者的关于被寻址的参与者可以访问的信息的
查询(例如getRequest,getNextRequest,或者getBulkRequest)。
o一个被寻址参与者的,关于发起方可访问的信息的,指示性的断言。(例如Response,InformRequest,或者SNMPv2-Trap)
o一个发起方作出的,发给被寻址的参与者的,关于被寻址的参与者可以访问的信息的命令式的断言(例如setRequest),或者
o一个发向被寻址的参与者的确认,它是关于发起方接收到的信息的。(例如一个确认InformRequest的响应)一个管理通讯用一个ASN.1值表示,符合下面的语法: SnmpMgmtCom::=[2]IMPLICITSEQUENCE{
dstParty OBJECTIDENTIFIER,
srcParty OBJECTIDENTIFIER,
context OBJECTIDENTIFIER,
pdu
PDUs
}
对于每个代表一个SNMPv2管理通讯的SnmpMgmtCom值,下列叙述成立:
o它的dstParty组件称作目的点,标识了该通讯发往的SNMPv2参与者。
o它的srcParty组件称作源点,标识了发起通讯的SNMPv2参与者。
o它的context组件标识SNMPv2上下文,它含有通讯涉及的管理信息
o它的pdu组件有在[2]中赋于的形式和含义。
2.10.SNMPv2鉴定过的管理通讯
SNMPv2鉴定过的管理通讯是这样的SNMPv2管理通讯:它的发起方SNMPv2参与者 被可信地鉴定过,并且该通讯的传输的完整性受到保护。一个SNMPv2鉴定过的管理通讯用一个ASN.1值表示,符合下面的语法:
SnmpAuthMsg::=[1]IMPLICITSEQUENCE{
authInfo ANY,--由鉴定协议定义
authData
SnmpMgmtCom
}
对于每个代表一个SNMPv2鉴定过的管理通讯的SnmpAuthMsg值,下列叙述成立:
o它的authInfo组件称作鉴定信息,包含支持产生本消息的SNMPv2参与者使用的鉴定协议的信息。鉴定信息的详细含义由使用的鉴定协议指定;除了鉴定协议用它来判断该通讯是否被鉴定过以外,它对通讯的应用语义没有影响。
o它的authData组件称作鉴定数据,代表一个SNMPv2管理通讯。
2.11.SNMPv2私有管理通讯
SNMPv2私有管理通讯是一个SNMPv2鉴定过的管理通讯,它受到可能的保护,防止泄漏。一个私有管理通讯用一个ASN.1值表示,符合下面的语法:
SnmpPrivMsg::=[1]IMPLICITSEQUENCE{
privDst OBJECTIDENTIFIER,
privData [1]IMPLICITOCTETSTRING
}
对每个代表一个SNMPv2私有管理通讯的SnmpPrivMsg值,下面的叙述成立:
o它的privDst组件称作私有目的地,表明该通讯发向的SNMPv2参与者。
o它的privData组件称作私有数据,包含一个SNMPv2鉴定过的管理通讯的(可能已加密)数据序列(根据[5]的约定)。
2.12.SNMPv2管理通讯类
一个SNMPv2管理通讯类对应于一个在[2]中定义的特定的SNMPv2PDU类型。SNMPv2管理通讯类用ASN.1INTEGER值表示,需要根据识别PDU的类型而定(表1)
Get1
GetNext2
Response4
Set8
--unused16
GetBulk32
Inform64