IPMI 1:ipmi简介

1 ipmi是什么

IPMI全称是Intelligent Platform Management Interface,智能平台管理接口。它是由Intel、DELL、HP及NEC于1998年共同提出,由IPMI论坛创建了IPMI标准依赖,并已经得到了170 多家供应商的支,这使得其逐渐成为了一个完整的包括服务器和其他系统(如存储设备、网络和通信设备)的硬件管理规范。

通过该规范,用户可使用IPMI协议监视服务器的物理健康特征,如温度、电压、风扇工作状态、电源状态等。此外,IPMI协议是一个免费开放的标准,用户在遵守开源协议要求下使用而无需支付额外的费用。

目前该标准最新版本为IPMI 2.0,该版本在原有基础上有了不少的改进,包括了可以通过串口、Modem以及Lan等远程环境管理服务器系统(包括远程开关机),以及在安全、VLAN 和刀片服务器支持等方面覆盖。

简单说ipmi就是一个面向服务器管理的一个开源协议,该协议规定了消息格式规范,对于不同的传输接口,消息格式会有所不同。ipmi除了协议规定的标准命令外(必要、可选),还有预留了许多oem命令,用户可以根据实际需求实现oem命令。

更多信息参考ipmi官网:https://www.intel.com/content/www/us/en/products/docs/servers/ipmi/ipmi-home.html

2 ipmi主要功能

IPMI可以集中控制和监控服务器,可以认为IMPI是服务器的安全警卫,主要有以下功能:

1.远程控制服务器开关机、重启等操作。

2.远程查看和修改bios设置。

3.远程查看系统启动过程。

4.远程连接服务器,登入系统,解决ssh访问问题等。

5.查看系统故障日志记录访问系统事件日志 (System Event Log,SEL) 和传感器状况等。

6.获取系统的SNMP 警报。

7.远程安装系统,查看系统启动故障等问题。

8.对整个服务器系统进行各种设置等。

3 ipmi缺点

IPMI协议在实际应用中有一定的风险和一些缺点,主要是安全性和可用性:

1.网络安全 - IPMI通信协议会留下可以通过网络攻击的漏洞。

2.配置挑战 –在旧网络设置被更改时,配置IPMI任务具有挑战性。在这样的情况下,可通过系统的BIOS清除网络配置够解决问题。

3.更新挑战 – 安装更新补丁有可能导致网络故障。例如,切换主板的端口可能会导致故障。一般重新启动系统能够解决导致网络失败的问题。

4.数据非可视化– ipmi协议中数据是二进制,非人类可读,增加了调试和使用的难度。

目前已有DMTF制定的redfish协议来逐步替代ipmi协议。

Redfish协议官网:https://redfish.dmtf.org/

4 ipmi 工作原理

IPMI协议是基于命令/响应机制,可通过网络将机箱、传感器、固件、存储、应用等信息进行分类传递,同时可通过软件对BIOS、系统管理软件、远程终端等传感器等进行分类管理,并在网络、串行/Moderm接口、IPMB(I2C)、KCS、SMIC、SMBus等不同接口上都使用统一的格式传递信息。

IPMI核心是一个使用专用芯片/控制器(一般称为服务器处理器或基板管理控制器(Baseboard Management Controller,BMC)),该控制器不依赖于服务器的处理器、BIOS和操作系统来工作,而是有常电供电并独立运行的,它具有一个单独的子系统,在该系统中有ipmi的守护进程来处理主机或者远程管理的命令。

一般BMC是贴片在服务器主板或者外挂在服务器主板上的独立的子卡(SODIM接口形态或pcie接口形态),目前,服务器主板除了提供IPMI支持外也支持Redfish协议。在工作时,所有的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协议中规定了许多通信接口,比如LAN、Serial、ipmb、KCS、BT等。

具体接口类型和描述见下表:

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实现:

ami:https://www.ami.com/megarac-ast2600-bmc/

openbmc:https://github.com/openbmc/openbmc

iBMC(华为):https://support.huawei.com/enterprise/zh/servers/ibmc-pid-8060757

MCU上实现:

openipmc:https://openipmc.gitlab.io/openipmc/index.html、

openmmc:https://lnls-dig.github.io/openMMC/index.html、https://github.com/lnls-dig/openMMC

9 ipmi使用

ipmi的调试工具有:

ipmitool:https://sourceforge.net/projects/ipmitool/

ipmiutil:http://ipmiutil.sourceforge.net/

FreeIPMI:http://www.gnu.org/software/freeipmi/

openipmi:https://sourceforge.net/projects/openipmi/

这几个开源项目对比:http://ipmiutil.sourceforge.net/docs/ipmisw-compare.htm

一般常用ipmitool,ipmitool常用命令:

ipmitool -H   -I lanplus -U  -P   #远程管理执行命令,有些需要加“-C 17”
ipmitool  #本地管理执行命令
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信息
展开阅读全文

页面更新:2024-02-20

标签:远程管理   控制器   接口   命令   协议   服务器   简介   数据   系统   信息   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top