3. 带外管理入门

带外管理(Out-of-Band Management)是服务器运维中一条独立于操作系统的“生命线”。当主机宕机、系统无法启动、网络栈崩溃,甚至尚未安装操作系统时,只要服务器接通电源、BMC(Baseboard Management Controller,基板管理控制器)所在的管理网口可达,运维人员就能远程完成开关机、查看硬件状态、挂载虚拟介质、读取传感器与日志等操作。Supermicro 服务器上的 BMC 通常以独立网口(标有 IPMI/LAN、Dedicated LAN 或 MGMT)或共享网口(NCSI/Sideband)形式存在,理解它的网络配置与访问方式是批量自动化运维的起点。

BMC 网络配置:先让管理口“可达”

BMC 拥有完全独立的 MAC 地址、IP 地址与网络协议栈,与主机操作系统互不干扰。初始配置通常有三种途径:一是在 BIOS/UEFI 的 IPMI 配置界面中设置;二是通过开机自检时按提示进入 BMC Web 界面或专用配置工具;三是借助厂商工具(如 Supermicro 的 IPMICFG、SMCIPMITool)在操作系统内直接写入。无论哪种方式,核心参数都包括:IP 地址、子网掩码、默认网关、VLAN(若管理网划分了 VLAN)、以及访问模式(Dedicated 专用口或 Shared 共享口)。

一个常见的教学示例是:管理网段规划为 192.168.30.0/24,网关 192.168.30.1,为每台服务器 BMC 分配固定 IP,例如 192.168.30.101 起顺序编号。使用 IPMICFG 在 Linux 下配置的典型命令如下:

# 查看当前 BMC 网络配置
./IPMICFG-Linux.x86_64 -m

# 设置静态 IP、掩码、网关
./IPMICFG-Linux.x86_64 -m 192.168.30.101 255.255.255.0 192.168.30.1

# 指定使用专用管理口(Dedicated)
./IPMICFG-Linux.x86_64 -lancfg dedicated

# 查看 BMC 用户列表
./IPMICFG-Linux.x86_64 -ul

配置完成后,用 ping 192.168.30.101 验证连通性,再通过浏览器访问 https://192.168.30.101 进入 BMC Web 界面。默认凭据通常为 ADMIN/ADMIN 或 ADMIN/<机箱序列号后几位>,首次登录后应立即修改密码并创建独立运维账号,避免所有服务器共用同一口令。

BMC 带外管理访问路径与协议栈 运维终端 浏览器 / ipmitool Redfish 客户端 管理网络 192.168.30.0/24 网关 192.168.30.1 | VLAN 30 专用管理口 Dedicated LAN 服务器 BMC 192.168.30.101 独立 MAC / 独立栈 ① Web 界面 https://192.168.30.101 默认 ADMIN/ADMIN 图形化:电源/传感器/介质 适合人工巡检与首次配置 ② IPMI 命令 ipmitool -I lanplus -H IP -U ADMIN -P 密码 power / sensor / sol / fru 适合脚本批量与快速操作 ③ Redfish API GET /redfish/v1/Systems/1 POST .../Actions/Reset JSON 结构化返回 适合自动化平台集成 统一带外能力 远程开关机 | 传感器读取 | 虚拟介质挂载 | SOL 串口重定向 | 事件日志 不依赖主机操作系统状态

IPMI 命令:脚本化运维的“老将”

IPMI(Intelligent Platform Management Interface)是带外管理的经典协议,ipmitool 是 Linux 下最常用的客户端。它通过 RMCP+(UDP 623 端口)与 BMC 通信,支持本地和远程两种模式。远程操作必须使用 -I lanplus 指定加密传输,否则明文凭据在网络中裸奔。以下是一组可直接复用的命令示例:

# 远程开机
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' power on

# 查看电源状态
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' power status

# 读取所有传感器(温度、电压、风扇)
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' sensor list

# 查看 FRU 资产信息(序列号、型号)
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' fru print

# 进入 SOL 串口重定向(需先激活)
ipmitool -I lanplus -H 192.168.30.101 -U ADMIN -P 'YourPass' sol activate

批量场景下,可以把 IP 列表写入文件,用 shell 循环逐台执行,例如 for ip in $(cat bmc_list.txt); do ipmitool ... power status; done。需要注意:IPMI 1.5 与 2.0 的加密能力不同,Supermicro 较新机型默认启用 IPMI 2.0;若连接失败,先确认 BMC 固件版本与端口 623 是否被防火墙拦截。另外,sensor list 输出中若出现 no reading 或 disabled,通常表示该传感器未接或未启用,而非故障。

Redfish API:面向自动化的现代接口

Redfish 是 DMTF 制定的 RESTful 管理标准,使用 HTTPS(443 端口)与 JSON 数据格式,比 IPMI 更适合与 Ansible、Python、监控平台集成。Supermicro BMC 固件在较新版本中均提供 /redfish/v1/ 根入口。访问前先获取会话令牌,再携带令牌调用资源:

# 获取会话令牌
curl -k -X POST https://192.168.30.101/redfish/v1/SessionService/Sessions \
  -H "Content-Type: application/json" \
  -d '{"UserName":"ADMIN","Password":"YourPass"}'

# 返回头中 X-Auth-Token 即为令牌,后续请求携带
curl -k -H "X-Auth-Token: <token>" \
  https://192.168.30.101/redfish/v1/Systems/1

# 执行重启(GracefulRestart 或 ForceRestart)
curl -k -X POST -H "X-Auth-Token: <token>" \
  -H "Content-Type: application/json" \
  -d '{"ResetType":"GracefulRestart"}' \
  https://192.168.30.101/redfish/v1/Systems/1/Actions/ComputerSystem.Reset

Redfish 返回的 JSON 中,PowerState 表示当前电源状态,Status/Health 表示健康度,Boot/BootSourceOverrideTarget 可设置下次启动设备(如 Pxe、Cd、Hdd)。这些字段正是自动化平台判断“机器是否就绪、该不该重装”的依据。相比 IPMI 的文本解析,Redfish 的字段稳定、语义清晰,适合作为批量配置系统的底层驱动。

初始访问安全建议:首次登录后立即修改默认密码;为自动化创建独立账号并限制权限;管理网与业务网物理或 VLAN 隔离;关闭未使用的服务(如 IPMI over LAN 若不需要可禁用);定期升级 BMC 固件以修复已知漏洞。

三种方式如何选择

人工排查、首次上架配置,优先用 Web 界面,直观且能挂载 ISO;临时批量开关机、读取传感器,用 IPMI 命令最快;要接入自动化平台、做持续状态采集与编排,则选 Redfish API。三者并非互斥,实际运维中常常组合使用:用 Redfish 做日常状态轮询,用 IPMI 做紧急强制下电,用 Web 界面处理虚拟介质和固件升级。掌握这三条路径,就掌握了 Supermicro 服务器带外管理的入口,后续的批量配置、固件统一升级与无人值守装机才有稳定的落脚点。