“SNMP不在时间窗口”错误后,NETSNMP不更新EngineTime,如何手动重置内部NETSNMP SSL结构?

时间:2012-02-29 14:39:44

标签: snmp net-snmp

我使用NETSNMP库使用SNMPv3和身份验证从路由器请求数据。如果重置路由器,则重置内部EngineTime,NETSNMP库无法识别。这会导致路由器在后续调用中丢失身份验证失败。

是否有任何api调用NETSNMP手动重置内部结构以便提出新的请求?

我将每次调用都包含在snmp_sess_open / close中,这样就没有开放的会话。

1 个答案:

答案 0 :(得分:0)

如果您在路由器上进行硬重置,那么您将遇到麻烦。当路由器重新启动SNMPv3规范要求时snmpEngineBoots计数器递增,并且snmpEngineTime重置为0.如果您的设备重新启动而snmpEngineBoots值没有递增(即,它总是0或1 ),然后是正在运行的经理会看到一个问题,因为设备报告它已及时倒退。

如果你真的想忽略这样做的安全问题,你可以随时致电:

int             set_enginetime(const u_char * engineID, u_int engineID_len,
                               u_int engine_boot, u_int engine_time,
                               u_int authenticated);

你必须明白,在你做这件事的那一刻,你就会为重播攻击做好准备。因此不要让您的设备在没有snmpEngineBoots值增加的情况下重置,否则,更改它的snmpEngineID。