跳转到主要内容

SNMP模拟器是一种工具,它作为许多SNMP代理,嵌入到真实物理设备中,从SNMP管理器的角度来看。模拟器构建并使用物理设备的SNMP特征数据库来像其原始对应物那样响应。

项目描述

SNMP模拟器

Become a Sponsor PyPI PyPI Downloads Python Versions GitHub license

这是一个纯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代码片段进行扩展

下载

SNMP模拟软件可以从PyPI项目网站免费下载。

安装

只需运行

$ pip install snmpsim

如何使用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模拟器控制平面项目提供了REST API管理的多个snmpsim-command-responder实例的大规模部署。

文档

有关SNMP模拟器使用的详细信息,可以在snmpsim网站找到。

获取帮助

如果某些操作不符合预期,请在GitHub上打开问题在Stack Overflow上提问。

反馈和合作

欢迎提交错误报告、修复、建议、改进以及您的pull请求!

版权所有(c) 2010-2019,Ilya Etingof。版权所有(c) 2022-2024,LeXtudio Inc。保留所有权利。

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分发

snmpsim-1.1.7.tar.gz (240.0 kB 查看哈希值)

上传于 源码

构建版本

snmpsim-1.1.7-py3-none-any.whl (226.0 kB 查看哈希值)

上传于 Python 3

由以下支持