ipmipower(8)


NAME

   ipmipower - IPMI power control utility

SYNOPSIS

   ipmipower [OPTION...]

DESCRIPTION

   ipmipower  allows  users  to remotely power on, off, cycle, hard reset,
   get a power status query, perform  a  pulse  diagnostic  interrupt,  or
   initiate  a  soft-shutdown of the OS via ACPI through the IPMI over LAN
   protocol.

   When a power command (--on, --off, --cycle, --reset,  --stat,  --pulse,
   or  --soft) is specified on the command line, ipmipower will attempt to
   run the power command on all hostnames listed on the command line  then
   exit.

   If  no power commands are specified on the command line, ipmipower will
   run in interactive mode. Interactive mode gives the user a command line
   interface to enter various commands. Details of the interactive command
   line interface can be found below under INTERACTIVE COMMANDS.

   Listed below are general IPMI options, tool specific  options,  trouble
   shooting  information,  workaround  information,  examples,  and  known
   issues. For a general introduction to FreeIPMI please see freeipmi(7).

GENERAL OPTIONS

   The  following  options  are  general  options  for  configuring   IPMI
   communication and executing general tool commands.

   -D IPMIDRIVER, --driver-type=IPMIDRIVER
          Specify  the  driver  type  to  use  instead  of  doing  an auto
          selection.  The currently available outofband  drivers  are  LAN
          and LAN_2_0, which perform IPMI 1.5 and IPMI 2.0 respectively.

   -h                                             IPMIHOST1,IPMIHOST2,...,
   --hostname=IPMIHOST1[:PORT],IPMIHOST2[:PORT],...
          Specify  the  remote  host(s)  to  communicate  with.   Multiple
          hostnames  may  be  separated  by comma or may be specified in a
          range format; see HOSTRANGED SUPPORT below. An optional port can
          be  specified  with  each  host,  which  may  be  useful in port
          forwarding or similar situations.

   -u USERNAME, --username=USERNAME
          Specify the username to use when authenticating with the  remote
          host.   If  not  specified,  a null (i.e. anonymous) username is
          assumed. The user must have atleast OPERATOR privileges  to  run
          the  --on,  --off,  --reset,  --cycle,  --pulse, or --soft power
          control commands. The user must have atleast USER privileges  to
          determine the power status of the machine through --stat.

   -p PASSWORD, --password=PASSWORD
          Specify the password to use when authenticationg with the remote
          host.  If not specified, a null  password  is  assumed.  Maximum
          password length is 16 for IPMI 1.5 and 20 for IPMI 2.0.

   -P, --password-prompt
          Prompt  for  password  to  avoid  possibility  of  listing it in
          process lists.

   -k K_G, --k-g=K_G
          Specify the K_g BMC key to  use  when  authenticating  with  the
          remote  host  for  IPMI  2.0.  If  not  specified, a null key is
          assumed. To input the key in hexadecimal form, prefix the string
          with  '0x'.  E.g.,  the key 'abc' can be entered with the either
          the string 'abc' or the string '0x616263'

   -K, --k-g-prompt
          Prompt for k-g to avoid possibility of  listing  it  in  process
          lists.

   --session-timeout=MILLISECONDS
          Specify  the  session timeout in milliseconds. Defaults to 20000
          milliseconds (20 seconds) if not specified.

   --retransmission-timeout=MILLISECONDS
          Specify  the  packet  retransmission  timeout  in  milliseconds.
          Defaults to 400 milliseconds (0.4 seconds) if not specified.

   -a AUTHENTICATION-TYPE, --authentication-type=AUTHENTICATION-TYPE
          Specify  the  IPMI 1.5 authentication type to use. The currently
          available authentication types are NONE,  STRAIGHT_PASSWORD_KEY,
          MD2, and MD5. Defaults to MD5 if not specified.

   -I CIPHER-SUITE-ID, --cipher-suite-id=CIPHER-SUITE-ID
          Specify the IPMI 2.0 cipher suite ID to use. The Cipher Suite ID
          identifies   a   set   of   authentication,    integrity,    and
          confidentiality  algorithms  to  use for IPMI 2.0 communication.
          The authentication algorithm identifies the algorithm to use for
          session  setup, the integrity algorithm identifies the algorithm
          to use for session packet signatures,  and  the  confidentiality
          algorithm   identifies   the   algorithm   to  use  for  payload
          encryption. Defaults to cipher suite ID 3 if not specified.  The
          following cipher suite ids are currently supported:

          0 - Authentication Algorithm = None; Integrity Algorithm = None;
          Confidentiality Algorithm = None

          1 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm  =
          None; Confidentiality Algorithm = None

          2  - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm =
          HMAC-SHA1-96; Confidentiality Algorithm = None

          3 - Authentication Algorithm = HMAC-SHA1; Integrity Algorithm  =
          HMAC-SHA1-96; Confidentiality Algorithm = AES-CBC-128

          6  -  Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
          None; Confidentiality Algorithm = None

          7 - Authentication Algorithm = HMAC-MD5; Integrity  Algorithm  =
          HMAC-MD5-128; Confidentiality Algorithm = None

          8  -  Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
          HMAC-MD5-128; Confidentiality Algorithm = AES-CBC-128

          11 - Authentication Algorithm = HMAC-MD5; Integrity Algorithm  =
          MD5-128; Confidentiality Algorithm = None

          12  - Authentication Algorithm = HMAC-MD5; Integrity Algorithm =
          MD5-128; Confidentiality Algorithm = AES-CBC-128

          15 - Authentication Algorithm = HMAC-SHA256; Integrity Algorithm
          = None; Confidentiality Algorithm = None

          16 - Authentication Algorithm = HMAC-SHA256; Integrity Algorithm
          = HMAC_SHA256_128; Confidentiality Algorithm = None

          17 - Authentication Algorithm = HMAC-SHA256; Integrity Algorithm
          = HMAC_SHA256_128; Confidentiality Algorithm = AES-CBC-128

   -l PRIVILEGE-LEVEL, --privilege-level=PRIVILEGE-LEVEL
          Specify  the privilege level to be used. The currently available
          privilege levels are USER,  OPERATOR,  and  ADMIN.  Defaults  to
          OPERATOR if not specified.

   --config-file=FILE
          Specify an alternate configuration file.

   -W WORKAROUNDS, --workaround-flags=WORKAROUNDS
          Specify   workarounds  to  vendor  compliance  issues.  Multiple
          workarounds can be specified  separated  by  commas.  A  special
          command  line  flag of "none", will indicate no workarounds (may
          be useful for overriding configured defaults).  See  WORKAROUNDS
          below for a list of available workarounds.

   --debug
          Turn on debugging.

   -?, --help
          Output a help list and exit.

   --usage
          Output a usage message and exit.

   -V, --version
          Output the program version and exit.

IPMIPOWER OPTIONS

   The following options are specific to ipmipower.

   -n, --on
          Power on the target hosts.

   -f, --off
          Power off the target hosts.

   -c, --cycle
          Power cycle the target hosts.

   -r, --reset
          Reset the target hosts.

   -s, --stat
          Get power status of the target hosts.

   --pulse
          Send power diagnostic interrupt to target hosts.

   --soft Initiate a soft-shutdown of the OS via ACPI.

   --on-if-off
          The  IPMI specification does not require the power cycle or hard
          reset commands to turn on a machine that  is  currently  powered
          off.  This  option  will  force  ipmipower  to  issue a power on
          command instead of a power cycle or hard reset  command  if  the
          remote machine's power is currently off.

   --wait-until-on
          The  IPMI specification allows power on commands to return prior
          to the power on actually taking place. This  option  will  force
          ipmipower  to  regularly  query  the  remote BMC and return only
          after the machine has powered on.

   --wait-until-off
          The IPMI specification allows power off commands to return prior
          the  power  off  actually  taking  place. This option will force
          ipmipower to regularly query the  remote  BMC  and  return  only
          after the machine has powered off.

   --oem-power-type=OEM-POWER-TYPE
          This   option   informs  ipmipower  to  initiate  power  control
          operations via an IPMI OEM specific power control extension. The
          currently  available  POWERTYPEs  are NONE and C410X. Please see
          OEM POWER EXTENSIONS below for additional information.

IPMIPOWER ADVANCED NETWORK OPTIONS

   The following options are used to change  the  networking  behavior  of
   ipmipower.

   --retransmission-wait-timeout=MILLISECONDS
          Specify  the retransmission wait timeout length in milliseconds.
          The retransmission wait timeout is similar to the retransmission
          timeout  above,  but  is  used specifically for power completion
          verification  with  the  --wait-until-on  and   --wait-until-off
          options.  Defaults to 500 milliseconds (0.5 seconds).

   --retransmission-backoff-count=COUNT
          Specify  the  retransmission  backoff count for retransmissions.
          After ever COUNT  retransmissions,  the  retransmission  timeout
          length will be increased by another factor. Defaults to 8.

   --ping-interval=MILLISECONDS
          Specify  the  ping interval length in milliseconds. When running
          in interactive mode, RMCP (Remote Management  Control  Protocol)
          discovery  messages  will be sent to all configured remote hosts
          every MILLISECONDS to  confirm  their  support  of  IPMI.  Power
          commands cannot be sent to a host until it is discovered (or re-
          discovered if previously lost). Defaults to 5000 milliseconds (5
          seconds).  Ping  discovery  messages  can be disabled by setting
          this valu to 0. RMCP ping discovery messages  are  automatically
          disabled in non-interactive mode.

   --ping-timeout=MILLISECONDS
          Specify the ping timeout length in milliseconds. When running in
          interactive mode,  RMCP  (Remote  Management  Control  Protocol)
          messages  discovery  will be sent to all configured remote hosts
          to confirm their support of IPMI. A remote  host  is  considered
          undiscovered  if the host does not respond in MILLISECONDS time.
          Defaults to 30000 milliseconds (30 seconds).  The  ping  timeout
          cannot be larger than the ping interval.

   --ping-packet-count=COUNT
          Specify  the  ping  packet  count  size. Defaults to 10. See the
          --ping-percent-fR option below  for  more  information  on  this
          option.

   --ping-percent=PERCENT
          Specify  the  ping percent value. Defaults to 50.  Since IPMI is
          based on UDP, it  is  difficult  for  ipmipower  to  distinguish
          between  a missing machine and a bad (or heavily loaded) network
          connection in interactive  mode.  when  running  in  interactive
          mode.  For example, suppose a link consistently drops 80% of the
          packets to a particular machine. The power control operation may
          have difficulty completing, although a recent pong response from
          RMCP makes ipmipower believe the machine is up  and  functioning
          properly.   The  ping packet acount and percent options are used
          to alleviate this problem.  Ipmipower  will  monitor  RMCP  ping
          packets  in packet count chunks. If ipmipower does not receive a
          response  to  greater  than  ping  percent  of  those   packets,
          ipmipower  will assume the link to this node is bad and will not
          send power control operations to that node until the  connection
          is  determined to be reliable. This heuristic can be disabled by
          setting either the ping packet count or ping percent to 0.  This
          feature is not used if ping interval is set to 0.

   --ping-consec-count=COUNT
          Specify  the  ping  consecutive count. This is another heuristic
          used to determine if a node  should  be  considered  discovered,
          undiscovered,  or  with  a  bad connection. If a valid RMCP pong
          response was received for the last COUNT ping  packets,  a  node
          will  be  considered  discovered, regardless of other heuristics
          listed above. Defaults to 5. This heuristic can be  disabled  by
          setting  this value to 0. This feature is not used if other ping
          features described above are disabled.

HOSTRANGED OPTIONS

   The following options  manipulate  hostranged  output.  See  HOSTRANGED
   SUPPORT below for additional information on hostranges.

   -B, --buffer-output
          Buffer  hostranged output. For each node, buffer standard output
          until the node has completed its IPMI operation. When specifying
          this  option, data may appear to output slower to the user since
          the the entire IPMI operation must complete before any data  can
          be   output.    See  HOSTRANGED  SUPPORT  below  for  additional
          information.

   -C, --consolidate-output
          Consolidate hostranged output. The complete standard output from
          every  node  specified  will  be consolidated so that nodes with
          identical output are not output twice. A header will list  those
          nodes   with  the  consolidated  output.  When  this  option  is
          specified, no output can be seen until the  IPMI  operations  to
          all  nodes  has completed. If the user breaks out of the program
          early, all currently consolidated output  will  be  dumped.  See
          HOSTRANGED SUPPORT below for additional information.

   -F NUM, --fanout=NUM
          Specify  multiple  host  fanout. Indicates the maximum number of
          power control operations that can be executed in parallel.

   -E, --eliminate
          Eliminate hosts determined as undetected  by  ipmidetect.   This
          attempts  to  remove  the  common  issue of hostranged execution
          timing out due to several nodes being removed from service in  a
          large  cluster.  The  ipmidetectd  daemon must be running on the
          node executing the command.

   --always-prefix
          Always prefix output, even if only  one  host  is  specified  or
          communicating  in-band.  This  option  is  primarily  useful for
          scripting purposes. Option will be ignored if specified with the
          -C option.

INTERACTIVE COMMANDS

   ipmipower provides the following interactive commands at the ipmipower>
   prompt.  Before any power commands (on, off, cycle, reset, stat, pulse,
   or  soft)  can  be  used,  hostnames must be configured into ipmipower,
   either through the command prompt or the hostname  command  below.  The
   parameters  and  options to the commands below mirror their appropriate
   command line options.

   hostname [IPMIHOST(s)]
          Specify a new set of hosts. No input to unconfigure all hosts.

   username [USERNAME]
          Specify a new username. No input for null username.

   password [PASSWORD]
          Specify a new password. No input for null password.

   k_g [K_G]
          Specify a new K_g BMC Key. No input for null  key.  Prefix  with
          '0x' to enter a key in hexadecimal

   ipmi-version IPMIVERSION
          Specify the ipmi version to use.

   session-timeout MILLISECONDS
          Specify a new session timeout length.

   retransmission-timeout MILLISECONDS
          Specify a new retransmiision timeout length.

   authentication-type AUTHENTICATION-TYPE
          Specify the authentication type to use.

   cipher-suite-id CIPHER-SUITE-ID
          Specify the cipher suite id to use.

   privilege-level PRIVILEGE-LEVEL
          Specify the privilege level to use.

   workaround-flags WORKAROUNDS
          Specify workaround flags.

   debug [on|off]
          Toggle debug output.

   on [IPMIHOST(s)]
          Turn on all configured hosts or specified hosts.

   off [IPMIHOST(s)]
          Turn off all configured hosts or specified hosts.

   cycle [IPMIHOST(s)]
          Power cycle all configured hosts or specified hosts.

   reset [IPMIHOST(s)]
          Reset all configured hosts or specified hosts.

   stat [IPMIHOST(s)]
          Query power status for all configured hosts or specified hosts.

   pulse [IPMIHOST(s)]
          Pulse  diagnostic  interrupt  all  configured hosts or specified
          hosts.

   soft [IPMIHOST(s)]
          Initiate a soft-shutdown for all configured hosts  or  specified
          hosts.

   identify-on [IPMIHOST(s)]
          Turn on physical system identification.

   identify-off [IPMIHOST(s)]
          Turn off physical system identification.

   identify-status [IPMIHOST(s)]
          Query physical system identification status.

   on-if-off [on|off]
          Toggle on-if-off functionality.

   wait-until-on [on|off]
          Toggle wait-until-on functionality.

   wait-until-off [on|off]
          Toggle wait-until-off functionality.

   retransmission-wait-timeout MILLISECONDS
          Specify a new retransmission wait timeout length.

   retransmission-backoff-count COUNT
          Specify a new retransmission backoff count.

   ping-interval MILLISECONDS
          Specify a new ping interval length.

   ping-timeout MILLISECONDS
          Specify a new ping timeout length.

   ping-packet-count COUNT
          Specify a new ping packet count.

   ping-percent PERCENT
          Specify a new ping percent.

   ping-consec-count COUNT
          Specify a new ping consec count.

   buffer-output [on|off]
          Toggle buffer-output functionality.

   consolidate-output [on|off]
          Toggle consolidate-output functionality.

   fanout COUNT
          Specify a fanout.

   always-prefix [on|off]
          Toggle always-prefix functionality.

   help   Output help menu.

   version
          Output version.

   config Output the current configuration.

   quit   Quit program.  ipmipower.

OEM POWER EXTENSIONS

   Some  motherboards  include  IPMI  OEM  extensions  for alternate power
   control mechanisms. For example, these  power  control  mechanisms  may
   allow  you  to power control a sub-device within the system rather than
   the entire system itself.

   By specifying an OEM power type via  --oem-power-type  on  the  command
   line  or  freeipmi.conf(5),  you  can  instruct  ipmipower  to  execute
   alternate  power  control  implementations  over  the  standard   ones.
   Depending  on  the  OEM  extension,  some power control commands may no
   longer be available. For example, an OEM extension may allow on but not
   cycle. Specific ipmipower options may not longer function either.

   Some  OEM  extensions  may require additional arguments for their power
   control action, such as a sub-device identifier.  Additional  arguments
   can  be  provided  by  appending  a  plus  sign  ('+')  and  the  extra
   information to the end of the hostname. This can be done on the command
   line  or in interactive mode. For example, the hostname mynode+18 would
   indicate the power control operation should be sent to the host mynode,
   and  18  is  the  identifier  of  a  possible  sub-device  to  be power
   controlled. The --consolidate-output option is commonly  disabled  when
   using an OEM power control that requires extra arguments.

   Because  OEM  power control may involve subtypes, it is possible a user
   may wish to power control multiple sub-devices on the  same  host.  For
   example,  you  might specify the hosts mynode+1,mynode+2, indicating to
   power control subdevice 1 and 2 on mynode.  Because  many  BMCs  cannot
   handle  multiple  IPMI  sessions,  power control operations to the same
   host will be serialized internally by ipmipower.

   The following are the current OEM power  types  available,  along  with
   information  on  the  systems  they  work  with  and  the power control
   operations available.

   C410X  This OEM power type supports the power control of PCIe slots  on
          Dell Poweredge C410x systems. It supports on, off, and stat. The
          PCIe slot number ranges from 1-16 and must always  be  specified
          when  attempting  to  power  control  with  this  extension. For
          example, the hostname mynode+2 would inform ipmipower to operate
          on  slot  number  2  on  mynode.   The  C410x  appears  to  have
          difficulty handling new slot power control requests until  prior
          ones  have  completed. Users may wish to strongly consider using
          the --wait-until-on and  --wait-until-off  options  if  multiple
          slots will be power controlled in short succession.

   NONE   This informs ipmipower that no OEM power type extension is to be
          used and standard IPMI  power  control  is  used.  This  is  the
          default.

HOSTRANGED SUPPORT

   Multiple hosts can be input either as an explicit comma separated lists
   of hosts or a range of hostnames in  the  general  form:  prefix[n-m,l-
   k,...],  where  n  <  m  and  l  < k, etc. The later form should not be
   confused with regular expression character  classes  (also  denoted  by
   []).  For  example, foo[19] does not represent foo1 or foo9, but rather
   represents a degenerate range: foo19.

   This range syntax is meant only as a convenience  on  clusters  with  a
   prefixNN  naming  convention  and specification of ranges should not be
   considered necessary -- the list foo1,foo9 could be specified as  such,
   or by the range foo[1,9].

   Some examples of range usage follow:
       foo[01-05] instead of foo01,foo02,foo03,foo04,foo05
       foo[7,9-10] instead of foo7,foo9,foo10
       foo[0-3] instead of foo0,foo1,foo2,foo3

   As a reminder to the reader, some shells will interpret brackets ([ and
   ]) for pattern matching. Depending on your shell, it may  be  necessary
   to enclose ranged lists within quotes.

   When multiple hosts are specified by the user, a socket will be created
   for each host and polled on, effectively allowing communication to  all
   hosts  in  parallel.  This will allow communication to large numbers of
   nodes far more quickly than if done  in  serial.   The  -F  option  can
   configure the number of nodes that can be communicated with in parallel
   at the same time.

   By default, standard output from each node  specified  will  be  output
   with  the  hostname  prepended  to  each  line. Although this output is
   readable in many situations, it may  be  difficult  to  read  in  other
   situations.  For  example,  output  from  multiple  nodes  may be mixed
   together. The -B and -C options can be used to change this default.

EXAMPLES

   Determine the power status of foo[0-2] with null username and password
           ipmipower -h foo[0-2] --stat

   Determine the power status  of  foo[0-2]  with  non-null  username  and
   password
           ipmipower -h foo[0-2] -u foo -p bar --stat

   Hard reset nodes foo[0-2] with non-null username and password
           ipmipower -h foo[0-2] -u foo -p bar --reset

GENERAL TROUBLESHOOTING

   Most often, IPMI problems are due to configuration problems.

   IPMI  over  LAN  problems  involve  a  misconfiguration  of  the remote
   machine's BMC.  Double check to make sure the following are  configured
   properly  in  the remote machine's BMC: IP address, MAC address, subnet
   mask,  username,  user  enablement,  user  privilege,   password,   LAN
   privilege, LAN enablement, and allowed authentication type(s). For IPMI
   2.0  connections,  double  check  to  make  sure   the   cipher   suite
   privilege(s)  and  K_g  key are configured properly. The ipmi-config(8)
   tool can be used to check and/or change these configuration settings.

   In addition to the troubleshooting tips below, please  see  WORKAROUNDS
   below  to  also  if  there  are any vendor specific bugs that have been
   discovered and worked around.

   Listed below are many of the common issues  for  error  messages.   For
   additional  support, please e-mail the <freeipmi-users@gnu.org> mailing
   list.

   "username invalid" - The username entered (or a NULL username  if  none
   was  entered)  is  not  available on the remote machine. It may also be
   possible the remote BMC's username configuration is incorrect.

   "password invalid" - The password entered (or a NULL password  if  none
   was  entered)  is not correct. It may also be possible the password for
   the user is not correctly configured on the remote BMC.

   "password verification timeout" - Password verification has timed  out.
   A  "password  invalid"  error  (described  above) or a generic "session
   timeout" (described below) occurred.  During this point in the protocol
   it cannot be differentiated which occurred.

   "k_g  invalid"  -  The  K_g  key entered (or a NULL K_g key if none was
   entered) is not correct. It may also be possible the  K_g  key  is  not
   correctly configured on the remote BMC.

   "privilege level insufficient" - An IPMI command requires a higher user
   privilege than the one authenticated with. Please try  to  authenticate
   with a higher privilege. This may require authenticating to a different
   user which has a higher maximum privilege.

   "privilege level cannot be obtained for  this  user"  -  The  privilege
   level  you  are  attempting  to  authenticate  with  is higher than the
   maximum allowed for this user. Please try again with a lower privilege.
   It  may also be possible the maximum privilege level allowed for a user
   is not configured properly on the remote BMC.

   "authentication type unavailable for attempted privilege level"  -  The
   authentication  type you wish to authenticate with is not available for
   this privilege level. Please try again with an alternate authentication
   type  or  alternate  privilege  level.  It  may  also  be  possible the
   available authentication  types  you  can  authenticate  with  are  not
   correctly configured on the remote BMC.

   "cipher  suite  id  unavailable"  -  The  cipher  suite  id you wish to
   authenticate with is not available on the remote BMC. Please try  again
   with  an  alternate  cipher  suite  id.  It  may  also  be possible the
   available cipher suite ids are not correctly configured on  the  remote
   BMC.

   "ipmi  2.0  unavailable"  -  IPMI  2.0 was not discovered on the remote
   machine. Please try to use IPMI 1.5 instead.

   "connection timeout" - Initial IPMI communication failed. A  number  of
   potential errors are possible, including an invalid hostname specified,
   an IPMI IP address cannot be resolved,  IPMI  is  not  enabled  on  the
   remote  server,  the  network  connection  is  bad,  etc. Please verify
   configuration and connectivity.

   "session timeout" - The IPMI session has timed out.  Please  reconnect.
   If this error occurs often, you may wish to increase the retransmission
   timeout. Some remote BMCs are considerably slower than others.

   "internal IPMI error" - An IPMI error has occurred that  FreeIPMI  does
   not  know  how  to  handle.  Please  e-mail <freeipmi-users@gnu.org> to
   report the issue.

IPMIPOWER TROUBLESHOOTING

   When powering on a powered off machine, the client must have a means by
   which to resolve the MAC address of the remote machine's ethernet card.
   While most modern IPMI solutions support the ability to ARP and resolve
   addresses  when the machine is powered off, some older machines do not.
   This is typically solved in one of two ways:

   1) Enable gratuitous ARPs on the remote  machine.  The  remote  machine
   will  send  out  a gratuitous ARP, which advertises the ethernet IP and
   MAC address so that other machines  on  the  network  this  information
   their  local  ARP  cache.  For  large  clusters,  this  method  is  not
   recommended  since  gratuitous  ARPs  can  flood   the   network   with
   unnecessary traffic.

   2)  Permanently store the remote machine's MAC address in the local ARP
   cache. This is the more common approach on large clusters.

   Other methods are listed in the IPMI specification.

WORKAROUNDS

   With so many different vendors implementing their own  IPMI  solutions,
   different  vendors  may implement their IPMI protocols incorrectly. The
   following describes a number  of  workarounds  currently  available  to
   handle  discovered  compliance  issues. When possible, workarounds have
   been implemented so they will be transparent to the user. However, some
   will  require  the  user  to  specify  a  workaround be used via the -W
   option.

   The hardware listed below may only indicate the hardware that a problem
   was  discovered  on.  Newer  versions  of hardware may fix the problems
   indicated below. Similar machines from vendors may or may  not  exhibit
   the  same  problems.  Different vendors may license their firmware from
   the same IPMI firmware developer,  so  it  may  be  worthwhile  to  try
   workarounds listed below even if your motherboard is not listed.

   If  you  believe  your hardware has an additional compliance issue that
   needs a workaround to  be  implemented,  please  contact  the  FreeIPMI
   maintainers on <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.

   authcap  -  This  workaround  flag  will skip early checks for username
   capabilities, authentication capabilities, and K_g  support  and  allow
   IPMI  authentication  to  succeed.  It  works around multiple issues in
   which the remote system does not properly report username capabilities,
   authentication  capabilities,  or  K_g status. Those hitting this issue
   may  see  "username  invalid",  "authentication  type  unavailable  for
   attempted privilege level", or "k_g invalid" errors.  Issue observed on
   Asus  P5M2/P5MT-R/RS162-E4/RX4,  Intel  SR1520ML/X38ML,  and  Sun  Fire
   2200/4150/4450 with ELOM.

   nochecksumcheck  - This workaround flag will tell FreeIPMI to not check
   the checksums returned from IPMI command  responses.  It  works  around
   systems that return invalid checksums due to implementation errors, but
   the packet is otherwise valid. Users are cautioned on the use  of  this
   option,  as  it  removes  validation of packet integrity in a number of
   circumstances.  However,  it  is  unlikely  to  be  an  issue  in  most
   situations.  Those  hitting  this  issue  may see "connection timeout",
   "session timeout", or "password verification timeout" errors.  On  IPMI
   1.5  connections, the "noauthcodecheck" workaround may also needed too.
   Issue  observed  on  Supermicro  X9SCM-iiF,  Supermicro  X9DRi-F,   and
   Supermicro X9DRFR.

   idzero  -  This  workaround  flag  will  allow  empty session IDs to be
   accepted by the client. It works around IPMI sessions that report empty
   session  IDs  to  the client. Those hitting this issue may see "session
   timeout" errors. Issue observed on Tyan S2882 with M3289 BMC.

   unexpectedauth - This workaround flag will  allow  unexpected  non-null
   authcodes  to  be checked as though they were expected. It works around
   an issue when packets contain non-null authentication  data  when  they
   should  be  null  due  to  disabled  per-message  authentication. Those
   hitting this issue may see "session timeout" errors. Issue observed  on
   Dell PowerEdge 2850,SC1425. Confirmed fixed on newer firmware.

   forcepermsg   -   This   workaround   flag   will   force   per-message
   authentication to be used no matter what is advertised  by  the  remote
   system.  It  works  around  an issue when per-message authentication is
   advertised as disabled  on  the  remote  system,  but  it  is  actually
   required  for  the  protocol. Those hitting this issue may see "session
   timeout" errors.  Issue observed on IBM eServer 325.

   endianseq - This workaround flag will flip the endian  of  the  session
   sequence  numbers  to  allow the session to continue properly. It works
   around IPMI 1.5 session sequence numbers that  are  the  wrong  endian.
   Those  hitting  this  issue  may  see  "session  timeout" errors. Issue
   observed on  some  Sun  ILOM  1.0/2.0  (depends  on  service  processor
   endian).

   noauthcodecheck  - This workaround flag will tell FreeIPMI to not check
   the authentication codes returned from IPMI 1.5 command  responses.  It
   works  around  systems  that return invalid authentication codes due to
   hashing or implementation errors. Users are cautioned  on  the  use  of
   this  option,  as  it  removes  an  authentication  check verifying the
   validity of a packet. However, in most organizations, this is  unlikely
   to  be  a  security issue. Those hitting this issue may see "connection
   timeout", "session timeout", or "password verification timeout" errors.
   Issue   observed   on   Xyratex   FB-H8-SRAY,  Intel  Windmill,  Quanta
   Winterfell, and Wiwynn Windmill.

   intel20 - This workaround flag will work around several Intel IPMI  2.0
   authentication issues. The issues covered include padding of usernames,
   and password  truncation  if  the  authentication  algorithm  is  HMAC-
   MD5-128. Those hitting this issue may see "username invalid", "password
   invalid", or "k_g invalid" errors. Issue observed  on  Intel  SE7520AF2
   with Intel Server Management Module (Professional Edition).

   supermicro20 - This workaround flag will work around several Supermicro
   IPMI 2.0  authentication  issues  on  motherboards  w/  Peppercon  IPMI
   firmware.   The   issues   covered   include  handling  invalid  length
   authentication codes.  Those  hitting  this  issue  may  see  "password
   invalid"  errors.   Issue  observed  on  Supermicro  H8QME  with  SIMSO
   daughter card. Confirmed fixed on newerver firmware.

   sun20 - This workaround flag will work work around several Sun IPMI 2.0
   authentication issues. The issues covered include invalid lengthed hash
   keys, improperly hashed keys, and invalid cipher suite  records.  Those
   hitting  this  issue  may see "password invalid" or "bmc error" errors.
   Issue observed on Sun Fire 4100/4200/4500 with ILOM.   This  workaround
   automatically includes the "opensesspriv" workaround.

   opensesspriv - This workaround flag will slightly alter FreeIPMI's IPMI
   2.0 connection protocol to workaround an invalid hashing algorithm used
   by  the remote system. The privilege level sent during the Open Session
   stage of an IPMI 2.0 connection is used for hashing keys instead of the
   privilege  level  sent during the RAKP1 connection stage. Those hitting
   this issue may see "password invalid", "k_g invalid", or "bad  rmcpplus
   status  code"  errors.   Issue observed on Sun Fire 4100/4200/4500 with
   ILOM, Inventec 5441/Dell Xanadu II, Supermicro X8DTH, Supermicro X8DTG,
   Intel S5500WBV/Penguin Relion 700, Intel S2600JF/Appro 512X, and Quanta
   QSSC-S4R/Appro GB812X-CN. This workaround  is  automatically  triggered
   with the "sun20" workaround.

   integritycheckvalue  - This workaround flag will work around an invalid
   integrity check value during an IPMI  2.0  session  establishment  when
   using  Cipher Suite ID 0. The integrity check value should be 0 length,
   however the remote motherboard responds with a non-empty  field.  Those
   hitting  this  issue  may  see  "k_g invalid" errors. Issue observed on
   Supermicro X8DTG, Supermicro X8DTU, and Intel  S5500WBV/Penguin  Relion
   700, and Intel S2600JF/Appro 512X.

   ipmiping  -  This  workaround  option will inform ipmipower to use IPMI
   based ping packets instead of RMCP ping packets. Some motherboards have
   been  observed  to  not  implement RMCP ping/pong support despite being
   required by the IPMI specification. Issue observed on  Intel  Windmill,
   Quanta Winterfell, and Wiwynn Windmill.

   No IPMI 1.5 Support - Some motherboards that support IPMI 2.0 have been
   found to not support IPMI 1.5. Those hitting this issue may  see  "ipmi
   2.0  unavailable"  or  "connection  timeout"  errors. This issue can be
   worked around by using IPMI 2.0  instead  of  IPMI  1.5  by  specifying
   --driver-type=LAN_2_0. Issue observed on HP Proliant DL 145.

DIAGNOSTICS

   Upon  successful  execution, exit status is 0. On error, exit status is
   1.

   If multiple hosts are specified for communication, the exit status is 0
   if  and  only  if  all targets successfully execute. Otherwise the exit
   status is 1.

   When operating in interactive mode, the exit value will be based on the
   last power operation executed.

KNOWN ISSUES

   On  older  operating systems, if you input your username, password, and
   other potentially security relevant information on  the  command  line,
   this information may be discovered by other users when using tools like
   the ps(1) command or looking in the /proc file system. It is  generally
   more  secure  to input password information with options like the -P or
   -K options. Configuring security relevant information in  the  FreeIPMI
   configuration  file  would  also  be  an  appropriate  way to hide this
   information.

   In order to prevent brute force attacks,  some  BMCs  will  temporarily
   "lock  up" after a number of remote authentication errors. You may need
   to wait awhile in order to this temporary "lock up" to pass before  you
   may authenticate again.

   IPMI  specifications  do  not  require  BMCs to perform a power control
   operation before returning a completion code to the caller.  Therefore,
   it is possible for ipmipower to return power status queries opposite of
   what you are expecting.  For example, if a  "power  off"  operation  is
   performed,  a  BMC may return a successful completion code to ipmipower
   before the "power off"  operation  is  actually  performed.  Subsequent
   power status queries may return "on" for several seconds, until the BMC
   actually performs the "power off" operation.

REPORTING BUGS

   Report bugs to <freeipmi-users@gnu.org> or <freeipmi-devel@gnu.org>.

COPYRIGHT

   Copyright (C) 2007-2014 Lawrence Livermore National Security, LLC.
   Copyright (C) 2003-2007 The Regents of the University of California.

   This program is free software; you can redistribute it and/or modify it
   under  the  terms of the GNU General Public License as published by the
   Free Software Foundation; either version 3 of the License, or (at  your
   option) any later version.

SEE ALSO

   freeipmi.conf(5), freeipmi(7), ipmi-config(8), ipmi-oem(8)

   http://www.gnu.org/software/freeipmi/





Opportunity


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.





Free Software


Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.


Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.





Free Books


The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.


Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.





Education


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.


Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.