如何在没有特定引擎 ID 的情况下接收 snmp v3 陷阱?

网络工程 snmp
2021-07-12 02:14:36

我在 linux 上使用 net-snmp 包中的 snmptrapd。我正在尝试制作一些 perl 脚本来处理 snmp 陷阱。我已经有了这样的脚本,它适用于 snmp v1、v2c 陷阱和 snmpv3 陷阱,但仅当我engineID在配置和命令发送陷阱中明确指定时但是当我配置 cisco 路由器向我发送linkDown陷阱时,它使用 MAC 地址和一些额外的字节作为引擎 ID。我可以看到陷阱到达了wireshark 的接口,但是snmptrapd 什么也不做。是否可以配置snmptrapd为在不指定的情况下接受经过身份验证的用户的所有陷阱engineID

# Example configuration file for snmptrapd
#
# No traps are handled by default, you must edit this file!
#
createUser -e 0x0102030405 myuser MD5 mypassword DES myotherpassword
createUser -e 0x0102030405 myuser2 MD5 mypassword DES myotherpassword
createUser -e 0x0102030406 myuser2 MD5 mypassword DES myotherpassword
createUser cisco SHA cisco123 DES cisco123
authUser log,execute myuser
authUser log,execute myuser2
authUser log,execute cisco
authCommunity   log,execute public
perl do "/usr/local/share/snmp/snmptrapdhandler.pl";
2个回答

如果不指定engineID,则无法通过用户身份验证接收陷阱。

请参阅http://www.net-snmp.org/wiki/index.php/TUT:Configuring_snmptrapd_to_receive_SNMPv3_notifications

可以在不需要 engineID 的情况下进行设置。

有关更多信息,请参阅此帖子:https : //serverfault.com/a/961621/517843