SNMP 模拟器是一个工具,它作为嵌入到实际物理设备中的多个 SNMP 代理,从 SNMP 管理员的角度来看。模拟器构建并使用物理设备的 SNMP 脚本数据库来模拟其原始对应物。
项目描述
SNMP 模拟器
这是一个纯 Python、开源且免费的 SNMP 代理模拟器实现,在 2-clause BSD 许可协议 下分发。
特性
- 支持 SNMPv1/v2c/v3
- SNMPv3 USM 支持 MD5/SHA/SHA224/SHA256/SHA384/SHA512 认证和 DES/3DES/AES128/AES192/AES256 加密算法
- 支持 IPv4 和/或 IPv6 传输
- 模拟多个 EngineID,每个都有自己的模拟对象集合
- 根据 SNMP 共享、上下文、源/目的地址和端口变化响应
- 可以收集和存储 SNMP 代理的快照以供以后模拟
- 可以基于 MIB 文件、snmpwalk 和 sapwalk 输出运行模拟
- 可以从网络流量或 tcpdump 监视中收集模拟数据
- 可以从外部程序调用或 SQL 数据库中收集模拟数据
- 可以在 SET 操作上触发 SNMP TRAP/INFORM
- 能够同时模拟成千上万的代理
- 提供基于 REST API 的 控制平面
- 收集并报告广泛的活跃度指标
- 纯 Python,易于部署和高度可移植
- 可以通过可加载的 Python 片段进行扩展
下载
安装
只需运行
$ pip install snmpsim-lextudio
如何使用 SNMP 模拟器
安装完成后,调用 snmpsim-command-responder
并将其指向包含模拟数据的目录
$ snmpsim-command-responder --data-dir=./data --agent-udpv4-endpoint=127.0.0.1:1024
模拟数据存储在具有 OID|类型|值格式的简单纯文本文件中
$ cat ./data/public.snmprec
1.3.6.1.2.1.1.1.0|4|Linux 2.6.25.5-smp SMP Tue Jun 19 14:58:11 CDT 2007 i686
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.8072.3.2.10
1.3.6.1.2.1.1.3.0|67|233425120
1.3.6.1.2.1.2.2.1.6.2|4x|00127962f940
1.3.6.1.2.1.4.22.1.3.2.192.21.54.7|64x|c3dafe61
...
模拟器将查询参数(如 SNMP 共享名称、SNMPv3 上下文或 IP 地址)映射到数据文件。
您可以通过查询现有的 SNMP 代理立即生成模拟数据文件
$ snmpsim-record-commands --agent-udpv4-endpoint=demo.pysnmp.com \
--output-file=./data/public.snmprec
SNMP version 2c, Community name: public
Querying UDP/IPv4 agent at 195.218.195.228:161
Agent response timeout: 3.00 secs, retries: 3
Sending initial GETNEXT request for 1.3.6 (stop at <end-of-mib>)....
OIDs dumped: 182, elapsed: 11.97 sec, rate: 7.00 OIDs/sec, errors: 0
或者,您可以从 MIB 文件构建模拟数据
$ snmpsim-record-mibs --output-file=./data/public.snmprec \
--mib-module=IF-MIB
# MIB module: IF-MIB, from the beginning till the end
# Starting table IF-MIB::ifTable (1.3.6.1.2.1.2.2)
# Synthesizing row #1 of table 1.3.6.1.2.1.2.2.1
...
# Finished table 1.3.6.1.2.1.2.2.1 (10 rows)
# End of IF-MIB, 177 OID(s) dumped
甚至可以嗅探网络,恢复那里的 SNMP 流量并从中构建模拟数据。
除了静态文件外,SNMP 模拟器还可以配置为调用其插件模块以生成模拟数据。我们提供插件以接口 SQL 和 noSQL 数据库、基于文件的键值存储和其他信息源。
除了上述独立部署外,第三方 SNMP 模拟器控制平面 项目提供了用于管理多个 snmpsim-command-responder
实例的 REST API 大规模部署。
文档
有关 SNMP 模拟器使用的详细信息,请参阅 snmpsim 网站。
获取帮助
如果某些内容不符合预期,请在 GitHub 上 创建一个问题 或在 Stack Overflow 上 发布您的问题 或尝试浏览 snmpsim 的 邮件列表存档。
反馈和协作
我对错误报告、修复、建议和改进很感兴趣。您的 pull 请求非常受欢迎!
版权(c)2010-2019,Ilya Etingof。版权(c)2022,LeXtudio Inc.。版权所有。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解有关 安装软件包 的更多信息。