私は、ネットワーク上のマシンにトラップを送信しようとすると、snmpv3用のpysnmpコードを実装しています。トラップがWiresharkで見られているのがわかりますが、トラップレシーバーには表示されません。コードは以下の通りである:私はてAuthKey、privKey、authProtocolとprivProtocolを削除するとPySNMP SNMPV3トラップが送信されていません
from pysnmp.hlapi import *
errorIndication, errorStatus, errorIndex, varBinds = next(
sendNotification(
SnmpEngine(OctetString(hexValue='8000000001020304')),
UsmUserData('usr', authKey='authh', privKey='privv',
authProtocol=usmHMACSHAAuthProtocol,
privProtocol=usmAesCfb128Protocol),
UdpTransportTarget('192.168.1.79',162),
ContextData(),
'trap',
NotificationType(ObjectIdentity('SNMPv2-MIB', 'authenticationFailure'))
)
)
if errorIndication:
print(errorIndication)
は、私はトラップがトラップレシーバで受け取っれて見ることができますが、私はそれらすべてを置くとき、私はトラップが表示されません。
私の質問は以下のとおりです。
- は、Ubuntuのは、それを受け取るためにWindowsマシン用の161と162のポートを開く必要がありますか?
- Engine IDがハードコードされていても、認証なしでトラップを送信できますが、フル認証の場合は正しいEngine IDを持つ必要がありますか?トラップが現れないのはなぜですか?もしそうなら、誰かが受信システムのエンジンIDを見つけるのを案内できますか?
- Wiresharkは明らかにトラップが届いているので、トラップを表示するにはトラップレシーバの設定の問題だけですか?
これを手伝ってください。
ありがとうございます。