0

我正在尝试使用 MD5Authentication 和 AES 隐私提供程序开发 snmp 陷阱版本 3。我在 Visual Studio 2019 中构建的代理,我正在尝试使用 sharpsnmp 和 snmpsharpnet 库。我正在使用 snmpB 的陷阱接收器。但是我都只收到“消息不在 TimeWindow 中!USMTimeTable:检查时间失败,不是权威(id)”错误。发送 SNMPV3 Inform、SNMPV1 和 SNMPV2 陷阱时没有问题。但是,当使用 net-snmp 命令发送时,会收到 snmpv3 陷阱。我与sharpsnmp 一起使用的源代码是snmpsendtrap 示例;snmpsendtrap 尖锐的snmp。是不是因为在snmpB中没有指定引擎ID,但是为什么net-snmp能够捕获,如果做如何配置engineID。

我用于 net-snmp 的成功陷阱:snmptrap -v 3 -e 80000000035C80B6A55D61 -u username -a MD5 -A 00806000806000806000806000806000 -x AES -X 00806000806000806000806000806000 localhost '' 1.3.6.1.2.1.1.1.0 .1.3.6.1.2.1.2.2.1.0 x 0x6669727374

我的sharpsnmp代码部分:

DiscoverAsync().Wait();
        try
        {
            if (AESPrivacyProvider.IsSupported)
            {
                var trap = new TrapV2Message(
                    VersionCode.V3,
                    528732060,
                    1905687779,
                    new OctetString("username"),
                    new ObjectIdentifier("1.3.6"),
                    0,
                    new List<Variable>(),
                    new AESPrivacyProvider(
                        new OctetString(ByteTool.Convert("00806000806000806000806000806000")),
                        new MD5AuthenticationProvider(new OctetString("00806000806000806000806000806000"))),
                    0x10000,
                    new OctetString(ByteTool.Convert("80001F8880E9630000D61FF449")),
                    0,
                    0);
                trap.Send(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 162));

            }
            else
            {
                Console.WriteLine("aes not supported");
            }
4

0 回答 0