Aller au contenu principal

4. Définitions

SNMP-VIEW-BASED-ACM-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-IDENTITY, OBJECT-TYPE,
snmpModules FROM SNMPv2-SMI
TestAndIncr,
RowStatus, StorageType FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP FROM SNMPv2-CONF
SnmpAdminString, SnmpSecurityLevel,
SnmpSecurityModel FROM SNMP-FRAMEWORK-MIB;

snmpVacmMIB MODULE-IDENTITY
LAST-UPDATED "200210160000Z" -- 2002年10月16日, 午夜
ORGANIZATION "SNMPv3 Working Group"
CONTACT-INFO "WG-email: [email protected]
Subscribe: [email protected]
In msg body: subscribe snmpv3

Chair: Russ Mundy
Network Associates Laboratories
postal: 15204 Omega Drive, Suite 300
Rockville, MD 20850-4601
USA
email: [email protected]
phone: +1 301-947-7107

Co-Chair: David Harrington
Enterasys Networks
Postal: 35 Industrial Way
P. O. Box 5004
Rochester, New Hampshire 03866-5005
USA
EMail: [email protected]
Phone: +1 603-337-2614

Co-editor: Bert Wijnen
Lucent Technologies
postal: Schagen 33
3461 GL Linschoten
Netherlands
email: [email protected]
phone: +31-348-480-685

Co-editor: Randy Presuhn
BMC Software, Inc.
postal: 2141 North First Street
San Jose, CA 95131
USA
email: [email protected]
phone: +1 408-546-1006

Co-editor: Keith McCloghrie
Cisco Systems, Inc.
postal: 170 West Tasman Drive
San Jose, CA 95134-1706
USA
email: [email protected]
phone: +1-408-526-5260"
DESCRIPTION "用于 SNMP 基于视图的访问控制模型的管理信息定义。

Copyright (C) The Internet Society (2002). 此
MIB 模块版本是 RFC 3415 的一部分;
完整的法律声明请参阅 RFC 本身。
"
REVISION "200210160000Z" -- 2002年10月16日, 午夜
DESCRIPTION "澄清说明,作为 RFC 3415 发布。"
REVISION "199901200000Z" -- 1999年1月20日, 午夜
DESCRIPTION "澄清说明,作为 RFC 2575 发布。"
REVISION "199711200000Z" -- 1997年11月20日, 午夜
DESCRIPTION "初始版本,作为 RFC 2275 发布。"
::= { snmpModules 16 }

-- 管理分配 ************************************

vacmMIBObjects OBJECT IDENTIFIER ::= { snmpVacmMIB 1 }
vacmMIBConformance OBJECT IDENTIFIER ::= { snmpVacmMIB 2 }

-- 关于本地上下文的信息 ******************************

vacmContextTable OBJECT-TYPE
SYNTAX SEQUENCE OF VacmContextEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "本地可用上下文的表。

此(概念)表列出了本地可用的上下文。

不支持多个上下文的简单实现可以选择
仅实现对默认上下文的支持。
"
::= { vacmMIBObjects 1 }

vacmContextEntry OBJECT-TYPE
SYNTAX VacmContextEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "关于特定上下文的信息。"
INDEX {
vacmContextName
}
::= { vacmContextTable 1 }

VacmContextEntry ::= SEQUENCE
{
vacmContextName SnmpAdminString
}

vacmContextName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS read-only
STATUS current
DESCRIPTION "一个人类可读的名称,标识特定 SNMP 实体
的特定上下文。

空的 contextName(零长度)代表默认上下文。
"
::= { vacmContextEntry 1 }

-- 关于安全到组映射的信息 *******************

vacmSecurityToGroupTable OBJECT-TYPE
SYNTAX SEQUENCE OF VacmSecurityToGroupEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "此表将 securityModel 和 securityName 的组合
映射到 groupName,用于为一组主体定义
访问控制策略。
"
::= { vacmMIBObjects 2 }

vacmSecurityToGroupEntry OBJECT-TYPE
SYNTAX VacmSecurityToGroupEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "此表中的条目将 securityModel 和 securityName
的组合映射到 groupName。
"
INDEX {
vacmSecurityModel,
vacmSecurityName
}
::= { vacmSecurityToGroupTable 1 }

VacmSecurityToGroupEntry ::= SEQUENCE
{
vacmSecurityModel SnmpSecurityModel,
vacmSecurityName SnmpAdminString,
vacmGroupName SnmpAdminString,
vacmSecurityToGroupStorageType StorageType,
vacmSecurityToGroupStatus RowStatus
}

vacmSecurityModel OBJECT-TYPE
SYNTAX SnmpSecurityModel(1..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "安全模型,通过该模型提供此条目引用的
vacmSecurityName。

注意,此对象不能取 'any' (0) 值。
"
::= { vacmSecurityToGroupEntry 1 }

vacmSecurityName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(1..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "主体的 securityName,以独立于安全模型的
格式表示,此条目将其映射到 groupName。
"
::= { vacmSecurityToGroupEntry 2 }

vacmGroupName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(1..32))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此条目(例如,securityModel 和 securityName
的组合)所属组的名称。

此 groupName 用作 vacmAccessTable 的索引,
以选择访问控制策略。

但是,此表中的值并不意味着具有该值的实例
存在于表 vacmAccesTable 中。
"
::= { vacmSecurityToGroupEntry 3 }

vacmSecurityToGroupStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此概念行的存储类型。
值为 'permanent' 的概念行不需要允许对
行中的任何列对象进行写访问。
"
DEFVAL { nonVolatile }
::= { vacmSecurityToGroupEntry 4 }

vacmSecurityToGroupStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此概念行的状态。

在所有相应列的实例被适当配置之前,
vacmSecurityToGroupStatus 列的相应实例的值
为 'notReady'。

特别是,新创建的行在为 vacmGroupName 设置
值之前无法变为活动状态。

RowStatus TC [RFC2579] 要求此 DESCRIPTION 子句
说明在哪些情况下可以修改此行中的其他对象:

此对象的值对此概念行中的其他对象是否可以
修改没有影响。
"
::= { vacmSecurityToGroupEntry 5 }

-- 关于访问权限的信息 *******************************

vacmAccessTable OBJECT-TYPE
SYNTAX SEQUENCE OF VacmAccessEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "组的访问权限表。

每个条目由 groupName、contextPrefix、
securityModel 和 securityLevel 索引。要确定
是否允许访问,需要从此表中选择一个条目,
并且必须使用该条目中的适当 viewName 进行
访问控制检查。

要选择适当的条目,请遵循以下步骤:

1) 可能匹配的集合由以下条目集的交集形成:

具有相同 vacmGroupName 的条目集
这两个集合的并集:
- 具有相同 vacmAccessContextPrefix 的集合
- vacmAccessContextMatch 值为 'prefix'
且匹配 vacmAccessContextPrefix 的条目集
与这两个集合的并集的交集:
- 具有相同 vacmAccessSecurityModel 的条目集
- vacmAccessSecurityModel 值为 'any' 的条目集
与 vacmAccessSecurityLevel 值小于或等于
来自访问控制模块的 securityLevel 的条目集的交集。

2) 如果此集合只有一个成员,则完成
否则,需要决定如何权衡 ContextPrefixes、
SecurityModels 和 SecurityLevels 之间的偏好,
如下所示:
a) 如果 securityModel 与来自访问控制模块的
securityModel 匹配的条目子集不为空,
则丢弃其余条目。
b) 如果 vacmAccessContextPrefix 与 contextName
匹配的条目子集不为空,
则丢弃其余条目
c) 丢弃所有 ContextPrefixes 短于集合中剩余的
最长者的条目
d) 选择具有最高 securityLevel 的条目

请注意,对于 securityLevel noAuthNoPriv,
所有组实际上是等效的,因为假设 securityName
已经过身份验证的假设不成立。
"
::= { vacmMIBObjects 4 }

vacmAccessEntry OBJECT-TYPE
SYNTAX VacmAccessEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "在本地配置数据存储(LCD)中配置的访问权限,
授权组对特定 SNMP 上下文中的对象进行
请求的访问。

此表中的条目可以使用特殊的 securityModel 值
'any',它匹配任何 securityModel。
"
INDEX { vacmGroupName,
vacmAccessContextPrefix,
vacmAccessSecurityModel,
vacmAccessSecurityLevel
}
::= { vacmAccessTable 1 }

VacmAccessEntry ::= SEQUENCE
{
vacmAccessContextPrefix SnmpAdminString,
vacmAccessSecurityModel SnmpSecurityModel,
vacmAccessSecurityLevel SnmpSecurityLevel,
vacmAccessContextMatch INTEGER,
vacmAccessReadViewName SnmpAdminString,
vacmAccessWriteViewName SnmpAdminString,
vacmAccessNotifyViewName SnmpAdminString,
vacmAccessStorageType StorageType,
vacmAccessStatus RowStatus
}

vacmAccessContextPrefix OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "为了获得此概念行允许的访问权限,
contextName 必须完全匹配(如果
vacmAccessContextMatch 的值为 'exact')
或部分匹配(如果 vacmAccessContextMatch
的值为 'prefix')此对象实例的值。
"
::= { vacmAccessEntry 1 }

vacmAccessSecurityModel OBJECT-TYPE
SYNTAX SnmpSecurityModel
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "为了获得此概念行允许的访问权限,
必须使用此 securityModel。
"
::= { vacmAccessEntry 2 }

vacmAccessSecurityLevel OBJECT-TYPE
SYNTAX SnmpSecurityLevel
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "为了获得此概念行允许的访问权限,
所需的最低安全级别。noAuthNoPriv 的
securityLevel 低于 authNoPriv,
后者又低于 authPriv。

如果多个条目除了此 vacmAccessSecurityLevel
索引之外都相同,则选择 vacmAccessSecurityLevel
值最高的条目。
"
::= { vacmAccessEntry 3 }

vacmAccessContextMatch OBJECT-TYPE
SYNTAX INTEGER { exact (1), -- 前缀和 contextName 的精确匹配
prefix (2) -- 仅匹配前缀
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION "如果此对象的值为 exact(1),则选择所有
contextName 与 vacmAccessContextPrefix
完全匹配的行。

如果此对象的值为 prefix(2),则选择所有
起始八位字节与 vacmAccessContextPrefix
完全匹配的 contextName 的行。
这允许一种简单的通配符形式。
"
DEFVAL { exact }
::= { vacmAccessEntry 4 }

vacmAccessReadViewName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此对象实例的值标识此概念行授权读访问
的 SNMP 上下文的 MIB 视图。

标识的 MIB 视图是 vacmViewTreeFamilyViewName
的值与此对象实例的值相同的视图;
如果值为空字符串或不存在具有此
vacmViewTreeFamilyViewName 值的活动 MIB 视图,
则不授予访问权限。
"
DEFVAL { ''H } -- 空字符串
::= { vacmAccessEntry 5 }

vacmAccessWriteViewName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此对象实例的值标识此概念行授权写访问
的 SNMP 上下文的 MIB 视图。

标识的 MIB 视图是 vacmViewTreeFamilyViewName
的值与此对象实例的值相同的视图;
如果值为空字符串或不存在具有此
vacmViewTreeFamilyViewName 值的活动 MIB 视图,
则不授予访问权限。
"
DEFVAL { ''H } -- 空字符串
::= { vacmAccessEntry 6 }

vacmAccessNotifyViewName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(0..32))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此对象实例的值标识此概念行授权通知访问
的 SNMP 上下文的 MIB 视图。

标识的 MIB 视图是 vacmViewTreeFamilyViewName
的值与此对象实例的值相同的视图;
如果值为空字符串或不存在具有此
vacmViewTreeFamilyViewName 值的活动 MIB 视图,
则不授予访问权限。
"
DEFVAL { ''H } -- 空字符串
::= { vacmAccessEntry 7 }

vacmAccessStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此概念行的存储类型。

值为 'permanent' 的概念行不需要允许对
行中的任何列对象进行写访问。
"
DEFVAL { nonVolatile }
::= { vacmAccessEntry 8 }

vacmAccessStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此概念行的状态。

RowStatus TC [RFC2579] 要求此 DESCRIPTION 子句
说明在哪些情况下可以修改此行中的其他对象:

此对象的值对此概念行中的其他对象是否可以
修改没有影响。
"
::= { vacmAccessEntry 9 }

-- 关于 MIB 视图的信息 ************************************

-- 支持实例级粒度是可选的。
--
-- 在某些实现中,实例级访问控制粒度可能会带来高性能成本。
-- 管理器应避免不必要地请求此类配置。

vacmMIBViews OBJECT IDENTIFIER ::= { vacmMIBObjects 5 }

vacmViewSpinLock OBJECT-TYPE
SYNTAX TestAndIncr
MAX-ACCESS read-write
STATUS current
DESCRIPTION "一个咨询锁,用于允许多个协作的命令生成器
应用程序协调它们对 vacmViewTreeFamilyTable
中更改秘密的设施的使用。
"
::= { vacmMIBViews 1 }

vacmViewTreeFamilyTable OBJECT-TYPE
SYNTAX SEQUENCE OF VacmViewTreeFamilyEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "本地保存的关于 MIB 视图中子树家族的信息。

每个 MIB 视图由两组视图子树定义:
- 包含的视图子树,以及
- 排除的视图子树。
每个这样的视图子树,包括和排除的,都在此表中定义。

要确定特定对象实例是否在特定 MIB 视图中,
将对象实例的 OBJECT IDENTIFIER 与此表中
MIB 视图的每个活动条目进行比较。如果没有匹配,
则对象实例不在 MIB 视图中。如果一个或多个匹配,
则根据 vacmViewTreeFamilySubtree 值具有最多
子标识符的条目中的 vacmViewTreeFamilyType 值,
对象实例包含在 MIB 视图中或从中排除。
如果多个条目匹配并且具有相同数量的子标识符,
则 vacmViewTreeFamilyType 的字典序最大实例
确定包含或排除。

对象实例的 OBJECT IDENTIFIER X 与此表中的
活动条目匹配,当 X 中的子标识符数量至少与
条目的 vacmViewTreeFamilySubtree 值中的数量
一样多,并且 vacmViewTreeFamilySubtree 值中的
每个子标识符与 X 中的相应子标识符匹配时。
如果条目的 vacmViewTreeFamilyMask 值的相应位
为零('通配符' 值),或者它们相等,
则两个子标识符匹配。

零长度的 '通配符' 值匹配任何 OBJECT IDENTIFIER。
"
::= { vacmMIBViews 2 }

vacmViewTreeFamilyEntry OBJECT-TYPE
SYNTAX VacmViewTreeFamilyEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "关于包含在特定 SNMP 上下文的 MIB 视图中或
从中排除的特定视图子树家族的信息。

实现不得限制给定 MIB 视图的视图子树家族数量,
除非受 vacmViewTreeFamilyTable 中条目总数的
资源约束所限制。

如果此表中不存在给定 MIB 视图(viewName)的
概念行,则该视图可以被视为由视图子树的空集组成。
"
INDEX { vacmViewTreeFamilyViewName,
vacmViewTreeFamilySubtree
}
::= { vacmViewTreeFamilyTable 1 }

VacmViewTreeFamilyEntry ::= SEQUENCE
{
vacmViewTreeFamilyViewName SnmpAdminString,
vacmViewTreeFamilySubtree OBJECT IDENTIFIER,
vacmViewTreeFamilyMask OCTET STRING,
vacmViewTreeFamilyType INTEGER,
vacmViewTreeFamilyStorageType StorageType,
vacmViewTreeFamilyStatus RowStatus
}

vacmViewTreeFamilyViewName OBJECT-TYPE
SYNTAX SnmpAdminString (SIZE(1..32))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "视图子树家族的人类可读名称。
"
::= { vacmViewTreeFamilyEntry 1 }

vacmViewTreeFamilySubtree OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION "MIB 子树,当与 vacmViewTreeFamilyMask 的
相应实例组合时,定义视图子树家族。
"
::= { vacmViewTreeFamilyEntry 2 }

vacmViewTreeFamilyMask OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..16))
MAX-ACCESS read-create
STATUS current
DESCRIPTION "位掩码,与 vacmViewTreeFamilySubtree 的相应
实例结合使用,定义视图子树家族。

此位掩码的每一位对应于 vacmViewTreeFamilySubtree
的一个子标识符,此八位字节字符串值的第 i 个
八位字节的最高有效位(如有必要扩展,见下文)
对应于第 (8*i - 7) 个子标识符,
此八位字符串的第 i 个八位字节的最低有效位
对应于第 (8*i) 个子标识符,其中 i 在 1 到 16 的范围内。

此位掩码的每一位指定在确定 OBJECT IDENTIFIER
是否在此视图子树家族中时,相应的子标识符是否
必须匹配;'1' 表示必须精确匹配;'0' 表示
'通配符',即任何子标识符值都匹配。

因此,如果对于 vacmViewTreeFamilySubtree 值的
每个子标识符,满足以下任一条件,则对象实例的
OBJECT IDENTIFIER X 包含在视图子树家族中:

vacmViewTreeFamilyMask 的第 i 位为 0,或

X 的第 i 个子标识符等于
vacmViewTreeFamilySubtree 值的第 i 个子标识符。

如果此位掩码的值为 M 位长,并且相应的
vacmViewTreeFamilySubtree 实例中有超过 M 个
子标识符,则位掩码用 1 扩展到所需长度。

请注意,当此对象的值为零长度字符串时,
此扩展规则导致使用全 1 的掩码(即,没有
'通配符'),并且视图子树家族是由相应的
vacmViewTreeFamilySubtree 实例唯一标识的一个
视图子树。
"
DEFVAL { ''H }
::= { vacmViewTreeFamilyEntry 3 }

vacmViewTreeFamilyType OBJECT-TYPE
SYNTAX INTEGER {
included(1),
excluded(2)
}
MAX-ACCESS read-create
STATUS current
DESCRIPTION "指示 vacmViewTreeFamilySubtree 和
vacmViewTreeFamilyMask 的相应实例是否定义了
包含在 MIB 视图中或从 MIB 视图中排除的
视图子树家族。
"
DEFVAL { included }
::= { vacmViewTreeFamilyEntry 4 }

vacmViewTreeFamilyStorageType OBJECT-TYPE
SYNTAX StorageType
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此概念行的存储类型。

值为 'permanent' 的概念行不需要允许对
行中的任何列对象进行写访问。
"
DEFVAL { nonVolatile }
::= { vacmViewTreeFamilyEntry 5 }

vacmViewTreeFamilyStatus OBJECT-TYPE
SYNTAX RowStatus
MAX-ACCESS read-create
STATUS current
DESCRIPTION "此概念行的状态。

RowStatus TC [RFC2579] 要求此 DESCRIPTION 子句
说明在哪些情况下可以修改此行中的其他对象:

此对象的值对此概念行中的其他对象是否可以
修改没有影响。
"
::= { vacmViewTreeFamilyEntry 6 }

-- 一致性信息 ****************************************

vacmMIBCompliances
OBJECT IDENTIFIER ::= {vacmMIBConformance 1}
vacmMIBGroups
OBJECT IDENTIFIER ::= {vacmMIBConformance 2}

-- 一致性声明 ******************************************

vacmMIBCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION "实现 SNMP 基于视图的访问控制模型配置 MIB 的
SNMP 引擎的一致性声明。
"
MODULE -- 此模块
MANDATORY-GROUPS { vacmBasicGroup }

OBJECT vacmAccessContextMatch
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmAccessReadViewName
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmAccessWriteViewName
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmAccessNotifyViewName
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmAccessStorageType
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmAccessStatus
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmViewTreeFamilyMask
WRITE-SYNTAX OCTET STRING (SIZE (0..0))
DESCRIPTION "不需要支持实例级粒度。"

OBJECT vacmViewTreeFamilyType
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmViewTreeFamilyStorageType
MIN-ACCESS read-only
DESCRIPTION "不需要写访问。"

OBJECT vacmViewTreeFamilyStatus
MIN-ACCESS read-only
DESCRIPTION "不需要对 vacmViewTreeFamilyTable
的创建/删除/修改访问。
"
::= { vacmMIBCompliances 1 }

-- 一致性单元 *******************************************

vacmBasicGroup OBJECT-GROUP
OBJECTS {
vacmContextName,
vacmGroupName,
vacmSecurityToGroupStorageType,
vacmSecurityToGroupStatus,
vacmAccessContextMatch,
vacmAccessReadViewName,
vacmAccessWriteViewName,
vacmAccessNotifyViewName,
vacmAccessStorageType,
vacmAccessStatus,
vacmViewSpinLock,
vacmViewTreeFamilyMask,
vacmViewTreeFamilyType,
vacmViewTreeFamilyStorageType,
vacmViewTreeFamilyStatus
}
STATUS current
DESCRIPTION "一组对象,用于实现 SNMP 基于视图的访问控制模型的
SNMP 引擎的远程配置。
"
::= { vacmMIBGroups 1 }

END