Finding a server's BMC / IPMI IP address with ipmitool

I test servers on a temporary basis a lot, and many enterprise servers don't have as user-friendly external port indications, or little OLED displays to provide useful information. They're no-frills because they don't need frills, you just deploy them and they run for years.

I often need to gain access to the server's IPMI/BMC interface to manage the server remotely, and it's not always obvious what IP address is assigned if you don't manually assign one via your router and a MAC address.

I could scan my network for the IP address, but assuming I have the server booted and it's a modern Supermicro or other standard system, I can use ipmitool to grab the BMC IP:

$ sudo ipmitool lan print

Set in Progress         : Set Complete
Auth Type Support       : 
Auth Type Enable        : Callback : 
                        : User     : 
                        : Operator : 
                        : Admin    : 
                        : OEM      : 
IP Address Source       : DHCP Address
IP Address              : 10.0.2.213
Subnet Mask             : 255.255.255.0
MAC Address             : e6:33:6f:f7:a1:07
SNMP Community String   : public

If you want the IPv6 address, change it to lan6:

ipmitool lan6 print

This also makes it easy to grab the MAC address for the BMC if you do want to assign it a static IP in your router configuration.

Comments

A reasonably modern BMC will have an IPv6 address; you can find it from any other host in the LAN using `ping ff02::1%eth0`. `ff02::1` is the "all nodes"-multicast address, and `%eth0` tells your computer which interface to use.

This doesn't appear to show IPv6 info. I run an IPv6-only OOB network. I wasn't able to use the multicast ping trick because it's a physically separate network with nothing else on it. At a pinch I can look in the switches of course.

The Supermico IPMICFG utility is able to show the IPv6 info.

If there is a way to get ipmitool to show this info that would be very useful.

re my previous comment about "ipmitool lan print" not showing IPv6 info:

Some research has shown that since v1.8.18 (2016!) it can do this but you have to use "lan6" instead of "lan". This is not documented in the man page on Debian, so I will submit a bug report.

I wish my company would have learned about this before we did. It's saved us a lot of heartache when dealing with many different Lenovo servers at different client's sites.