IPMI: Difference between revisions

From HPCWIKI
Jump to navigation Jump to search
(Phase 0.4: Expand IPMI)
(리터럴 ** 볼드 마커 제거 (MediaWiki는 ''' 볼드, **는 리터럴))
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
= IPMI =
= IPMI =
{{Status
|status=Draft
|owner=Knowledge Agent
|last_update=2026-07-15
|review=Pending
}}
{{TOC}}


== Overview ==
== Overview ==
Line 19: Line 10:
* 왜 필요한가? — OS 독립적 서버 모니터링, 원격 관리, 전원 제어
* 왜 필요한가? — OS 독립적 서버 모니터링, 원격 관리, 전원 제어
* 언제 사용하는가? — 데이터센터 서버 관리, 원격 전원 제어, 센서 모니터링
* 언제 사용하는가? — 데이터센터 서버 관리, 원격 전원 제어, 센서 모니터링


== Purpose ==
== Purpose ==
Line 28: Line 18:
* Scope: IPMI 아키텍처, ipmitool 명령어, 보안(Cipher suite), LAN 설정, 센서 모니터링
* Scope: IPMI 아키텍처, ipmitool 명령어, 보안(Cipher suite), LAN 설정, 센서 모니터링
* Non-goals: BMC 펌웨어 업그레이드, OpenBMC 상세 개발 가이드는 별도 문서
* Non-goals: BMC 펌웨어 업그레이드, OpenBMC 상세 개발 가이드는 별도 문서


== Key Concepts ==
== Key Concepts ==
Line 65: Line 54:
| [[IPMI]]
| [[IPMI]]
|}
|}


== Architecture ==
== Architecture ==
Line 83: Line 71:
     B --> J[Event Log - SEL]
     B --> J[Event Log - SEL]
</syntaxhighlight>
</syntaxhighlight>


== Workflow ==
== Workflow ==
Line 108: Line 95:
| Serial-over-LAN session
| Serial-over-LAN session
|}
|}


== Detailed Explanation ==
== Detailed Explanation ==
Line 118: Line 104:
=== ipmitool Interface Types ===
=== ipmitool Interface Types ===


* **open** — Linux OpenIPMI Interface (기본값, in-band)
* open — Linux OpenIPMI Interface (기본값, in-band)
* **imb** — Intel IMB Interface
* imb — Intel IMB Interface
* **lan** — IPMI v1.5 LAN Interface (out-band)
* lan — IPMI v1.5 LAN Interface (out-band)
* **lanplus** — IPMI v2.0 RMCP+ LAN Interface (out-band, 권장)
* lanplus — IPMI v2.0 RMCP+ LAN Interface (out-band, 권장)
* **free** — FreeIPMI IPMI Interface
* free — FreeIPMI IPMI Interface
* **serial-terminal** — Serial Interface, Terminal Mode
* serial-terminal — Serial Interface, Terminal Mode
* **serial-basic** — Serial Interface, Basic Mode
* serial-basic — Serial Interface, Basic Mode
* **dummy** — Linux DummyIPMI Interface
* dummy — Linux DummyIPMI Interface
* **usb** — IPMI USB Interface (AMI OEM)
* usb — IPMI USB Interface (AMI OEM)


=== IPMI Security ===
=== IPMI Security ===
Line 137: Line 123:
=== Cipher Suite ===
=== Cipher Suite ===


* **Cipher 0** — 인증 우회 가능 (비활성화 권장)
* Cipher 0 — 인증 우회 가능 (비활성화 권장)
* **Cipher 3** — 기본 옵션 (RAKP-HMAC-SHA1, AES-CBC-128)
* Cipher 3 — 기본 옵션 (RAKP-HMAC-SHA1, AES-CBC-128)
* **Cipher 17** — 고급 보안 (RAKP-HMAC-SHA256, AES-CBC-128)
* Cipher 17 — 고급 보안 (RAKP-HMAC-SHA256, AES-CBC-128)


추가 보안 조치:
추가 보안 조치:
Line 370: Line 356:
$ sudo systemctl status ipmievd
$ sudo systemctl status ipmievd
</syntaxhighlight>
</syntaxhighlight>


== Configuration ==
== Configuration ==
Line 393: Line 378:
$ sudo ipmitool user set password 2 <Strong_Password>
$ sudo ipmitool user set password 2 <Strong_Password>
</syntaxhighlight>
</syntaxhighlight>


== Examples ==
== Examples ==
Line 422: Line 406:
$ sudo ipmitool sensor
$ sudo ipmitool sensor
</syntaxhighlight>
</syntaxhighlight>


== Best Practices ==
== Best Practices ==
Line 435: Line 418:
* ipmievd 활성화하여 이벤트 syslog 전송
* ipmievd 활성화하여 이벤트 syslog 전송
* 정기적인 SEL 확인
* 정기적인 SEL 확인


== Limitations ==
== Limitations ==
Line 443: Line 425:
* LAN 인터페이스 설정 오류 시 원격 관리 불가
* LAN 인터페이스 설정 오류 시 원격 관리 불가
* BMC 리셋 시 일시적 관리 중단
* BMC 리셋 시 일시적 관리 중단


== References ==
== References ==
Line 450: Line 431:
* https://github.com/scottjg/ipmitool
* https://github.com/scottjg/ipmitool
* https://www.openbmc.org/
* https://www.openbmc.org/


== Related Pages ==
== Related Pages ==
Line 459: Line 439:
* [[Linux]]
* [[Linux]]
* [[OpenBMC]]
* [[OpenBMC]]


[[Category:Hardware]]
[[Category:Hardware]]

Latest revision as of 13:53, 2 October 2026

IPMI

Overview

IPMI(Intelligent Platform Management Interface)는 호스트 시스템의 CPU, 펌웨어(BIOS/UEFI), 운영체제와 독립적으로 작동하는 컴퓨터 인터페이스 사양입니다. 서버 관리 및 모니터링을 위한 자율적 서브시스템을 제공합니다.

Summary

  • 무엇인가? — 서버 관리용 자율적 서브시스템 사양 (BMC 기반)
  • 왜 필요한가? — OS 독립적 서버 모니터링, 원격 관리, 전원 제어
  • 언제 사용하는가? — 데이터센터 서버 관리, 원격 전원 제어, 센서 모니터링

Purpose

이 문서가 존재하는 이유

  • Goal: IPMI 기본 개념, ipmitool 사용법, 보안 설정, 실전 명령어 제공
  • Scope: IPMI 아키텍처, ipmitool 명령어, 보안(Cipher suite), LAN 설정, 센서 모니터링
  • Non-goals: BMC 펌웨어 업그레이드, OpenBMC 상세 개발 가이드는 별도 문서

Key Concepts

Concept Description Related
BMC Baseboard Management Controller — IPMI 핵심 하드웨어 IPMI
ipmitool IPMI 관리 유틸리티 (CLI) IPMI
In-band 호스트 OS를 통한 IPMI 접근 (KCS) IPMI
Out-band LAN을 통한 원격 IPMI 접근 (RMCP+) IPMI
Cipher Suite IPMI 인증/암호화 프로토콜 Cipher suite
SEL System Event Log — 이벤트 기록 IPMI
SOL Serial-over-LAN — 원격 콘솔 IPMI

Architecture

IPMI는 BMC(Baseboard Management Controller)를 핵심으로 하는 독립 서브시스템입니다:

graph TD
    A[IPMI Subsystem] --> B[BMC - Baseboard Management Controller]
    B --> C[In-band Interface]
    B --> D[Out-band Interface - LAN]
    C --> E[OpenIPMI Driver]
    C --> F[ipmitool - Local]
    D --> G[ipmitool - Remote]
    B --> H[Sensors - Temp/Fan/Voltage]
    B --> I[Power Control]
    B --> J[Event Log - SEL]

Workflow

Stage Input Output
Check Status ipmitool chassis status Power/Sensor status
Power Control ipmitool chassis power on/off Server power state change
Sensor Monitor ipmitool sdr list Temperature/Fan/Voltage readings
Remote Console ipmitool sol activate Serial-over-LAN session

Detailed Explanation

What is IPMI

IPMI는 호스트 시스템과 독립적으로 작동하는 서버 관리 인터페이스입니다. BMC(Baseboard Management Controller)가 핵심 구성 요소이며, OpenBMC은 Linux Foundation의 오픈소스 BMC 프로젝트입니다.

ipmitool Interface Types

  • open — Linux OpenIPMI Interface (기본값, in-band)
  • imb — Intel IMB Interface
  • lan — IPMI v1.5 LAN Interface (out-band)
  • lanplus — IPMI v2.0 RMCP+ LAN Interface (out-band, 권장)
  • free — FreeIPMI IPMI Interface
  • serial-terminal — Serial Interface, Terminal Mode
  • serial-basic — Serial Interface, Basic Mode
  • dummy — Linux DummyIPMI Interface
  • usb — IPMI USB Interface (AMI OEM)

IPMI Security

  • IPMI 트래픽은 신뢰할 수 있는 내부 네트워크로 제한
  • 관리 VLAN 세그먼트에서 강력한 네트워크 제어 적용
  • 기본 비밀번호는 반드시 강력한 비밀번호로 변경
  • 각 IPMI 서비스는 고유한 강력한 비밀번호 설정

Cipher Suite

  • Cipher 0 — 인증 우회 가능 (비활성화 권장)
  • Cipher 3 — 기본 옵션 (RAKP-HMAC-SHA1, AES-CBC-128)
  • Cipher 17 — 고급 보안 (RAKP-HMAC-SHA256, AES-CBC-128)

추가 보안 조치:

  • 익명 로그인 비활성화
  • 이름 없는 계정 비활성화
  • 강력한 비밀번호 사용

IPMI Commands

Command Description Notes
raw RAW IPMI 요청 전송 —
i2c I2C Master Write-Read —
lan LAN 채널 설정 IPv4 설정 포함
lan6 IPv6 LAN 채널 설정 —
chassis chassis 상태 및 전원 제어 power on/off/cycle/policy
power 전원 명령어 단축 chassis power 대체
event 사전 정의된 이벤트 전송 —
mc Management Controller 상태 mc info/reset
sdr Sensor Data Repository sdr list/type
sensor 상세 센서 정보 —
fru FRU 정보 출력 fru print
sel System Event Log sel list/clear/elist
pef Platform Event Filtering —
sol Serial-over-LAN activate/deactivate
user Management Controller 사용자 user list/set name/password
channel Management Controller 채널 —
session 세션 정보 출력 —
dcmi Data Center Management Interface power reading/get_limit/set_limit

IPMI Usage Examples

LAN 설정

# 현재 LAN 설정 확인
$ sudo ipmitool lan print
$ sudo ipmitool lan6 print

# IPv4 설정
$ sudo ipmitool lan set 1 ipaddr <BMC_IP>
$ sudo ipmitool lan set 1 netmask <Subnet_Mask>
$ sudo ipmitool lan set 1 snmp <SNMP>
$ sudo ipmitool lan set 1 defgw ipaddr <Gateway>

Cipher Suite 변경

# 현재 Cipher Suite 확인
$ sudo ipmitool lan print

# Cipher 3만 활성화
$ sudo ipmitool lan set 1 cipher_privs XXXaXXXXXXXXXXX

# Cipher 3과 17 활성화
$ sudo ipmitool lan set 1 cipher_privs XXaXXXXXXXaXXXX

전원 제어

# 시스템 상태 확인
$ sudo ipmitool chassis status

# 전원 켜기
$ sudo ipmitool chassis power on

# 정상 종료
$ sudo ipmitool chassis power soft

# 즉시 전원 끄기
$ sudo ipmitool chassis power off

# 전원 사이클 (재부팅)
$ sudo ipmitool chassis power cycle

# 전원 복구 정책 설정
$ sudo ipmitool chassis policy always-on

# 다음 부팅 장치 설정
$ sudo ipmitool chassis bootdev pxe
$ sudo ipmitool chassis bootdev cdrom
$ sudo ipmitool chassis bootdev bios

센서 모니터링

# 모든 센서 목록
$ sudo ipmitool sdr list

# 센서 타입별 목록
$ sudo ipmitool sdr type Temperature
$ sudo ipmitool sdr type Fan
$ sudo ipmitool sdr type 'Power Supply'

# 상세 센서 정보
$ sudo ipmitool sensor

System Event Log (SEL)

# SEL 정보 확인
$ sudo ipmitool sel info

# SEL 목록
$ sudo ipmitool sel list

# 확장 목록
$ sudo ipmitool sel elist

# SEL 초기화
$ sudo ipmitool sel clear

Serial-over-LAN (SOL)

# SOL 활성화
$ sudo ipmitool sol activate

# SOL 비활성화
$ sudo ipmitool sol deactivate

# 재시도 간격 설정
$ sudo ipmitool sol set retry-interval value

사용자 관리

# 사용자 목록
$ sudo ipmitool user list 1

# 사용자 이름 설정
$ sudo ipmitool user set name 2 <New_Name>

# 비밀번호 설정
$ sudo ipmitool user set password 2 <New_Password>

# 익명 사용자 비밀번호 설정
$ sudo ipmitool lan set 1 password <New_Password>

# 사용자 삭제 (이름 비우기)
$ sudo ipmitool user set name <ID> ""

DCMI (Data Center Management Interface)

# 전력 정보 확인
$ sudo ipmitool dcmi power reading

# 전력 제한 확인
$ sudo ipmitool dcmi power get_limit

# 전력 제한 설정
$ sudo ipmitool dcmi power set_limit

ipmievd (IPMI Event Daemon)

# ipmievd 활성화
$ sudo systemctl enable ipmievd

# ipmievd 시작
$ sudo systemctl start ipmievd

# ipmievd 상태 확인
$ sudo systemctl status ipmievd

Configuration

# BMC 정보 확인
$ sudo ipmitool mc info

# BMC 리셋
$ sudo ipmitool mc reset [warm | cold]

# LAN 설정
$ sudo ipmitool lan set 1 ipaddr <BMC_IP>
$ sudo ipmitool lan set 1 netmask <Subnet_Mask>
$ sudo ipmitool lan set 1 defgw ipaddr <Gateway>

# Cipher Suite 설정 (Cipher 3만)
$ sudo ipmitool lan set 1 cipher_privs XXXaXXXXXXXXXXX

# 사용자 설정
$ sudo ipmitool user set name 2 admin
$ sudo ipmitool user set password 2 <Strong_Password>

Examples

Example 1: 원격 서버 전원 제어

# 원격 서버 상태 확인
$ sudo ipmitool -I lanplus -H <BMC_IP> -U <username> -P <password> chassis status

# 원격 서버 전원 켜기
$ sudo ipmitool -I lanplus -H <BMC_IP> -U <username> -P <password> chassis power on

# 원격 서버 전원 끄기
$ sudo ipmitool -I lanplus -H <BMC_IP> -U <username> -P <password> chassis power off

Example 2: 센서 모니터링

# 모든 센서 확인
$ sudo ipmitool sdr list

# 온도 센서만 확인
$ sudo ipmitool sdr type Temperature

# 상세 센서 정보
$ sudo ipmitool sensor

Best Practices

  • Cipher 0 비활성화 (인증 우회 방지)
  • Cipher 3 또는 17 사용 (권장)
  • 기본 비밀번호 반드시 변경
  • 고유한 강력한 비밀번호 사용
  • 익명 로그인 비활성화
  • 이름 없는 계정 비활성화
  • IPMI 트래픽 관리 VLAN으로 제한
  • ipmievd 활성화하여 이벤트 syslog 전송
  • 정기적인 SEL 확인

Limitations

  • IPMI v1.5는 보안 취약점 존재 (v2.0 권장)
  • Cipher 0 비활성화 시 구형 장치 호환성 문제
  • LAN 인터페이스 설정 오류 시 원격 관리 불가
  • BMC 리셋 시 일시적 관리 중단

References

Related Pages

Knowledge Graph

Related

→ BIOS → Server → OpenBMC → BMC

Redfish

Redfish는 IPMI의 차세대 관리 프로토콜. RESTful API 기반. JSON 데이터 형식.

# Redfish API 호출
curl -k -u admin:password https://bmc-ip/redfish/v1/Systems/1

# 시스템 상태 확인
curl -k -u admin:password https://bmc-ip/redfish/v1/Systems/1/Status

# 바이오스 설정 변경
curl -k -X PATCH -u admin:password \
  -H "Content-Type: application/json" \
  -d '{"ProcessorCoreCount": 16}' \
  https://bmc-ip/redfish/v1/Systems/1/Bios/Settings

OpenBMC

OpenBMC은 리눅스 기반 BMC 운영체제. Redfish API, Web UI, D-Bus 인터페이스 제공.

# OpenBMC D-Bus 인터페이스
busctl call org.openbmc.control.Host /org/openbmc/control/host0 org.openbmc.control.Host Start

# 바이오스 설정 (D-Bus)
busctl get-property org.openbmc.settings.Bios /org/openbmc/settings/Bios org.freedesktop.DBus.Properties Properties

# OpenBMC Web UI
https://bmc-ip (Redfish API + Web 인터페이스)