我在 CentOS7 上运行了有效的 net-snmp v5.7 安装,现在我尝试在 CentOS8 上运行的 net-snmp v5.8 上执行相同的操作。
我已配置/etc/snmp/snmpd.conf如下:
syslocation Somewhere
syscontact [email protected]
dontLogTCPWrappersConnects yes
agentaddress udp:161,udp6:161
includeAllDisks 10%
engineID host.example.com
rouser -s usm user1
rouser -s usm user2
用户在 /var/lib/net-snmp/snmpd.conf 中创建,如下所示,重新启动会按预期转换这些用户:
createUser "user1" "SHA256" "password" "AES256" "password"
createUser "user2" "SHA256" "password" "AES256" "password"
在同一台机器上,snmpwalk 在 /etc/snmp/snmp.conf 中配置如下:
defversion 3
defsecurityname user1
defsecuritylevel authPriv
defauthtype SHA256
defauthpassphrase password
defprivtype AES256
defprivpassphrase password
尝试运行 snmpwalk(将上述参数添加到 snmp.conf 中)失败,如下所示:
[root@host ~]# snmpwalk host.example.com
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
security service 3 error parsing ScopedPDU
snmpwalk: Timeout (error parsing PDU)
使用 SHA 和 AES 代替 SHA256 和 AES256 具有相同的效果。
谁能确认以上有什么问题吗?
我在 5.8 和 5.9.1 net-snmp 版本中遇到了这个问题。我的问题是我在 snmpd.conf 文件中错误地明确设置了engineid。我在引擎 ID 周围加了引号,并将该字符串转换为十六进制数字。字节 5 中有效引擎 ID 的格式应符合 RFC3411。
snmpd.conf 中有效的最终格式是
引擎ID 8001xxxxxxxxxxxxxxxxxx
对于我来说,这一行使用 MAC 地址(字节 5 是 03),共有 22 个十六进制数字,长度为 11 个字节
net-snmp snmpd 能够捕获此错误本来很好,但wireshark 通过报告数据包的“数据不符合 RFC3411”来捕获此错误。
我也遇到了类似的问题,请问你解决了吗