首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谁选择了不可访问的MIB表索引值?SNMP代理是否强制值的唯一性?

谁选择了不可访问的MIB表索引值?SNMP代理是否强制值的唯一性?
EN

Stack Overflow用户
提问于 2011-11-08 10:38:48
回答 1查看 3.4K关注 0票数 3

我正在实现一个SNMP代理,并且不确定我对如何选择"t11ZsZoneMemberIndex“对象的值(见下文)以及谁强制实现值唯一性的理解是否正确。

我的理解是,SNMP管理器会选择"t11ZsZoneMemberIndex“对象的值,并在VarBind的"name”字段中进行设置操作。当SNMP代理接收到SET时,它将强制"t11ZsZoneMemberIndex“值的唯一性。这是正确的吗?若否,原因为何?

MIB表是带有RowStatus对象的SMIv2。我知道其他索引的值是从哪里派生的。

代码语言:javascript
复制
t11ZsZoneMemberTable OBJECT-TYPE

    SYNTAX SEQUENCE OF T11ZsZoneMemberEntry
    MAX-ACCESS not-accessible
::= { t11ZsConfiguration 6 }

t11ZsZoneMemberEntry OBJECT-TYPE

    SYNTAX T11ZsZoneMemberEntry
    MAX-ACCESS not-accessible
INDEX { fcmInstanceIndex, fcmSwitchIndex,
    t11ZsServerFabricIndex, t11ZsZoneMemberParentType,
    t11ZsZoneMemberParentIndex, t11ZsZoneMemberIndex }

::= { t11ZsZoneMemberTable 1 }

T11ZsZoneMemberEntry ::= SEQUENCE {

    t11ZsZoneMemberParentType INTEGER,
    t11ZsZoneMemberParentIndex Unsigned32,
    t11ZsZoneMemberIndex Unsigned32,
    t11ZsZoneMemberFormat T11ZsZoneMemberType,
    t11ZsZoneMemberID OCTET STRING,
    t11ZsZoneMemberRowStatus RowStatus
}

t11ZsZoneMemberParentType OBJECT-TYPE

    SYNTAX INTEGER {
        zone(1), -- member belongs to a Zone
        alias(2) -- member belongs to a Zone Alias
    }
    MAX-ACCESS not-accessible
::= { t11ZsZoneMemberEntry 1 }

t11ZsZoneMemberParentIndex OBJECT-TYPE

    SYNTAX Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
::= { t11ZsZoneMemberEntry 2 }

t11ZsZoneMemberIndex OBJECT-TYPE

    SYNTAX Unsigned32 (1..4294967295)
    MAX-ACCESS not-accessible
    DESCRIPTION
        "An index value that uniquely identifies this Zone
        Member amongst all Zone Members in the Zone Set
        database of a particular Fabric on a particular switch."
::= { t11ZsZoneMemberEntry 3 }

t11ZsZoneMemberFormat OBJECT-TYPE

    SYNTAX T11ZsZoneMemberType
    MAX-ACCESS read-create
::= { t11ZsZoneMemberEntry 4 }

t11ZsZoneMemberID OBJECT-TYPE

    SYNTAX OCTET STRING (SIZE (1..255))
    MAX-ACCESS read-create
::= { t11ZsZoneMemberEntry 5 }

t11ZsZoneMemberRowStatus OBJECT-TYPE

    SYNTAX RowStatus
    MAX-ACCESS read-create
::= { t11ZsZoneMemberEntry 6 }
EN

回答 1

Stack Overflow用户

发布于 2011-11-12 00:14:07

你说对了,是的。但它稍微复杂一些: SNMP要求将整个MIB索引集合放在一起时必须是唯一的。因此,上面的MIB有6个索引,因此表中的每一行都可以为这6个值的每个组合提供一行。这意味着,从技术上讲,只要另一个索引值不同,t11ZsZoneMemberIndex的值就可能是重复的。

如果要求管理信息库本身是唯一的,那么t11ZsZoneMemberIndex确实应该以这种方式定义,并使其成为管理信息库索引列表中唯一的对象。不需要向索引本身添加多个唯一索引(这是对带宽的浪费)。

但是如果有多个唯一的实例,并且它们可能在管理器执行集合时发生冲突,那么是的……当发送的数据与内部可接受的概念不兼容时,应由管理器拒绝SET请求并返回错误。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8045326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档