5. 通知发起者中的管理目标识别 (Identification of Management Targets in Notification Originators)
通知发起者应用使用snmpTargetAddrTable和snmpTargetParamsTable来识别应向其发送通知的管理目标,并确定发送通知时应使用的SNMP版本和安全参数。
当发生触发通知生成的事件时,通知发起者:
-
查询snmpNotifyTable以确定此通知应使用哪些通知标签。snmpNotifyTable中的每个条目将标签值与通知类型(陷阱或通知)关联。
-
从snmpTargetAddrTable中选择目标地址,通过匹配通知标签。对于snmpTargetAddrTable中的每个条目:
a. snmpTargetAddrTagList对象包含标签值列表。
b. 如果snmpTargetAddrTagList中的任何标签值与snmpNotifyTable中指定的标签匹配,则选择此目标地址。
-
检索每个选定目标地址的传输参数:
a. snmpTargetAddrTDomain指定传输域(例如,snmpUDPDomain、snmpTCPDomain)。
b. snmpTargetAddrTAddress指定传输地址(例如,IP地址和端口)。
-
检索每个选定目标地址的SNMP参数:
a. snmpTargetAddrParams对象引用snmpTargetParamsTable中的条目。
b. 从引用的snmpTargetParamsTable条目中,通知发起者检索:
- snmpTargetParamsMPModel(消息处理模型)
- snmpTargetParamsSecurityModel(安全模型)
- snmpTargetParamsSecurityName(安全名称)
- snmpTargetParamsSecurityLevel(安全级别)
-
使用检索到的参数为每个选定的管理目标生成并发送通知。
配置示例 (Example Configuration)
考虑一个需要发送linkDown通知的通知发起者。配置可能包括:
snmpNotifyTable条目:
- snmpNotifyName: "linkDownNotify"
- snmpNotifyTag: "criticalDevices"
- snmpNotifyType: trap(1)
snmpTargetAddrTable条目:
条目1:
- snmpTargetAddrName: "mgmtStation1"
- snmpTargetAddrTDomain: snmpUDPDomain
- snmpTargetAddrTAddress: 192.0.2.1:162
- snmpTargetAddrTagList: "criticalDevices monitoring"
- snmpTargetAddrParams: "snmpv3Params"
条目2:
- snmpTargetAddrName: "mgmtStation2"
- snmpTargetAddrTDomain: snmpUDPDomain
- snmpTargetAddrTAddress: 192.0.2.2:162
- snmpTargetAddrTagList: "criticalDevices"
- snmpTargetAddrParams: "snmpv2cParams"
snmpTargetParamsTable条目:
条目snmpv3Params:
- snmpTargetParamsMPModel: 3 (SNMPv3)
- snmpTargetParamsSecurityModel: 3 (USM)
- snmpTargetParamsSecurityName: "operator"
- snmpTargetParamsSecurityLevel: authPriv(3)
条目snmpv2cParams:
- snmpTargetParamsMPModel: 1 (SNMPv2c)
- snmpTargetParamsSecurityModel: 2 (SNMPv2c)
- snmpTargetParamsSecurityName: "public"
- snmpTargetParamsSecurityLevel: noAuthNoPriv(1)
当发生linkDown事件时:
-
通知发起者查询snmpNotifyTable并发现应将带有标签"criticalDevices"的通知作为陷阱发送。
-
它扫描snmpTargetAddrTable并找到两个在其标签列表中包含"criticalDevices"的条目:"mgmtStation1"和"mgmtStation2"。
-
对于mgmtStation1,它使用USM安全和authPriv级别以及安全名称"operator"向192.0.2.1:162发送SNMPv3陷阱。
-
对于mgmtStation2,它使用团体字符串"public"向192.0.2.2:162发送SNMPv2c陷阱。
通知请求的超时和重试 (Timeout and Retry for Inform Requests)
当通知类型为通知(InformRequest-PDU)时,snmpTargetAddrTable还提供超时和重试参数:
-
snmpTargetAddrTimeout: 指定在将请求视为超时之前等待响应的时间(以百分之一秒为单位)。
-
snmpTargetAddrRetryCount: 指定如果未收到响应,重试发送通知请求的次数。
通知发起者使用这些参数来实现通知请求的可靠通知传递。
例如,如果snmpTargetAddrTimeout为1500(15秒)且snmpTargetAddrRetryCount为3,则通知发起者将:
- 发送通知请求。
- 等待最多15秒以获得响应。
- 如果未收到响应,最多重试3次。
- 在4次总尝试(初始+3次重试)或60秒(4×15秒)后放弃,以先到者为准。
管理目标识别的安全考虑 (Security Considerations for Management Target Identification)
在识别通知的管理目标时:
-
配置的身份验证: 管理目标的配置(snmpTargetAddrTable、snmpTargetParamsTable和snmpNotifyTable)应受访问控制保护,以防止未经授权的修改。
-
敏感信息: 安全名称,特别是与SNMPv1或SNMPv2c(团体字符串)一起使用时,应防止泄露。snmpTargetParamsTable应仅供授权用户访问。
-
通知过滤: 没有适当的通知过滤(在下一节中描述),所有配置的管理目标将接收所有通知,可能会将敏感信息暴露给未经授权的接收者。
-
标签选择: 使用标签允许灵活地对管理目标进行分组,但应注意确保正确应用标签,以防止通知误导。