0

NETSNMP ライブラリを使用して、SNMPv3 と認証を使用してルーターからデータを要求します。ルーターがリセットされると、NETSNMP ライブラリによって認識されない内部 EngineTime がリセットされます。これにより、ルーターは後続の呼び出しで認証エラーをスローします。

内部構造を手動でリセットするための NETSNMP への API 呼び出しがあり、新しい要求が行われますか?

開いているセッションがないように、すべての呼び出しを snmp_sess_open/close で囲みます。

4

1 に答える 1

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 を変更したりしないでください。

于 2012-03-05T20:53:07.947 に答える