Notifications SNMPv3代理如何知道在哪里发送通知?

Notifications SNMPv3代理如何知道在哪里发送通知?,notifications,snmp,Notifications,Snmp,当SNMPv3代理生成通知(例如,根据RFC 2981事件MIB)时,该代理如何确定要发送的通知类型以及发送到哪里?我假设使用了以下RFC 3413表格,但没有很好地描述连杆机构(IMHO)。 -snmpNotifyTable -snmpNotifyFilterProfileTable -snmpNotifyFilterTable RFC 3413第3.3节第(1)步指出,第一步是确定管理目标,但没有提供多少指南来定义如何使用标准化对象进行管理。从逻辑上讲,我认为通知名称和snmpNotifyN

当SNMPv3代理生成通知(例如,根据RFC 2981事件MIB)时,该代理如何确定要发送的通知类型以及发送到哪里?我假设使用了以下RFC 3413表格,但没有很好地描述连杆机构(IMHO)。 -snmpNotifyTable -snmpNotifyFilterProfileTable -snmpNotifyFilterTable


RFC 3413第3.3节第(1)步指出,第一步是确定管理目标,但没有提供多少指南来定义如何使用标准化对象进行管理。从逻辑上讲,我认为通知名称和snmpNotifyName之间会有一个链接,这将指示是否在逐个通知的基础上向哪个目标发送陷阱或通知,但RFC3413中提供的示例似乎与此逻辑相反,并且对象的定义没有提供这种链接。。。帮助?

SNMP-NOTIFICATION-MIB
对象配置代理发送的通知<代码>SNMP-TARGET-MIB对象配置代理发送通知的位置。通过标记值/列表(例如,
snmpNotifyTag
->
snmptargetadrdrtaglist
)配置两个MIB表之间的链接(向何处发送通知)。换句话说,
snmptagedrdrtable
中的给定目标将获取代理配置为发送的任何通知,其中该配置的
snmpNotifyTag
出现在
snmptagedrttaglist

每个评论的附加信息:

DISMAN-EVENT-MIB
中,将根据配置的触发条件发送通知。要发送的通知由分配给
mteEventNotification
的通知类型OID标识。假设发生任何触发条件,并且代理已决定将该通知发送给所有适当的目标。然后,将按如下方式发送通知:

  • 代理将搜索
    snmpNotifyFilterTable
    以查找
    mteEventNotification
    与行的
    snmpNotifyFilterSubtree
    snmpNotifyFilterMask
    匹配的所有行,使用
    snmpNotifyFilterType
    和优先级规则确定该通知是否包含在配置文件中或从中排除
  • 对于上面确定的每个
    snmpNotifyFilterProfileName
    ,其中要包括
    mteEventNotification
    ,代理通过
    snmpTargetAddrTable
    搜索
    snmpTargetAddrParams
    等于
    snmpNotifyFilterProfileName
    的任何行
  • 对于上面确定的每个
    snmpTargetAddrTagList
    中的每个
    snmpTargetAddrTagTable
    行,
    snmpNotifyTable
    扫描具有相同
    snmpNotifyTag
    值的行,以确定要发送的通知类型(陷阱或通知)
  • (2)中的
    snmptargetadrrams
    行的
    snmptargetadrrams
    值用于查找相应的
    snmpTargetParamsTable
    行,其中
    snmptargetadrrams
    等于
    snmpTargetParamsName
    。此行中的信息用于确定用于发送目标通知的SNMP版本、安全级别和安全名称
  • 根据SNMP版本,在(4)中确定的
    snmpTargetParamAssetSecurity Name
    对应于
    snmpCommunityTable
    (对于SNMPv1/v2c)或
    usmUserTable
    (对于SNMPv3/USM)

  • 对,那部分我理解。但是RFC 2981生成的MteEventNotification和SNMPNotify表之间的关系是什么。我可以看到至少两种可能的解释,其中snmpNotifyName对应于1)mteEventName,或2)mteeventnotify指向的陷阱的名称。但这两种方法似乎都不符合RFC 3413中提供的示例。RFC 3413中的示例表明snmpNotifyName可能是“group1”(即与标记相同),但这在我看来似乎不合逻辑。我如何知道哪些通知与“group1”和“group2”相关?我已经用其他信息/程序更新了答案。注意:我对DISAN-EVENT-MIB不是特别熟悉;关于这一点的段落是我快速浏览后收集到的。但是,对于代理将要发送的任何通知OID,这些过程都应该是正确的。有趣的是,如果有一个snmpTargetAddrTable行在其snmpTargetAddrTagList(步骤3)中有三个snmptagValue,其中一个表示通知,两个表示陷阱,那么会发生什么?我是否发送三个通知(一个通知和两个相同的陷阱);两个通知(结合两个陷阱,因为它们是多余的);一个通知(实施者选择);上面提到的任何一个(实现者的选择)?我的解释(正如我解释/实现/修复了两个具有不同代理的不同客户端的bug)是,您将发送所有三个通知。它可能会受到实现者的解释,因为它有点含糊不清,但我的感觉/经验是,它要复杂得多,或者不发送设置表的人想要实现的东西,而不是发送所有三个。