# Intelligent Platform Management Interface

L’Interface de gestion intelligente de matériel, (ou IPMI, Intelligent Platform Management Interface) est un ensemble de spécifications d’interfaces pour un composant autonome des serveurs informatiques. Ce composant est un ordinateur (parfois utilisant un noyau Linux) indépendant du processeur, des firmwares (BIOS, UEFI), du système d’exploitation du système hôte. Il fournit des capacités de gestion et de supervision matérielles.
IPMI définit des interfaces pour la gestion hors bande (en) des systèmes informatiques. Ainsi, IPMI fournit, à distance, la capacité d’éteindre, allumer ou réamorcer un ordinateur en utilisant une connexion réseau secondaire, même si le système principal est hors d’usage. Il est aussi possible d’installer à distance le système d’exploitation en utilisant la « console LAN » (console déportée sur le réseau).
La spécification a été initiée par Intel et publiée le 16 septembre 1998. Elle est prise en charge par de nombreux constructeurs informatiques.
Son successeur est Redfish (en).

## Fonctionnalités

L’utilisation d’interface et de protocoles standardisés permet d’utiliser des logiciels de gestion de systèmes utilisant IPMI pour gérer des serveurs indépendamment du fabricant. IPMI fonctionne indépendamment du système d’exploitation principal. Il est installé sur un ordinateur indépendant. Certaines implémentations utilisent un noyau Linux. IPMI permet aux administrateurs de gérer un matériel à distance même si le système hôte est absent ou hors d’usage.
Les fonctions d’IPMI sont les suivantes :
* avant le démarrage du système (permettant le réglage des firmwares) ;
* quand le système est éteint (par exemple, pour l’allumer) ;
* après la défaillance du système d’exploitation (pour le redémarrer) ;
* IPMI fonctionnant sur un ordinateur, il peut devenir inopérant et imposer une coupure électrique pour être réinitialisé.
L’administrateur système peut utiliser IPMI pour :
* superviser le statut du système (températures, tensions, ventilateurs, alimentation, intrusion matérielle) ;
* inventorier le matériel ;
* utiliser des procédures de récupération ;
* configurer des chiens de garde ;
* recevoir des alertes SNMP.
Le système géré peut être éteint mais il doit être alimenté électriquement et connecté numériquement (réseau local, par exemple). IPMI continue de fonctionner même si le système principal a démarré. La version 1.5 de la spécification permet la communication par une interface réseau dédiée ou partagée ou une connexion série. La connexion partagée utilise la carte réseau de la carte mère. Ceci est moins coûteux qu’une interface dédiée, mais pose des problèmes de sécurité.
Un système utilisant la version 2.0 peut aussi utiliser une console LAN qui redirige la sortie console sur le réseau.

## Éléments de l’IPMI

Le système IPMI est composé d’un contrôleur principal (baseboard management controller: BMC) et de contrôleurs satellites. Ils communiquent par l’interface IPMB (Intelligent Platform Management Bus/Bridge). L’IPM est une dérivation d’un bus I$^2$C. Le BMC peut communiquer avec d’autres chassis par le protocole RMCP (Remote Management Control Protocol).

## Sécurité

Le support par IPMI du protocole RAKP rend celui-ci vulnérable à une attaque offline sur les mots de passe, celui-ci révélant un HMAC des mots de passe, exposant ceux-ci à des attaques efficaces. Ceci conduit à déconseiller l'exposition du protocole sur un réseau non sécurisé, ou de préférer des alternatives plus modernes telles que l'API Redfish maintenant proposées par la plupart des BMC.

## Implémentations

* OpenIPMI
* ipmiutil
* ipmitool
* GNU FreeIPMI, l'implémentation IPMI du projet GNU.