奇怪的SNMP v3响应,报告而不是获取响应

奇怪的SNMP v3响应,报告而不是获取响应,snmp,sharp-snmp,cucm,Snmp,Sharp Snmp,Cucm,通过SNMP v3查询Cisco呼叫管理器时出现奇怪问题。snmpv2工作正常 当使用get next request时,响应应该是get response,但有时我会得到一个“report”响应 报告与get next request中的oid无关的oid 如果有兴趣,可以提供wireshark的转储。问题中的oid是(电话更新表): 1.3.6.1.4.1.9.9.156.1.2.4.0 通常,响应为get响应,其oid类似于: 1.3.6.1.4.1.9.9.156.1.2.4.1.2.5

通过SNMP v3查询Cisco呼叫管理器时出现奇怪问题。snmpv2工作正常

当使用
get next request
时,响应应该是
get response
,但有时我会得到一个“
report
”响应

报告与
get next request
中的
oid
无关的
oid

如果有兴趣,可以提供wireshark的转储。问题中的
oid
是(电话更新表):

1.3.6.1.4.1.9.9.156.1.2.4.0

通常,响应为
get响应
,其oid类似于:

1.3.6.1.4.1.9.9.156.1.2.4.1.2.580

但有时响应是一个带有
oid
的“
报告”

1.3.6.1.6.3.15.1.1.2.0


我的应用程序(
.net
使用
sharpsnmplib
)将此读取为常规的
get响应
,get完全混淆了<代码>SNMP v3加密和授权似乎都很好
CUCM 10.5和
sharpsnmplib 7.6

您必须花一些时间学习SNMP v3,以便了解什么是“发现”过程以及为什么
报告
消息很重要

IdNotInTimeWindow
只是OID
1.3.6.1.6.3.15.1.1.2.0
,这通常意味着请求中的时间戳已经超出了时间窗口


您的代码应该小心地处理此类
报告
消息(根据此
报告
消息中的新时间戳重新发送请求),尽管我同意#SNMP库应该在这方面提供更好的支持(下一版本即将推出)。

解决方案(无论如何,在我的情况下)只是在每个snmp v3 get命令之前执行一个发现过程。这是一个长期的过程,因此我假设discovery报告可以使用(很长)一段时间。使用库的当前版本,我如何确定get响应实际上是一个报告?或者更好,如何从报告消息中找到时间窗口,以便仅在必要时才能重新创建?感谢您的支持;)但这并不容易
ISnmpMessage.Pdu()。TypeCode
应该告诉您收到的是哪种响应消息、报告还是响应。对于接收到的任何一条消息,都可以将其用作构造新请求消息的最后一个参数,例如
GetRequestMessage
。时间窗口信息将被自动利用。