Supermicro IPMI unable to access through shared port
I have several supermicro servers (X8DTU-F, X7SPA-HF). I am using IPMI configuration with shared ethernet port (X7SPA-HF doesn't have dedicated port though). IPMI over ethernet is working perfectly. So servers network connectivity do.
The problem is that servers can't access to it's ipmi ip through shared port localy (it's working with dedicated). So, if I try to ping (also arping) from server to it's ipmi ip, it doesn't work.
Server and IP is on the same network and I can access to either server and ipmi without any issues. So the issue seems to be only somewhere in localswitch on SMC motherboard.
Any idea, where can be the issue?
Update
Wesley's answer is accurate. Thanks for that. To workaround this problem - use separate networks for the server and ipmi. Set the access port on the switch to trunk and allow only vlan for the server itself (untagged) and vlan for ipmi (tagged). On IPMI then set up packet tagging with specific vlan id. This way all packets (even though they use the same interface) will go through the gateway and will not be delivered directly.
This is a known design "problem" with some shared IPMI access. This also affects Dell DRACs that use an Avocent BMC as well. It's just the way it is.
For some reference:
The reason one is unable to connect to the IPMI controller from the same machine through the network on this architecture is because this controller is architected in such a way that you CAN'T access the IPMI controller via its IP address from the same machine that the controller is on. This is because the IPMI controller and the motherboard SHARE a single physical ethernet port.
[...]
The IPMI controller can access the network through eth0, and the motherboard can access the network through eth0, but the motherboard CANNOT access the IPMI controller through eth0. It MUST go through its internal motherboard connection, which is what happens when you use "ipmitool" without specifying an IP address. You cannot go through an IP connection to the controller from the same machine, but you can from any other machine that can route to it.