【发布时间】:2019-12-17 14:00:18
【问题描述】:
我们曾经使用 PySNMP 版本 4.3.1 来接收 SNMP V3 陷阱,它运行良好。 最近我们升级到了4.4.12版本,已经没有收到trap了。
我调试了这个问题,发现在 service.py 第 759 行对 __getUserInfo 的调用抛出了一个异常:
# 3.2.4
try:
(usmUserName,
usmUserSecurityName,
usmUserAuthProtocol,
usmUserAuthKeyLocalized,
usmUserPrivProtocol,
usmUserPrivKeyLocalized) = self.__getUserInfo(
snmpEngine.msgAndPduDsp.mibInstrumController,
msgAuthoritativeEngineId, msgUserName
)
我认为这是因为陷阱中的引擎 ID 与我为接收陷阱而创建的用户的引擎 ID 不同。
在这个question 中,答案是为接收用户和陷阱发送者使用相同的引擎 ID。
如果是这样,为什么它在 PySNMP 版本 4.3.1 中有效?这是图书馆的错误吗?引擎 ID 匹配真的不是强制性的吗?
【问题讨论】: