An IPMI sub-system consists of a main controller, called the baseboard management controller (BMC) and other management controllers distributed among different system modules that are referred to as satellite controllers. The satellite controllers within the same chassis connect to the BMC via the system interface called Intelligent Platform Management Bus/Bridge (IPMB) an enhanced implementation of
I²C (Inter-Integrated Circuit). The BMC connects to satellite controllers or another BMC in another chassis via the Intelligent Platform Management Controller (IPMC) bus or bridge. It may be managed with the
Remote Management Control Protocol (RMCP), a specialized wire protocol defined by this specification. RMCP+ (a
UDP-based protocol with stronger authentication than RMCP) is used for IPMI over LAN. Several vendors develop and market BMC chips. A BMC utilized for embedded applications may have limited memory and require optimized firmware code for implementation of the full IPMI functionality. Highly integrated BMCs can provide complex instructions and provide the complete out-of-band functionality of a service processor. The firmware implementing the IPMI interfaces is provided by various vendors. A
field-replaceable unit (FRU) repository holds the inventory, such as vendor ID and manufacturer, of potentially replaceable devices. A sensor data record (SDR) repository provides the properties of the individual sensors present on the board. For example, the board may contain sensors for temperature, fan speed, and voltage.
Baseboard management controller The baseboard management controller (BMC) provides the intelligence in the IPMI architecture. It is a specialized
microcontroller embedded on the
motherboard of a
computer – generally a
server. The BMC manages the interface between system-management software and platform hardware. BMC has its dedicated firmware and RAM. Different types of
sensors built into the computer system report to the BMC on
parameters such as
temperature, cooling
fan speeds,
power status,
operating system (OS) status, etc. The BMC monitors the sensors and can send alerts to a
system administrator via the
network if any of the parameters do not stay within pre-set limits, indicating a potential failure of the system. The administrator can also remotely communicate with the BMC to take some corrective actions – such as resetting or power cycling the system to get a hung OS running again. These abilities reduce the
total cost of ownership of a system. Systems compliant with IPMI version 2.0 can also communicate via
serial over LAN, whereby serial console output can be remotely viewed over the LAN. Systems implementing IPMI 2.0 typically also include
KVM over IP,
remote virtual media and out-of-band embedded web-server interface functionality, although strictly speaking, these lie outside of the scope of the IPMI interface standard. Physical interfaces to the BMC include
SMBuses, an
RS-232 serial console, address and data lines and an IPMB, that enables the BMC to accept IPMI request messages from other management controllers in the system. A direct serial connection to the BMC is not
encrypted as the connection itself is secure. Connection to the BMC over LAN may or may not use encryption depending on the security concerns of the user. There are concerns about the general security of BMCs, as piece of infrastructure with such low-level, wide-ranging access and control over servers. Vendor implementations are based on closed source and proprietary software, with little to no transparency regarding how they are made and what security vulnerabilities they contain.. The BMC (especially BMCs from Aspeed) may integrated an entry GPU (usually only supports 2D hardware acceleration) for basic display and remote administration purpose.
OpenBMC is a
Linux Foundation collaborative,
free and open source BMC project that aims to build transparent, well-documented and tested BMC management software that would alleviate these issues. ==Security==