asyncioを使用して非同期pysnmp bulkCmdを使用している場合、要求されたOIDには(Ciscoスイッチで学習したMACアドレスを示す1.3.6.1.2.1.17.4.3.1.2のような)多くの値があるか、要求、私はすべてのOIDを受け取ったわけではないことを意味するネットワークのMTU/MSSによって応答のOIDの総数が制限されているという問題があります。lexicographicMode in asyncio bulkCmd
この問題は、同期bulkCmdでlexicographicModeを使用していても、非同期bulkCmdジェネレータでそのオプションが使用できない場合に制御できます。
getNextを使用することは可能ですが、パケットの総数(OIDごとに1つの要求/応答)が増加するため、パフォーマンスが大幅に低下します。 Asynchronous bulkCmdを使用してすべての "sub oid"が応答で受信することを制御する方法はありますか?
私の問題は、最大パケットサイズのために必要なすべてのデータ(OID)を受信しなかったことです。 asyncioバルク要求を使用すると、1つのudpパケットだけが受信され、maxRepetitionsの値は設定されません。しかし、私はすでにここで解決策を見つけています。(例:http://pysnmp.sourceforge.net/examples/hlapi/asyncio/manager/cmdgen/walking-operations.html)ループとマニュアルコントロール中に一括要求を入れることができます。多くのリクエスト/レスポンスが送信されます。 –
'maxRepetitions'パラメータは、各リクエストOIDごとに返される"次の "OIDの数を制限します。したがって、間接的にUDPパケットサイズを制御しますが、応答するUDPパケットの数には決して影響しません(常に1パケットです)。したがって、解決策は、あなたが言っているように、GETBULKを反復して、 'maxRepetitions'をMTUをオーバーサイズしないような普通の値に制限することです。 –