Ciro Iriarte created GUACAMOLE-2300:
---------------------------------------
Summary: Add IPMI Serial-over-LAN (SOL) protocol support
Key: GUACAMOLE-2300
URL: https://issues.apache.org/jira/browse/GUACAMOLE-2300
Project: Guacamole
Issue Type: New Feature
Components: guacamole-manual, guacd, guacamole-client
Reporter: Ciro Iriarte
h2. Summary
Add native support for out-of-band server management over IPMI 2.0
Serial-over-LAN (SOL) as a first-class Guacamole protocol, alongside the
existing terminal protocols (SSH, telnet, Kubernetes). This provides a
browser-based BMC console and chassis control for physical servers —
the kind of access operators otherwise get only from a vendor tool
(Dell iDRAC, HPE iLO, Lenovo XCC) or {{ipmitool}}.
h2. Motivation
SOL exposes the host's serial console over the network via the BMC,
independent of the host OS and network stack. It is the standard way to:
* watch and interact with BIOS/UEFI POST, the bootloader, and early
kernel boot;
* recover a server that is hung, kernel-panicked, or off the network;
* perform power control (on/off/cycle/reset), NMI, chassis identify,
and read the System Event Log — all out of band.
Guacamole already brokers SSH/telnet/Kubernetes terminals; IPMI SOL is
the natural out-of-band complement, giving a single clientless gateway
for both in-band and lights-out access.
h2. Scope (three coordinated contributions)
* *guacd* — a new {{ipmi}} protocol module ({{libguac-client-ipmi}}):
** SOL console over FreeIPMI {{libipmiconsole}}, rendered in the standard
Guacamole terminal (copy/paste, recording, typescript, scrollback);
** chassis power/identify/boot-device/SEL over {{libfreeipmi}};
** RMCP+ cipher-suite selection, encryption policy, per-vendor workaround
flags, hex K_g BMC key, SOL payload instance, keepalive;
** an out-of-band {{ipmi-control}} pipe channel (newline-delimited JSON)
for client-agnostic status/control, plus an in-terminal (Ctrl+])
fallback menu.
* *guacamole-client* — {{ipmi}} connection form and a chassis-control
panel (power/identify/SEL/serial-break) with an always-visible SOL/power
status badge in the client view.
* *guacamole-manual* — a connection-parameter reference and a per-BMC
configuration guide (Supermicro, Lenovo XCC, Dell iDRAC).
h2. Dependencies
FreeIPMI ({{libipmiconsole}}, {{libfreeipmi}}) — optional at build time;
the module is only built when FreeIPMI development headers are present
(same pattern as other optional protocol dependencies).
h2. Testing
Validated end to end (browser -> guacd -> BMC) against Supermicro (ATEN),
Lenovo ThinkSystem XCC, and Dell iDRAC 9, covering SOL console I/O,
power status, chassis identify, and SEL retrieval, using cipher suites
3 and 17.
h2. Pull requests
Three coordinated pull requests will be submitted against {{main}}, each
referencing this issue:
* apache/guacamole-server — the {{ipmi}} protocol module
* apache/guacamole-client — connection form + chassis control panel
* apache/guacamole-manual — connection reference + BMC configuration guide
--
This message was sent by Atlassian Jira
(v8.20.10#820010)