[
https://issues.apache.org/jira/browse/GUACAMOLE-2301?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18096889#comment-18096889
]
Nick Couchman commented on GUACAMOLE-2301:
------------------------------------------
Yeah, there are a couple places out there. If you look at [documentation for
Qemu|https://www.qemu.org/docs/master/system/qemu-manpage.html], for example,
you'll see:
{{-chardev socket,id=id[,TCP options or unix
options][,server=on|off][,wait=on|off][,telnet=on|off][,websocket=on|off][,reconnect-ms=milliseconds][,tls-creds=id][,tls-authz=id]}}
and
{{TCP options:
port=port[,host=host][,to=to][,ipv4=on|off][,ipv6=on|off][,nodelay=on|off]}}
So, you can specify a character devices something like this:
{{-chardev socket,id=serialsock,port=2323,host=guacd.example,com}}
Which would connect that character devices to port 2323 on guacd.example.com.
Presuming guacd supports listening for inbound serial connections, this would
connect the guacd serial port to Qemu for whatever purpose you've allocated it
- it could be the Qemu monitor function to manage the underlying VM, it could
be the Qemu console of the VM, or it could be passed through to the guest O/S
to use as a serial port.
VMware does something similar with serial ports on ESXi - you can use them in
either "server" mode, where the serial port waits on a TCP port or UNIX socket
for inbound connections, or you can start them in "client" mode, where ESXi
makes an outbound connect to the specified host + port combination when the VM
starts to start up a serial connection. And, similar to Qemu, you can use this
for things like guest O/S serial port where you have the underlying guest O/S
present a console on the serial device that could then be accessed by a guacd
connection.
> Add serial console protocol support
> -----------------------------------
>
> Key: GUACAMOLE-2301
> URL: https://issues.apache.org/jira/browse/GUACAMOLE-2301
> Project: Guacamole
> Issue Type: New Feature
> Components: guacamole-client, guacamole-manual, guacd
> Reporter: Ciro Iriarte
> Priority: Major
>
> Guacamole offers terminal protocols (SSH, Telnet) and, recently, IPMI
> Serial-over-LAN (GUACAMOLE-2300), but has no way to reach a plain *serial
> console* — the RS-232 console port of network switches, routers, firewalls,
> PDUs, and headless servers — which remains the primary out-of-band
> administration and disaster-recovery interface for that equipment.
> This proposes a new "serial" protocol module for guacd, with a matching
> connection form in guacamole-client and a chapter in guacamole-manual,
> mirroring the existing terminal protocols and reusing the shared terminal
> emulator (color schemes, fonts, scrollback, session recording, typescript,
> copy/paste).
> h3. Scope
> Two connection modes, selected by an explicit parameter:
> * *Local* — a serial device attached to the guacd host (e.g. /dev/ttyUSB0,
> /dev/serial/by-id/...), configured via termios: baud rate, data bits, parity,
> stop bits, and hardware/software flow control, with an optional server-side
> device allowlist.
> * *Network* — a serial port exposed over IP by ser2net
> (https://github.com/cminyard/ser2net), either as raw TCP or via RFC2217
> (Telnet COM-PORT-OPTION), the latter enabling negotiation of serial line
> settings and break signalling over the wire.
> h3. Notable features
> * Configurable *send-break* (break-duration) for password-recovery / ROMMON /
> U-Boot workflows, triggerable from the browser and via a client-agnostic
> control pipe.
> * *Paste pacing* (paste-delay) to avoid FIFO overrun when pasting
> configuration blocks at low baud without flow control.
> * Session recording / typescript for audit, read-only mode, and clipboard
> controls, inherited from the shared terminal.
> h3. Implementation status
> A working implementation exists across guacamole-server, guacamole-client,
> and guacamole-manual, building cleanly against apache/main; coordinated PRs
> to follow. USB/IP was evaluated and deliberately not integrated, as ser2net
> is the appropriate mechanism for remote serial access.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)