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)

Reply via email to