ipmi_lan(5)
π ipmi_lan(5) π
okay bestie, welcome to the ipmi_lan(5) page, aka the manual for the IPMI LAN Interface config file. yes we're doing config file lore today. sit down, hydrate, let's go π«Ά
β¨ NAME β¨
ipmi/lan.conf β the IPMI LAN Interface config file. that's it, that's the name, short and iconic.
β¨ SYNOPSIS β¨
/etc/ipmi/lan.conf
like. that's where it lives. one path. slay.
β¨ DESCRIPTION β¨
so the ipmi_sim and ipmilan commands get configured using this configuration file. that's the whole vibe. they read this, they become who they are. main character energy fr.
β¨ CONFIGURATION ITEMS β¨
these are the little building blocks that show up all over the place in the commands below:
booleanβ can be"true","false","on"or"off". four whole ways to say yes or no, because of course πprivβ an IPMI privilege level. your options are"callback","user","operator", or"admin".authβ an IPMI authorization type. this one can be"none"(no authentication at all, living dangerously),"straight"(straight, in-the-clear password authentication, i.e. no encryption bestie, everyone can see),"md2"(uses MD2 message digest authentication), or"md5"(uses MD5 message digest authentication).
β¨ FILE STRUCTURE β¨
blank lines are ignored. lines starting with # are also ignored. so go ahead and leave yourself little notes, the parser does not care π
these are the commands allowed in the configuration file:
name "name"β sets a name for the BMC. and this is a big deal actually, because it controls other things, like the default value of theipmi_simstartup command file and the place where persistent data is stored. so like, name your BMC properly. it's its whole identity.user usernum enabled username password max-priv max-sessionβ sets up a user. breaking it down:usernumis the user number for the user. warning: user number 0 is invalid, and user number 1 is the special"anonymous"user, whose username is ignored. this value may be up to 63, the maximum possible IPMI user. if you want anonymous access, you must have a user number 1. no user 1, no anonymous. periodt.enabledis a boolean that specifies whether the user is enabled or not.usernamespecifies the name of the user, specified as a name.passwordspecifies the password of the user, specified as a name.max-privspecifies the maximum privilege level allowed for the user.max.sessionsspecifies the maximum number of session the user may open.
startcmd "cmd"β specifies a command to execute when a power on is requested. this is the good stuff: it lets a virtual machine be started that can then connect back to the simulator. the simulator does management of the process here, and the power on state of the process depends on if the process exists or not. if a poweroff is requested, and if the process is connected to a VM serial interface, a graceful shutdown is first requested. if the process does not terminate in a specified amount of time, aSIGTERMis sent to the process. theSIGTERMis sent immediately if there is no connection. and if the process doesn't go way in another specified amount of time, aSIGKILLis sent. yeah. it escalates. πstartnowtrue|falseβ if true, start thestartcmdat the startup of the simulator. otherwise wait until a poweron is issued.poweroff_wait secondsβ specifies the amount of time to wait for thestartcmdto do a graceful shutdown on a powerdown request. the simulator will send a request to the target, wait this amount of time, and then do aSIGTERMkill on the process. if this is zero, aSIGTERMwill not be done (nor will aSIGKILL). note that if the simulator does not have a connection to the VM, the graceful shutdown is skipped and aSIGTERMis done immediately. default time is60seconds.kill_wait secondsβ specifies the amount of time to wait forSIGTERMto kill the process. if the process does not terminate in this period of time, send aSIGKILLkill. if this is zero, don't send theSIGKILL. default time is20seconds.console address portβ specifies that a console port be opened at the given address and port. you can telnet to the console and execute emulation commands. π¨ but heads up bestie: note that this is a pretty huge security hole, it should only be used for debugging in a captive environment.serial channel addr port [option [option [...]]]β the whole serial interface situation:channelspecifies the channel number or type. this may bekcs,smic, orbtor it may be15. currently, only the system interface channel (channel15) is supported for serial interfaces, if the others are specified it is channel15and the given interface is reported in channel configuration commands.addrspecifies the IP address to listen on for connections.portspecifies the port to listen on for connections.
valid options are:
codec nameβ specifies which codec to use on the serial port. valid options are:TerminalMode,Direct,RadisysAscii, andVM. the first three are implementations of IPMI serial interfaces on certain systems and might be used for simulations of that system. theVMis probably the most interesting; it is designed to be used with a virtual machine likeqemu.oem nameβ specified implementation of some OEM custom commands and options on the interface. valid options oarePigeonPointandRadisys.attn c1[,c2[...]]β specifies a list of characters, separated by commas, to use as the attention character on the interface. generally the default is correct. the characters are specified as decimal, octal, or hex digits in C style.ipmb addrβ specifies the IPMI address of the interface. the default,0x20, is usually correct, but when emulating ATCA systems this might be required.
sol device default_baud [history=size[,backupfile=filename]] [historyfru=frunum]β allow a Serial Over LAN (SOL) connection to the given device. this will be over interface1for the MC.deviceis the full path to the device name. it can also be in the form"tcp:address:port"or"telnet:address:port"to do connections over tcp (without or with telnet processing). this is useful for providing SOL access toqemuports.default_baudsets the initial default baud rate to use. this is overriden by the persistent SOL settings.historycreates a history device on SOL interface2. the size is the size of the buffer. data from the device is stored in the history buffer all the time. connecting to SOL interface2will cause the full history buffer to be dumped. ifbackupfileis specified, then the history is made persistent. however, it is only stored when a catchable signal or normal shutdown is done, so a poweroff or fatal signal will cause the data to be lost. π your history is gone bestie.historyfrumakes the history available via the given FRU number on the MC.- > note that if the connection fails to come up, the simulator will continue to try to connect. this way you can fix UDP serial ports or
qemusessions and it will automatically reconnect. she's persistent, we love that πΈ
loadlib "module" ["options"]β load the given shared object into the program.moduleis the full path to the module. it must be in quotes.optionsis an optional string in quotes that passes options to the module. the contents of the string are not specified, the module defines that.
the module may have a number of functions that are called:
ipmi_sim_module_print_version(sys_data_t *sys, char *options)β is called whenipmi_simis started with the version print option. this way the versions of all loaded modules may be printed. the module should print it's version. you must provide this function.ipmi_sim_module_init(sys_data_t *sys, char *options)β is called after the configuration file is read and before any other initialization is done. the module should do most of its initialization here. you must provide this function.ipmi_sim_module_post_init(sys_data_t *sys)β is called afteripmi_simhas finished initializing. this function is optional.
also, sys parameter is used for most functions interfacing to the main ipmi_sim code, like logging, timers, and a few of the MC calls. the contents are opaque to the module. don't peek, it's not for you π
startlan channelβ starts a LAN configuration area. this specifies the settings for a LAN connection using the given channel. this may be specified more than once in a file to support multiple LAN connections. commands following this, up toendlan, are LAN-specific commands listed below.channelspecifies the channel to set the LAN configuration for.
π LAN CONFIGURATION COMMANDS π
these ones are only valid inside a startlen area. don't try them anywhere else, they will simply not vibe.
addr IP-address [UDP-port]βIP-addressspecifies the IP address to use for an IP port. up to4addresses may be specified. if no address is specified, it defaults to one port at0.0.0.0(for every address on the machine) at port623.UDP-portspecifies an optional port to listen on. it defaults to623(the standard port).
PEF_alerting booleanβ turn PEF alerting on or off (not currently supported). rip.per_msg_auth booleanβ turn per-message authentication on or off.priv_limit privβ the maximum privilege allowed on this interface.allowed_auths_callback [auth [auth [...]]]βauthspecifies allowed authorization levels for thecallbackprivilege level. only the levels specified on this line are allowed for the authorization level. if this line is not present,callbackauthorization cannot be used.allowed_auths_user [auth [auth [...]]]βauthspecifies allowed authorization levels for theuserprivilege level. only the levels specified on this line are allowed for the authorization level. if this line is not present,userauthorization cannot be used.allowed_auths_operator [auth [auth [...]]]βauthspecifies allowed authorization levels for theoperatorprivilege level. only the levels specified on this line are allowed for the authorization level. if this line is not present,operatorauthorization cannot be used.allowed_auths_admin [auth [auth [...]]]βauthspecifies allowed authorization levels for theadminprivilege level. only the levels specified on this line are allowed for the authorization level. if this line is not present,userauthorization cannot be used.guid nameβ allows the16-byte GUID for the IPMI LAN connection to be specified. if this is not specified, then the GUID command is not supported.
β¨ FILES β¨
/etc/ipmi_lan.conf
β¨ SEE ALSO β¨
go read those too, they're the sequel bestie π¦
π KNOWN PROBLEMS π
IPMI is unnecessarily complicated.
that's it. that's the known problem. no further notes. and honestly? real.
π AUTHOR π
Corey Minyard <cminyard@mvista.com>
and that's the whole page bestie!! you read the entire thing, i'm so proud of you π₯Ήβ¨ this was ipmi_lan(5) from the OpenIPMI era, dated 06/26/12 β go forth and configure your LAN with confidence, and remember: no cap, the attention characters are probably already correct. bye!! ππ
π
π¦ where this page comes from
- alpine 3.24: openipmi-doc 2.0.36-r1 Β· LGPL-2.0-or-later and GPL-2.0-or-later or BSD-3-Clause
- arch rolling: openipmi 2.0.37-4 Β· LGPL2.1
- centos-stream 10: OpenIPMI-lanserv 2.0.36-3.el10 Β· LGPL-2.1-or-later AND GPL-2.0-or-later OR BSD-3-Clause
- centos-stream 9: OpenIPMI-lanserv 2.0.36-1.el9 Β· LGPLv2+ and GPLv2+ or BSD
- centos-stream 9: OpenIPMI-lanserv 2.0.36-1.el9 Β· LGPLv2+ and GPLv2+ or BSD
- debian bookworm: openipmi 2.0.33-1+b1 Β· LGPL
- debian trixie: openipmi 2.0.37-1 Β· LGPL-2.0-only
- fedora 43: OpenIPMI-lanserv 2.0.36-3.fc43 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- fedora 43: OpenIPMI-lanserv 2.0.36-3.fc43 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- fedora 44: OpenIPMI-lanserv 2.0.36-7.fc44 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- fedora 44: OpenIPMI-lanserv 2.0.36-7.fc44 Β· LGPL-2.1-or-later and GPL-2.0-or-later or BSD-3-Clause
- nixpkgs unstable: OpenIPMI 2.0.37
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- opensuse-leap 16.0: OpenIPMI 2.0.36.56+git.0a3a991-160000.3.1 Β· LGPL-2.1-or-later
- ubuntu jammy: openipmi 2.0.29-0.1ubuntu6 Β· LGPL
- ubuntu noble: openipmi 2.0.33-1.1build3 Β· LGPL
- ubuntu questing: openipmi 2.0.37-1
- ubuntu resolute: openipmi 2.0.37-1build1 Β· LGPL-2.0-only
- ubuntu stonking: openipmi 2.0.37-1ubuntu3 Β· LGPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms