我正在尝试在 Windows 上使用 Net-SNMP 来模拟应该在我们的监控系统上触发警报的陷阱。
设置如下:
- 发送陷阱的 Windows 7 客户端
- Net-SNMP 作为发送陷阱的软件
- Linux 与 Adventnet ManageEngine OpManager 作为 NMS(不相关)
这就是我想要实现的
发送 OID 为 .1.3.6.1.4.1.5089.1.0.1 的陷阱(根据我已加载到 NMS 中的 MIB)并向其中发送某种消息,以查看是否可以在 NMS 中收到任何警报。我可以看到我实际上在防火墙中发送了一个陷阱,但我不知道它包含什么。
这是我迄今为止的尝试:
snmptrap.exe -v 2c -c xxxxxxx 192.168.100.65 '' 6 0 .1.3.6.1.4.1.5089.1.0.1 s "123456"
但是,我似乎找不到任何带有 snmptrap 示例的合理文档。基本上,我需要知道什么:
- '' <- 我为什么需要这个?我可以省略它,它仍然会发送陷阱
- 6 <- 我认为是企业通用陷阱。这是正确的吗?
- 0 <- 我不知道,我需要一些值
- .1.3.6.1.4.1.5089.1.0.1 <- 我认为这是企业特定的 OID,后面应该跟着一些数字
- s <- 表示字符串
- “123456”<-只是一个随机测试字符串......
这对我来说没有多大意义,如果有人可以阐明这一点,我将非常感激。
答案1
请尝试以下操作:
snmptrap.exe -v 2c -c xxxxxxx 192.168.100.65
'' .1.3.6.1.4.1.5089.1.0.1 .1.3.6.1.4.1.5089.2.0.999 s "123456"
'' <- v2c trap 的第一个参数是代理正常运行时间,它是必需的,空参数将被替换为当前值
.1.3.6.1.4.1.5089.1.0.1 <- 陷阱 OID
.1.3.6.1.4.1.5089.2.0.999 <- varbind(这需要在 MIB 中定义为字符串值)
s <- 表示字符串
“123456”<-只是一个随机测试字符串......
这将生成一个具有以下内容的 SNMPv2c 陷阱(如在 wireshark 中所示):
variable-bindings: 3 items
1.3.6.1.2.1.1.3.0: 878104
1.3.6.1.6.3.1.1.4.1.0: 1.3.6.1.4.1.5089.1.0.1 (iso.3.6.1.4.1.5089.1.0.1)
1.3.6.1.4.1.5089.2.0.999: 31323334353 (this is 123456 octet string)
该输出来自 Linux 上的 snmptrap,但似乎与 Windows 上的相同。
答案2
忘记网络 SNMP 吧,使用它太麻烦了……只需从http://ireasoning.com/mibbrowser.shtml...加载一个 mib 文件,您就可以查看并发送所有 SNMP 陷阱。
答案3
我也不完全理解它,但这对我有用(反复试验的方法;)
snmptrap -v 2c -Ci -u 用户 -c 社区主机''.xyzqoid 1 s 字符串 2 s 字符串2