---
name: "ipmi_lan"
section: "5"
platform: "linux"
package: "openipmi"
version: "2.0.37-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ipmi_lan"
---

# ipmi\_lan(5)

IPMI LAN Interface config file

## NAME

ipmi/lan.conf - IPMI LAN Interface config file

## SYNOPSIS

**/etc/ipmi/lan.conf**

## DESCRIPTION

The **ipmi\_sim** and **ipmilan** commands are configured using this configuration file.

## CONFIGURATION ITEMS

The following fields are used in many commands:

*boolean* May be "**true**", "**false**", "**on**" or "**off**".

*priv* An IPMI privilege level.  This may be "**callback**", "**user**", "**operator**", or "**admin**".

*auth* An IPMI authorization type.  This may be "**none**" for no authentication, "**straight**" for straight, in-the-clear password authentication, "**md2**" for use MD2 message digest authentication, or "**md5**" for using MD5 message digest authentication.

## FILE STRUCTURE

Blank lines and lines starting with \`#' are ignored.

The following commands are allowed the configuration file:

- **name** *"name"*

  Set a name for the BMC.  This will control other things, like the default value of the ipmi\_sim startup command file and the place where persistent data is stored.

- **user** *usernum* *enabled* *username* *password* *max-priv* *max-session*

  *usernum* specifies the user number for the user.  Note that 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***.*

  *enabled* *is a boolean that specified whether the user is enabled or not.*

  *username* *specifies the name of the user, specified as a name.*

  *password* *specifies the password of the user, specified as a name.*

  *max-priv* *specifies the maximum privilege level allowed for the user.*

  *max.sessions* *specifies the maximum number of session the user may open.*

- **startcmd** *"cmd"*

  *specifies a command to execute when a power on is requested.  This 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, 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, a SIGTERM is sent* *to the process.  The SIGTERM is sent immediately if there is no* *connection.  If the process doesn't go way in another specified amount* *of time, a SIGKILL is sent.*

- **startnow***true\|false*

  *If true, start the startcmd at the startup of the simulator.  Otherwise* *wait until a poweron is issued.*

- **poweroff\_wait** *seconds*

  *specifies the amount of time to wait for the startcmd to 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 a SIGTERM kill on the* *process.  If this is zero, a SIGTERM will not be done (nor will a SIGKILL).* *Note that if the simulator does not have a connection to the VM, the* *graceful shutdown is skipped and a SIGTERM is done immediately.* *Default time is 60 seconds.*

- **kill\_wait** *seconds*

  *specifies the amount of time to wait for SIGTERM to kill the process.* *If the process does not terminate in this period of time, send a* *SIGKILL kill.  If this is zero, don't send the SIGKILL.  Default time* *is 20 seconds.*

- **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.  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 \[...\]\]\]*

  *channel* *specifies the channel number or type.  This may be* **kcs***,* **smic***, or* **bt** *or it may be 15.  Currently, only the system* *interface channel (channel 15) is supported for serial interfaces, if* *the others are specified it is channel 15 and the given interface is* *reported in channel configuration commands.*

  *addr* *specifies the IP address to listen on for connections.*

  *port* *specifies 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***, and* **VM***.* *The first three are implementations of IPMI serial interfaces on* *certain systems and might be used for simulations of that system.  The* **VM** *is probably the most interesting; it is designed to be used* *with a virtual machine like qemu.*

  *oem name* *specified implementation of some OEM custom commands and options* *on the interface.  Valid options oare* **PigeonPoint** *and* **Radisys***.*

  *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 interface 1 for the MC.*

  *device* *is 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 to qemu ports.*

  *default\_baud* *sets the initial default baud rate to use.  This is overriden by the* *persistent SOL settings.*

  *history* *creates a history device on SOL interface 2.  The size is the size of* *the buffer.  Data from the device is stored in the history buffer all* *the time.  Connecting to SOL interface 2 will cause the full history* *buffer to be dumped.  If* *backupfile* *is 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.*

  *historyfru* *makes 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* *qemu sessions and it will automatically reconnect.*

- **loadlib** *"module" \["options"\]*

  *Load the given shared object into the program.*

  *module* *is the full path to the module.  It must be in quotes.*

  *options* *is 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 when ipmi\_sim is 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 after ipmi\_sim has finished initializing.  This function is* *optional.*

*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.*

- **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 to* **endlan***, are LAN-specific commands listed below.* *channel* *specifies the channel to set the LAN configuration for.*

## LAN CONFIGURATION COMMANDS

*The following commands are only valid inside a* **startlen** *area.*

- **addr** *IP-address \[UDP-port\]*

  *IP-address* *specifies the IP address to use for an IP port. Up to 4 addresses may be* *specified.  If no address is specified, it defaults to one port at* **0.0.0.0** *(for every address on the machine) at port* **623***.*

  *UDP-port* *specifies an optional port to listen on. It defaults to* **623** *(the standard port).*

- **PEF\_alerting** *boolean*

  *Turn PEF alerting on or off (not currently supported).*

- **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 \[...\]\]\]*

  *auth* *specifies allowed authorization levels for the callback privilege level.  Only* *the levels specified on this line are allowed for the authorization* *level.  If this line is not present, callback authorization cannot be* *used.*

- **allowed\_auths\_user** *\[auth \[auth \[...\]\]\]*

  *auth* *specifies allowed authorization levels for the user privilege level.  Only* *the levels specified on this line are allowed for the authorization* *level.  If this line is not present, user authorization cannot be* *used.*

- **allowed\_auths\_operator** *\[auth \[auth \[...\]\]\]*

  *auth* *specifies allowed authorization levels for the operator privilege level.  Only* *the levels specified on this line are allowed for the authorization* *level.  If this line is not present, operator authorization cannot be* *used.*

- **allowed\_auths\_admin** *\[auth \[auth \[...\]\]\]*

  *auth* *specifies allowed authorization levels for the admin privilege level.  Only* *the levels specified on this line are allowed for the authorization* *level.  If this line is not present, user authorization cannot be* *used.*

- **guid** *name*

  *Allows the 16-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

[**ipmilan**(8)](/ipmilan/8.md),[**ipmi\_sim**(1)](/ipmi_sim/1.md)

## KNOWN PROBLEMS

*IPMI is unnecessarily complicated.*

## AUTHOR

*Corey Minyard \<cminyard@mvista.com\>*
