代码仓
中
接口定制导读
更新时间: 2026/08/26
在AtomGit上查看源码

openUBMC 是 openUBMC 社区的 BMC(Baseboard Management Controller,基板管理控制器)软件套件,用于对服务器进行带外管理。为了适配不同厂商、不同形态的服务器,openUBMC 提供了一套完整的北向接口定制体系,允许厂商基于统一框架扩展自有管理命令和资源模型。

openUBMC 对外暴露的接口统称为北向接口(Northbound Interface),它们位于 BMC 软件栈的最上层,为运维平台、监控工具、自动化测试等消费方提供访问入口。

openUBMC接口总览 ​

openUBMC 默认对外提供以下五类核心接口:

接口类别协议默认端口主要用途
CLI(命令行接口)SSH22(映射 10022)基础命令集、运维诊断
Web RESTHTTPS443(映射 10443)Web UI、RESTful 资源访问
RedfishHTTPS443(映射 10443)标准化带外管理 API
IPMIUDP 623(映射 10623)传统带外管理
SNMPUDP 161(映射 10161)监控告警采集

接口基本概念与原理 ​

CLI(命令行接口) ​

概念:通过 SSH 协议登录 BMC shell,执行 openUBMC 提供的基础命令集,如查询 MAC 地址、查看硬件信息等。

原理:BMC 启动后开启 sshd 服务,监听 22 端口。客户端使用 ssh Administrator@localhost -p 10022 登录后,进入 openUBMC 定制的命令行环境,调用 bmc.kepler.* 等 D-Bus 服务完成管理操作。

定制点:

  • 命令集扩展:在 bmc.kepler 命名空间下新增 D-Bus 服务并注册命令。
  • 资源树挂载:通过 busctl --user tree 查看现有资源树,新增对象节点需遵循命名约定。

Web REST ​

概念:openUBMC 私有 RESTful 接口,承载 Web UI 后台业务,URL 形如 https://localhost:10443/UI/Rest/...。

原理:BMC 内部 Web 服务监听 443 端口,将 HTTP 请求路由到后端 REST 处理器,处理器再调用 D-Bus 服务获取/设置数据。REST 资源以资源树形式组织,支持 CRUD 操作。

定制点:

  • 新增资源:在资源树中注册新节点(如 /bmc/kepler/Systems/1/...)。
  • 路由扩展:在 REST 处理器中注册新的 URL 路由及对应处理器。
  • 数据契约:定制资源的 schema 需同步更新,供 Web 前端与自动化测试使用。

Redfish ​

概念:DMTF Redfish 标准化带外管理 API,URL 形如 https://localhost:10443/redfish/v1/...,与 Web REST 共用 443 端口但路径独立。

原理:openUBMC 实现 Redfish 标准资源模型(如 Systems、Chassis、Managers、EventService),以 JSON 格式返回资源数据。客户端使用标准 Redfish 客户端库即可访问,便于跨厂商兼容。

定制点:

  • 标准资源扩展:在标准资源类型下新增 OEM 字段,存放厂商私有数据。
  • 自定义事件:在 EventService 中注册自定义事件类型。
  • 标准合规性:新增 Redfish 接口需通过 Redfish 标准合规性验证(社区提供 RedfishLibrary 自动化测试用例)。

IPMI ​

概念:Intelligent Platform Management Interface,传统带外管理协议,通过 RMCP/RMCP+(UDP 623)进行命令交互。

原理:BMC 内部 IPMI 栈接收 IPMI 命令,分发到对应命令处理器(NetFn + Cmd),返回响应数据。常用工具为 ipmitool。

定制点:

  • 新增命令:在对应 NetFn(如 OEM NetFn 0x32)下注册新的 Cmd 处理函数。
  • 命令过滤:排查 IPMI 命令注册的过滤字段,确保与命令定义一致(社区要求新增 IPMI 接口时需进行此项检查)。
  • 兼容性:OEM 命令需避免与标准命令码冲突。

SNMP ​

概念:Simple Network Management Protocol,用于监控告警采集,默认 UDP 161。

原理:BMC 内部 SNMP Agent 管理 MIB 树,响应 GET/SET 请求,主动发送 Trap 通知告警事件。

定制点:

  • MIB 扩展:在私有 MIB 下新增节点。
  • Trap 扩展:注册新的告警事件类型并绑定 Trap OID。

学习路径 ​

openUBMC接口定制的学习路径主要包括:

  • 新手入门:帮助您实现快速上手实操,对接口定制有整体的初步了解。

  • 进阶开发:掌握深入原理,熟悉各类接口操作,快速实现接口定制开发。