IPMI Grundlagen

Aus Thomas-Krenn-Wiki
Wechseln zu: Navigation, Suche

In diesem Artikel beschreiben wir die Funktionsweise und die unterschiedlichen Einsatzmöglichkeiten von IPMI (Intelligent Platform Management Interface). IPMI ist eine Reihe an Spezifikationen, die standardisierte Schnittstellen zum sogenannten „Platform Management“ bereitstellen. Der Begriff „Platform Management“ wird in diesem Zusammenhang für die Überwachung der Hardware (System Temperaturen, Lüfter, Netzteile, etc.), deren Steuerung (Ein/Aus-Schalten des Servers) sowie der Dokumentation (Logging) von „out-of-range“ Zuständen verwendet. IPMI wurde von Intel, Hewlett-Packard, NEC und Dell entwickelt.

Die Informationen haben wir der umfangreichen IPMI 2.0 Spezifikation entnommen.[1]

Server-Systeme von Thomas-Krenn

Hauptmerkmale von IPMI

Zu den Hauptmerkmalen von IPMI zählen:

  • Monitoring (Überwachung der Hardware)
  • Recovery Control (Wiederherstellung/Neustarten des Servers)
  • Logging (Protokollierung von „out-of-range“ Zuständen der Hardware)
  • Inventory (Inventarisierung der Hardware)

Diese vier Funktionen bietet IPMI unabhängig vom Hauptprozessor (CPU), BIOS und Betriebssystem des Servers. Die Plattform-Managementfunktionen sind auch bei ausgeschaltenem Server verfügbar (sofern zumindest ein Netzteil des Servers mit Strom versorgt ist).

IPMI wird am besten in Zusammenhang mit einer System Management Software verwendet. IPMI ist eine auf Hardware-Ebene bezogene Interface-Spezifikation, die „Management-Software-neutral“ entworfen wurde.

IPMI Komponenten

IPMI ist unter anderen aus den folgenden Komponten aufgebaut:

Ipmi-schematische-darstellung.png

(vergleiche auch: IPMI 2.0 Spezifikation[1], Kapitel 1.7.3, Figure 1-2)

Baseboard Management Controller (BMC)

Ein Microcontroller (BMC) ist das Herzstück der IPMI Architektur. Die Aufgaben des BMC sind:

  • Interface zwischen der System Managment Software und der verwalteten Hardware (über die der BMC mittels IPMB und ICMB verbunden ist)
  • unabhängiges Monitoring
  • unabhängiges Event-Logging
  • Recovery Control

Intelligent Platform Management Bus (IPMB)

IPMI erlaubt die Erweiterung des BMC um zusätzliche Management Controllers (MCs) unter Verwendung des IPMB.

Der IPMB ist ein I²C basierender serieller Bus, der die Verbindung von unterschiedlichen Boards innerhalb eines Chassis ermöglicht. Er wird für die Kommunikation zu und zwischen Management Controllern (MCs) verwendet. Die zusätzlichen MCs werden häufig auch als Satellite Controllers bezeichnet.

Intelligent Chassis Management Bus (ICMB)

Der ICMB stellt eine standardisierte Schnittstelle für zur Kommunikation und Steuerung zwischen Chassis bereit.

IPMI Speicherbereiche

IPMI speichert Informationen zum System Event Log (SEL), Sensor Data Record (SDR) Repository sowie zu Field Replaceable Units (FRU).

System Event Log (SEL)

Der BMC enthält ein zentrales, non-volatile, System Event Log (SEL). Da dieses SEL vom BMC verwaltet wird, bleibt es z.B. per IPMI über LAN-Zugriff auch etwa nach einem CPU-Ausfall des Servers abrufbar.

Eine Reihe an IPMI Kommandos erlauben das Auslesen (read) und Löschen (clear) des SEL. Da der Speicher für das SEL begrenzt ist muss es regelmäßig überprüft und gelöscht werden, damit weitere Ereignisse protokolliert werden können. Weitere Informationen dazu liefern die beiden folgenden Artikel:

Sensor Data Record (SDR) Repository

Sensor Data Records sind Datensätze die Informationen zum Typ und der Anzahl von Sensoren enthalten. Ein Sensor Data Record Datensatz beschreibt also einen bestimmten Sensor.

Die Sensor Data Records Datensätze werden in einem zentralen, non-volatile, Speicherbereich der vom BMC verwaltet wird abgelegt. Dieser Speicherbereich wird als Sensor Data Record Repository (SDR Repository) bezeichnet.

Weitere Informationen zu IPMI Sensoren finden Sie im Artikel IPMI Sensoren im Detail.

Field Replaceable Unit (FRU) Information

IPMI unterstützt die Speicherung von Field Replaceable Unit (FRU) Informationen für unterschiedliche Module im System. Die FRU Daten enthalten Informationen wie Seriennummern (serial number), Teilenummern (part number), Modell (model) und Anlagenummern/Inventarnummern (asset tag).

Kommunikationsschnittstellen

IPMI erlaubt IPMI Messaging über folgende Interfaces:

  • System Interfaces (lokaler Zugriff)
  • Serial/Modem Interface (Zugriff über eine serielle Schnittstelle bzw. über ein Modem)
  • LAN Interface
  • (ICMB und PCI Management Bus)

System Interfaces

IPMI definiert mehrere System Interfaces für den den lokalen Zugriff von System Software hin zum BMC. Um eine möglichst breite Palette an Mikrocontrollern zu unterstützten gibt es mehrere System Interfaces. Die System Interfaces können über I/O oder memory mapped Zugriff angesprochen werden.

Die IPMI System Interfaces sind:

  • Keyboard Controller Style (KCS)
  • System Management Interface Chip (SMIC)
  • Block Transfer (BT)
  • SMBus System Interface (SSIF)

Serial/Modem Interface

Die Serial/Modem Interface Spezifikationen definieren wie IPMI Nachrichten zum und vom BMC über eine direkte serielle oder eine externe Modem-Verbindung übertragen werden können.

Dabei werden drei Connection Modes unterstützt:

  • Basic Mode
  • PPP Mode
  • Terminal Mode

LAN Interface

Die LAN Interface Spezifikationen definieren wie IPMI Nachrichten zum und vom BMC in RMCP (Remote Management Control Protocol) UDP Datagrammen (Zielport UDP Port 623 - asf-rmcp) verpackt übertragen werden. Diese Funktionalität wird auch als „IPMI over LAN“ bezeichnet. IPMI definiert an dieser Stelle auch LAN-spezifische Konfigurationseinstellungen wie etwa für die IP Adresse.

RMCP stammt von der Distributed Management Task Force (DMTF). Dieses Paketformat wird neben IPMI auch für die DMTF Alert Standard Forum (ASF) Spezifikation verwendet.

In IPMI 2.0 wird ein erweitertes Paketformat (RMCP+) definiert. RMCP+ unterstützt neben diversen Erweiterungen für die Authentifizierung eine Verschlüsselung der Datenübertragung.

Payloads

Payloads sind eine Funktion um über eine RMCP+ IPMI Session neben IPMI Nachrichten noch weitere Daten zu übertragen. Ein Beispiel für einen solchen weitere Datenart ist Serial over LAN (SOL).

Channel Model

IPMI verwendet ein channel model zur direkten Kommunikation zwischen einer Kommunikationsschnittstelle (Interface) und dem BMC. Jeder Channel hat dabei seine eigenen Eigenschaften und seine eigene Konfiguration:

  • eine eindeutige channel number
  • die Art der Kommunikationsschnittstelle (z.B. Lan Interface)
  • User und Passwörter (Benutzer werden also nicht global für den ganzen BMC erstellt, sondern immer individuell für einen Channel - somit können einem Benutzer mit dem Namen admin auf unterschiedlichen Channeln unterschiedliche Passwörter zugewiesen werden)
  • individuelle unterstützte authentication modes (z.B. MD5)
  • ein individuell konfigurierbares Channel Privilege Limit
  • IPMI Messaging und Alerting kann ebenfalls individuell pro Channel aktiviert oder deaktiviert werden

Channel Numbers

Jeder Channel hat eine individuelle channel number. Nur die channel numbers für den primären IPMB (channel number 0) und das System Interface (channel number Fh oder 15) sind fix zugewiesen. Die restlichen channel numbers hängen von der jeweiligen Implementierung ab.

Channel Number Typ/Protokoll Beschreibung
0 Primärer IPMB Channel 0 ist für die Kommunikation mit dem primären IPMB reserviert.
1-11 (1-Bh) Implementierungs-spezifisch Diese Channels können für unterschiedliche Arten von Kommunikationskanälen verwendet werden. Die jeweils verfügbaren Channels hängen von der konkreten IPMI Implentierung auf einem konkreten Server-System ab. Oft wird der Channel 1 als LAN Channel verwendet (manche Server wie etwa der Intel SR2500 haben auch weitere LAN Channels).
12-13 (Ch-Dh) - Reserviert.
14 (Eh) aktuelles Interface Dieses Interface wird verwendet um den aktuell verwendeten Channel zu identifizieren. Ein Programm kann das Get Channel Info IPMI Kommando auf diesem Channel absetzen um herauszufinden über welchen Channel die Kommunikation gerade läuft.
15 (Fh) System Interface Dieser Channel wird für das System Interface verwendet.

Session

Ein Channel kann session-based oder session-less sein. Eine session erfüllt dabei folgende beiden Zwecke:

  • eine Session bietet ein Framework zur Benutzer Authentifizierung
  • eine Session ermöglicht mehrere IPMI Messaging streams auf einem einzelnen Channel

LAN und serial/modem Channel sind Beispiele von session-based, während System Interface and IPMB Beispiele von session-less Channel sind.

Channel Privilege Levels

Channels können konfiguriert werden, dass sie mit einem bestimmten maximalen Privilege Level genützt werden können. Die unterschiedlichen Privilege Levels sind:

Privilege Level Beschreibung
Callback Dies ist der niedrigste Privilege Level. Erlaubt nur die Initiierung eines Callbacks.
User Nur IPMI begin Kommandos sind erlaubt. Dies sind hauptsächlich Kommandos zum Lesen und Abfragen von Status Informationen (Sensoren). Andere Funktionen (wie Veränderung der BMC Konfiguration, Schreiben von Daten zum BMC, Ausführen von Resets/Power-On/Power-Off) sind hier nicht möglich.
Operator Alle BMC Kommandos bis auf jene zur Änderung der Out-Of-Band Interfaces sind erlaubt. Mit dem Operator Privilege Level ist es also nicht möglich Channels zu deaktivieren oder User Access Privileges zu ändern.
Administrator Alle BMC Kommandos sind erlaubt.

Hinweis: Wenn ein Channel (z.B. ein LAN Channel) grundsätzlich die Möglichkeit bieten soll Einstellungen mit dem Administrator Privilege Level vorzunehmen, können trotzdem einzelne User auf diesem Channel mit niedrigeren Rechten ausgestattet werden (User Privilege Limit). Der LAN Channel selbst kann also mit Administrator als Channel Privilege Limit konfiguriert werden. Und dann können z.B. zwei Benutzer (einer mit Administrator als User Privilege Limit und einer mit User als User Privilege Limit) entsprechend eingerichtet werden.

Serial Over LAN (SOL)

Serial Over LAN (SOL) bezeichnet die Umleitung vom Datenverkehr auf der seriellen Schnittstelle eines Baseboard (Mainboard) über eine IPMI Session. Dies ermöglicht etwa den Zugriff auf das BIOS Interface (sofern dort die serielle Umleitung konfiguriert wird), sowie den Zugriff auf Bootloader wie Grub oder auch auf eine Linux Textkonsole (sofern dort jeweils eine serielle Konsole konfiguriert wird).

SOL ist als Payload Type in IPMI v2.0 (RMCP+) definiert.

Ein konkretes Beispiel wie SOL konfiguriert und genützt werden kann finden Sie im Artikel IPMI Serial over LAN (SOL).

Neuerungen in IPMI

Die IPMI Spezifikationen wurden seit der Version 1.0 laufend erweitert. Die wichtigsten Erweiterungen sind hier aufgelistet.

Neuerungen mit IPMI v1.5

In Kapitel 1.5 der IPMI 2.0 Spezifikation[1] werden folgende Neuerungen erwähnt:

  • Serial/Modem Messaging and Alerting
  • Serial Port Sharing
  • Boot Options
  • LAN Messaging and Alerting
  • Extended BMC Messaging ‘Channel Model’
  • Additional Sensor and Event Types
  • Platform Event Filtering (PEF)
  • Alert Policies

Neuerungen mit IPMI v2.0

In Kapitel 1.6 der IPMI 2.0 Spezifikation[1] werden folgende Neuerungen erwähnt:

  • Enhanced Authentication (Erweiterungen für IPMI over IP: RMCP+)
  • VLAN Support
  • Serial Over LAN (SOL, ist als eigener Payload Typ in der neuen Payload Funktion in RMCP+ definiert.)
  • Payloads (RMCP+ ermöglicht den Transfer von anderen Datentypen als IPMI Nachrichten über IPMI over IP Sessions. Dies beinhaltet standardisierte Payload Typen wie SOL oder andere OEM spezifische „value-added“ Payload Typen.)
  • Encryption Support (IPMI Nachrichten und andere Payload Typen die mittels RMCP+ übertragen werden können verschlüsselt werden.)
  • Extended User Login Options
  • Firmware Firewall
  • SMBus System Interface (SSIF, ist eine neue Option für das Hardware Interface, das lokalen Zugriff auf den BMC über den SMBus host controller erlaubt. SSIF soll bei der Unterstützung von lower-cost BMC Implementierungen helfen.)

Einzelnachweise

  1. 1,0 1,1 1,2 1,3 IPMI Specification, V2.0, Rev. 1.1

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer, tätig im Bereich Communications / Knowledge Transfer bei Thomas-Krenn, hat sein Studium zu Computer- und Mediensicherheit an der FH Hagenberg abgeschlossen. Er ist regelmäßig Autor in Fachzeitschriften und Speaker bei Konferenzen wie LinuxCon, OSDC, OSMC, LinuxTag u.v.m. Seine Freizeit gestaltet er sehr abwechslungsreich. In einem Moment absolviert er seinen Abschluss im Klavierspielen, im anderen läuft er beim Linzmarathon in der Staffel mit oder interessiert sich für OpenStreetMap.


Das könnte Sie auch interessieren

FreeIPMI Unrecognized Event ignorieren
IPMI Passwort zurücksetzen
IPMI Sensoren von ASUS Mainboards deaktivieren