Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] RMCP+ support #30

Open
starbops opened this issue Oct 23, 2024 · 1 comment
Open

[FEATURE] RMCP+ support #30

starbops opened this issue Oct 23, 2024 · 1 comment
Labels
area/ipmi Front-end protocol related and it's IPMI help wanted Extra attention is needed kind/feature New feature proposed/asked

Comments

@starbops
Copy link
Owner

starbops commented Oct 23, 2024

Is your feature request related to a problem? Please describe.

Currently, for the IPMI-over-LAN functionality, KubeVirtBMC only supports RMCP. But nowadays the mainstream is RMCP+, which is with the IPMIv2.

# IPMI 2.0
$ ipmitool -I lanplus -U admin -P password -H  172.19.31.70 power status
Error: Unable to establish IPMI v2 / RMCP+ session

# IPMI 1.5
$ ipmitool -I lan -U admin -P password -H  172.19.31.70 power status
Chassis Power is on

For example, bmclib does not support IPMI v1.5 at all. The flag -I lanplus is hardcoded in every ipmitool commands executed: https://github.com/bmc-toolbox/bmclib/blob/8a5f5a1a243c8f6174bb139a45c6cba30dabff9c/internal/ipmi/ipmi.go#L77

On the other hand, Tinkerbell Rufio leverages bmclib to communicate with target machine's BMC. As a result, KubeVirtBMC does not play well with Rufio. You'll get something like the following when adding a new Machine object:

{"level":"info","controller":"machine","controllerGroup":"bmc.tinkerbell.org","controllerKind":"Machine","Machine":{"name":"machine-1","namespace":"tink-system"},"namespace":"tink-system","name":"machi
ne-1","reconcileID":"9e871bba-03b2-42f2-bdb9-99b36ef83783","host":"172.19.31.70","username":"admin","v":0,"logger":"controllers/Machine","error":"8 errors occurred:\n\t* provider: asrockrack: failed to
 login\n\t* provider: supermicro: 404: failed to login\n\t* provider: gofish: 404: 404 page not found\n\n\t* provider: dell: 404: 404 page not found\n\n\t* provider: openbmc: not an OpenBMC device\n\t*
 provider: ipmitool: Error: Unable to establish IPMI v2 / RMCP+ session: exit status 1\n\t* provider: IntelAMT: unable to perform digest auth with http://172.19.31.70:16992/wsman: Post \"http://172.19.
31.70:16992/wsman\": context deadline exceeded\n\t* no Opener implementations found\n\n","providersAttempted":["gofish","dell","openbmc","ipmitool","asrockrack","IntelAMT","supermicro"],"successfulProv
ider":[],"caller":"/workspace/controller/client.go:39","time":"2024-10-23T09:14:24Z","message":"Failed to open connection to BMC"}
{"level":"error","controller":"machine","controllerGroup":"bmc.tinkerbell.org","controllerKind":"Machine","Machine":{"name":"machine-1","namespace":"tink-system"},"namespace":"tink-system","name":"mach
ine-1","reconcileID":"9e871bba-03b2-42f2-bdb9-99b36ef83783","error":"failed to open connection to BMC: 8 errors occurred:\n\t* provider: asrockrack: failed to login\n\t* provider: supermicro: 404: fail
ed to login\n\t* provider: gofish: 404: 404 page not found\n\n\t* provider: dell: 404: 404 page not found\n\n\t* provider: openbmc: not an OpenBMC device\n\t* provider: ipmitool: Error: Unable to estab
lish IPMI v2 / RMCP+ session: exit status 1\n\t* provider: IntelAMT: unable to perform digest auth with http://172.19.31.70:16992/wsman: Post \"http://172.19.31.70:16992/wsman\": context deadline excee
ded\n\t* no Opener implementations found\n\n","logger":"controllers/Machine","host":"172.19.31.70","caller":"/workspace/controller/machine.go:121","time":"2024-10-23T09:14:24Z","message":"BMC connectio
n failed"}

Describe the solution you'd like

Support RMCP+ protocol.

Describe alternatives you've considered

We can propose support for IPMI 1.5 for those projects. However, we don't know whether they are willing to support it, a fairly old standard that has been proven insecure.

Additional context

N/A

@starbops starbops added kind/feature New feature proposed/asked area/ipmi Front-end protocol related and it's IPMI labels Oct 23, 2024
@starbops starbops added the help wanted Extra attention is needed label Nov 18, 2024
@starbops
Copy link
Owner Author

This project seems to support RMCP+ and might be worth looking at.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ipmi Front-end protocol related and it's IPMI help wanted Extra attention is needed kind/feature New feature proposed/asked
Projects
None yet
Development

No branches or pull requests

1 participant