我在SNMP v3服务器(Cisco路由器)上配置了2个用户:
desuser
)aesuser
)两个用户的隐私密码和身份验证密码设置为相同:12345678
用于测试目的。
使用下面链接中的代码(问题末尾),我能够使用DES
作为隐私方法执行SNMP v3查询。为此我使用了以下命令行args:
-v=3 -l=authPriv -a=MD5 -A=12345678 -x=DES -X=12345678 -u=desuser 10.10.10.1 1.3.6.1.2.1.2.2.1.7.1
以上工作没有任何问题。
然后我尝试使用AES 128
作为隐私方法,方法是在命令行args上更改隐私方法和用户,如下所示:
-v=3 -l=authPriv -a=MD5 -A=12345678 -x=AES -X=12345678 -u=aesuser 10.10.10.1 1.3.6.1.2.1.2.2.1.7.1
这导致了TimeoutException:
我可以在其他SNMP代理上同时使用这些用户(aesuser
和desuser
),而不会出现任何问题。
请告诉我:
使用AES 128时,需要在命令行arg -x
中指定什么?它应该只是AES
还是AES128
?
当我查看snmpget
的代码(在最后的链接中)时,我注意到分配给命令行arg -x
的值被分配给名为{{的变量1}}。但是,在设置privacy
对象时,此变量以后永远不会在代码中使用。设置此对象时,只有两个可用的代码路径是IPrivacyProvider
和DESPrivacyProvider
。 (参见下面的代码摘录)难道不应该像DefaultPrivacyProvider
那样在代码上启用AES隐私方法吗?
AESPrivacyProvider
项目snmpget
的代码摘录:
Program.vb
https://github.com/lextm/sharpsnmplib/blob/master/Samples/VB.NET/snmpget/
答案 0 :(得分:1)
http://help.sharpsnmp.com/html/T_Lextm_SharpSnmpLib_Security_AESPrivacyProvider.htm
正如文档所述,AES支持是实验性的。
您可以编写自己的隐私提供程序来处理此类算法,这纯粹是一个加密挑战,并不属于#SNHS的范围(仅涵盖核心SNMP功能)。