1 ipmi是什么
IPMI全称是Intelligent Platform Management Interface,智能平台管理接口。它是由Intel、DELL、HP及NEC于1998年共同提出,同时,由IPMI论坛创建了IPMI标准依赖,并已经得到了170 多家供应商的支,这使得其逐渐成为了一个完整地包括服务器和其他系统(如存储设备、网络和通信设备)的硬件管理规范。通过该规范,用户使用用IPMI协议监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。此外,IPMI协议是一个开放的免费标准,用户在遵守开源协议要求下使用而无需支付额外的费用。目前该标准最新版本为IPMI 2.0,该版本在原有基础上有了不少的改进,包括可以通过串口、Modem以及Lan等远程环境管理服务器系统(包括远程开关机),以及在安全、VLAN 和刀片支持等方面的改进。
简单说ipmi就是一个面向服务器的一个管理的开源协议,该协议规定了消息格式规范,对于不同的传输接口,消息格式会有所不同。同时,除了协议规定的标准命令外,还有预留了许多oem命令,用户可以根据实际需求实现oem命令。
更多信息参考网站:ipmi官网
2 ipmi功能
IPMI可以集中控制和监控服务器,可以认为IMPI是服务器的安全警卫。
1.远程控制服务器开关机、重启等操作。
2.远程查看和修改bios设置,查看系统启动过程。
3.远程连接服务器,登入系统,解决ssh访问问题。
4.查看系统故障日志记录访问系统事件日志 (System Event Log,SEL) 和传感器状况等。
5.获取系统的SNMP 警报。
6.远程安装系统,查看系统启动故障等问题。
7.对系统进行各种设置等。
3 ipmi缺点
IPMI协议在实际应用中有一定的风险和一些缺点,主要是安全性和可用性:
1.网络安全 - IPMI通信协议会留下可以通过网络攻击的漏洞。
2.配置挑战 –在旧网络设置被扭曲时,配置IPMI任务具有挑战性。在这样的情况下,可通过系统的BIOS清除网络配置够解决问题。
3.更新挑战 – 安装更新补丁有可能导致网络故障。例如,切换主板的端口可能会导致故障。一般重新启动系统能够解决导致网络失败的问题。
4.数据非可视化– ipmi协议中数据是二进制,非人类可读,增加了调试和使用的难度。
目前已有DMTF制定的redfish协议将逐步替代ipmi协议。
4 ipmi 工作原理
IPMI协议是基于命令/响应机制,可通过网络将机箱、传感器、固件、存储、应用等信息进行分类传递,同时可通过软件对BIOS、系统管理软件、远程终端等传感器等进行分类管理,并在网络、串行/Moderm接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上都使用统一的格式传递信息。
IPMI核心是一个使用专用芯片/控制器(一般称为服务器处理器或基板管理控制器(Baseboard Management Controller,BMC)),该控制器不依赖于服务器的处理器、BIOS或操作系统来工作,而是有常电供电并独立运行的,具有一个单独的子系统,在该系统中有ipmi的守护进程来处理主机或者远程管理的命令。一般BMC通常是一个贴片或者外挂在服务器主板上的独立的板卡,目前,部分服务器主板也提供对IPMI支持的。
在工作时,所有的IPMI命令都发给BMC,BMC收到命令后返回结果或者执行对应的操作,BMC上可以记录对应的数据或操作日志。在服务器内部,主机可以通过LPC或者其他接口发送命令给BMC来上报日志、或者其他信息。在远程管理时,可以通过命令获取到服务器的传感器状态信息、主机的调试信息(SOL)、控制服务器上下电重启等。通过远程管理可以避免在嘈杂的机房中工作。
而在命令传输的安全性方面,用户也无需担心,IPMI增强的认证(基于安全哈希算法1和基于密钥哈希消息认证)和加密(高级加密标准和Arcfour)功能有助于实现安全的远程操作。对VLAN的支持更是为设置管理专用网络提供了方便,并且可以以通道为基础进行配置。
5 ipmi 协议版本
ipmi协议只有三个版本:ipmi1.0、ipmi1.5、ipmi2.0。
IPMI1.0于1998年9月16日发布,制定了基本规范。
IPMI1.5于2001年2月21日发布,允许IPMI系统通过串口,BMC专用的带外网口,或者与主机共享的带内网口(NC-SI)与远程管理系统通讯。
IPMI2.0于2004年2月12日发布,增加了SOL(serial over LAN)、群组管理系统、身份认证(RAKP+、SHA-1等)、基于OpenSSL/RCMP+增强网络接口安全、固件防火墙和VLAN支持等。其中,SOL支持将BIOS输出和操作系统终端重定向到与BMC相连的串口,可通过IPMI与远程系统管理软件连接。同时,IPMI2.0兼容系统通常有KVM over IP(基于IP的远程键盘鼠标显示器连接)、远程桌面和页面服务器等功能,尽管这些并不属于IPMI协议。
IPMI2.0修订版1.1于2013年10月1日发布,修订了勘误表,说明和附录,并增加了对IPv6寻址。2015年4月21发布了最后一个版本,更新了GUID等。
6 ipmi 接口
ipmi协议中规定了许多通信接口,具体如下表所示。
Interfaces Type | Description |
---|---|
IPMI Messaging | BMC ipmi或BMC与host之间的ipmi接口,包括通道、访问权限等等 |
Intelligent Platform Management Bus(IPMB) | 分为智能设备和非智能设备(master read/write) |
Intelligent Chassis Management Bus (ICMB) | ICMB桥实现访问的接口控制器,是IPMI的一种实现,包含IPMB。 |
Keyboard Controller Style (KCS) | 键盘控制器 (KCS)接口,KCS接口是支持的BMC到SMS接口。KCS接口仅用于SMS消息。 |
Server Management Interface Chip(SMIC) | 该接口是一个3 I / O端口接口,可以使用简单的ASIC、FPGA或离散逻辑设备实现。每个字节的握手也用于传输数据。 |
Block Transfer (BT) | 提供了一个更高的性能系统接口。与KCS和SMIC接口不同,每一个块的握手都用于在接口中传输数据。 |
SMBus System Interface (SSIF) | 用于主机控制器和BMC之间传输,使用SMBus读写块协议。BMC总是作为SMBus的从设备,主机控制器将数据写入到BMC。 |
IPMI LAN Interface | 通过ipv4/ipv6远程连接BMC的UDP网络接口 |
IPMI Serial/Modem Interface | IPMI串口访问接口。 |
7 ipmi命令格式
对不通的接口ipmi标准命令格式会稍有区别,一般通常用是远程控制,以网络接口为例:
Requester数据格式
Respond数据格式
Channel对应ipmi协议中“Table6-,Channel Number Assignments”
对于其他接口数据格式稍有不通,具体请看ipmi协议。对于远程管理用的会常用通信桥,也就是以网络接收命令,然后将命令通过其它接口(如ipmb)发送出去,然后接收其它接口返回的信息,在组合成网络命令返还给命令发起者。,以ipmb桥为例,具体格式如下图,首先是网络发送桥通信命令(Ntefn cmd),指定通信通道(即桥通道编号),data数据中填入需要发送的ipmb命令,BMC的ipmi守护进程解析后,通过ipmb通道发出命令,BMC的ipmi守护接收到返回数据后,在组合成成网络响应命令,返回给请求者。
IPMB命令格式如下:
rsAddr:响应地址
netFn:Network Function code 功能码,请求是奇数,响应是偶数
LNU: netFn的低2bits代表逻辑单元码,用于进一步区分设备
checksum:检验和,前3个字节和为0,后n个字节和为0
rqAddr:请求地址
rqSeq:请求序列号,由请求者设定
rqLUN:请求逻辑单元码
rsLUN:响应逻辑单元码
cmd :command 命令
completion code:命令响应完成码
request/response data:请求或响应数据
不通的桥会有不通的权限,不同的用户也可以有不同的权限,具体需要根据实际进行设定。
8 ipmi实现
IPMI只是一个通信协议,它的实现依赖于单独的硬件平台,即基板管理控制器(BMC)。
BMC硬件为系统和管理软件提供通信接口。BMC获取主板、模块的传感器信息和日志信息上报管理软件,同时,可接收系统或者管理软件的设置信息,以设置和管理服务器,确保服务器系统健康运行。BMC实现IPMI管理如下图所示。
常用的实现:ami、openbmc、iBMC(华为)
MCU实现(ipmb):ipmc
9 调试工具
ipmi的调试工具是ipmitool、 ipmiutil,FreeIPMI、openipmi一般用ipmitool。
这几个开源项目对比:http://ipmiutil.sourceforge.net/docs/ipmisw-compare.htm
ipmitool常用命令
ipmitool -H <BMC-IP> -I lanplus -U (BMC-user) -P (BMC-pssd) <cmd> #远程管理执行命令
ipmitool <cmd> #本地管理执行命令
ipmitool mc info #BMC信息
ipmitool fru #fru信息
ipmitool sel #sel版本等信息
ipmitool sel elist #获取sel
ipmitool sensor list #获取传感器信息
ipmitool chassis power on/off/reset #启动底盘开关机、重启
ipmitool chassis power status #底盘电源和状态
ipmitool user list #用户列表
ipmitool lan print 1 #查看lan信息
更多请见: