< 返回版块

efancier-cn 发表于 2021-01-11 23:18

Tags:开源项目

背景

尽管被称作简单网络管理协议,SNMP确是在2021年的今天,仍然被使用的最为广泛的TCP/IP 应用协议,几乎所有的数据中心网络设备,以及支撑数据中心运作的基础架构设备,均使用SNMP协议与集中管理站进行通信。SNMP协议的完善,是Rust生态完善必不可少的一部分。

基础

SNMP数据用于SNMP管理站和SNMP代理之间,基于UDP协议

SNMP协议定义了4种核心协议数据单元(PDU):

  • GET,用来得到一条管理信息
  • GETNEXT,用来反复得到管理信息的串行
  • SET,用来给一个被管理的子系统制造一个变化
  • TRAP,用来报告一个关于被管理子系统的警告或其他异步事件

广为使用的协议有3个版本:

  • 第一版 SNMP V1 SNMP的第一个RFC系列出现在1988年:

    • RFC 1065:基于TCP/IP网络的管理信息的结构和认定
    • RFC 1066:以基于TCP/IP网络的网络管理为基础的管理信息
    • RFC 1067:一个简单网络管理协议
  • 第二版 SNMP V2C SNMP v2c(基于社区的SNMP第二版 RFC 1441–RFC 1452)定义于RFC 1901–RFC 1908,一开始也非正式的被称为SNMP第1.5版。SNMPv2c包含SNMP第二版除了受争议的新SNMP第二版安全模型以外的部份,并以SNMP第一版的简单的基于社区的安全性方案取而代之。

  • 第三版 Internet工程工作小组(IETF)把在RFC3411-RFC3418(STD0062)中定义的SNMP第三版作为2004年的标准版本。IETF将先前的版本定为“Obsolete”或“Historical”。

实际上,SNMP实现通常支持多个版本:典型的SNMPv1、SNMPv2c以及SNMPv3。

SNMP Agent 可以使用的数据被一个成为 mib 文件的树状描述数据结构定义,一般厂商都会把自己生产的设备的mib文件放在网上给集成商下载,例如: https://docs.paloaltonetworks.com/resources/snmp-mib-files.html

现状

目前rust已经很好的支持SNMP协议的数据解析,项目地址:https://github.com/rusticata/snmp-parser

该项目支持全部3个版本的SNMP协议解析,目前仍然是活动状态

SNMP Agent端

https://github.com/Svedrin/sunt 项目是活动状态,但是成熟度远远达不到可以使用的程度

SNNP Manager

https://docs.rs/snmp/0.2.2/snmp/ 这个项目仍然有很多限制,无法达到可以使用的级别

其它

一个SNMP v3客户端 https://github.com/davedufresne/modern_snmp

目标

使用 pure snmp 开发一个包含 Agent Side,和Manager Side(client), 支持SNMP v1/2c V3的 crate, 同时发布相关的工具,包括

  1. Mib文件GUI编辑 工具
  2. snmp 测试工具

项目将以 https://github.com/Svedrin/sunt 为基准,避免从零开始开发

团队

团队需要如下成员

  • Rust开发人员
  • 产品管理人员
  • 文档管理人员
  • 测试管理人员

开源项目全部为志愿者,没有报酬,需要每周至少4小时的时间来支持项目,无其他任何要求。项目团队将提供免费的vpn账号用于访问github, 并建立团队共有的.org展示网站

有兴趣的朋友请发邮件到efancier@hotmail.com, 让我们为Rust和开源开创一片小天地

盈利考虑

开源项目的盈利是一直被探索,永远没有被很好的解决的问题,这个项目也是一样,不过我们仍然有如下考虑:

  1. SNMP代码开源免费,但是相关的工具收费
  2. 提供付费技术支持,项目成员共享
  3. 寻求企业支持
  4. 团队成员将在项目网站上推广

Ext Link: https://en.wikipedia.org/wiki/Simple_Network_Management_Protocol

评论区

写评论
Mike Tang 2021-01-12 10:18

do call.

1 共 1 条评论, 1 页