2个版本

0.1.1 2024年1月6日
0.1.0 2024年1月6日

#1253 in 硬件支持

GPL-3.0-or-later

135KB
3K SLoC

rust-ipmi

支持IPMI V2/RMCP+的LAN rust客户端

前言

这是一个为了学习rust而进行的业余项目,不是一个用于生产的库。如果您需要一个稳定、功能丰富的IPMI LAN客户端,请考虑ipmi-tool - 这是一个已经维护了超过十年的命令行工具。

⚠️ 安全警告 ⚠️

通过LAN的IPMI存在多个相对较详细的安全漏洞。以下是一些加强安全性的建议

  • 更改默认的IPMI用户名
  • 将端口623/UDP限制在受限制的防火墙下的服务器上
  • 不要直接将您的服务器暴露给WAN

背景

rust-ipmi是一个用于远程管理/监控具有IPMI硬件支持的系统的原生rust客户端。IPMI是一个允许软件通过BMC(基板管理控制器)与系统交互和通信的规范。BMC是一个硬件组件,它通过LAN和串行使计算机机箱、主板和存储设备能够交互。

这个库专注于IPMI LAN协议。有关通过LAN的IPMI的一些一般信息

  1. 这是一个基于网络的IPMI实现,因此网络数据包将通过UDP在端口623发送到BMC LAN控制器并接收。
  2. 数据包结构通常类似于以太网帧 -> IP/UDP -> RMCP头部 -> IPMI头部 -> IPMI有效负载
  3. 英特尔推出了IPMI v2和RMCP+,引入了加密有效负载

依赖关系

~3MB
~64K SLoC