Linux – Device eth0 has different MAC address than expected

centoshphp-proliantlinuxnetworking

I've got a HP Proliant 460c blade server running CentOS 5.x. For some reason CentOS thinks the mac address for ETH0 is something (18:a9:05:71:xx:xc) but I'm not able to find that MAC at all on the on-board administrator. In fact, if I use the MAC address that shows up in the onboard administrator and try to hardcode it to the nic (under /etc/sysconfig/network-script/ifcfg-eth0), I get an error:

Device eth0 has different MAC address than expected.

Where can I definitively confirm what the system sees at the MAC address? ifconfig -a shows the "incorrect" one.


On the CenTOS host, I'm seeing this in ifconfig results (slightly modified to protect the innocent):

eth0 HW 18:a9:05:71:xx:xc
eth0:0 HW 18:a9:05:71:xx:xc
eth1 HW 18:A9:05:71:xx:xd  
eth1:0 HW 18:A9:05:71:xx:xd
eth2 HW F4:CE:46:8X:XX:40
eth3 HW F4:CE:46:8X:XX:44

I'm not sure where the 18:a9 MAC addresses are coming from.

When I check the port mapping for the device bay that belongs to the server, I see:

Mezzanine Device Port: ENET1  
Device ID: d4:85:64:49:xx:x8

Mezzanine Device Port: iSCSI Port 1  
Device ID: F5:CE:46:83:xx:x1

Mezzanine Device Port: ENET2  
Device ID: d4:85:64:49:xx:xc

Mezzanine Device Port: ISCSI Port 2   
Device ID: F5:CE:46:xx:xx:x1

I also see

Mezzanine Device Port: Port 1  
Device ID: d4:85:64:xx:xx:be

Mezzanine Device Port: Port 2   
Device ID: d4:85:64:xx:xx:bf

Note that none of them pertain to the MAC that CentOS thinks should be there. I've also completely reinstalled CentOS and the problem persists. So it seems likely that something on the system is telling CentOS that the MAC should be used but I'm not sure where.

Best Answer

This is something that may be unique to the HP blade chassis setup. Since you mention that this is a blade server, do you know if the blade chassis has HP Virtual Connect modules installed? These are often used instead of passthrough ethernet uplinks to help consolidate and virtualize the blade networking.

If you do have Virtual Connect modules, check the server profile in the Virtual Connect Manager. There are options to manage the server MAC addresses using Virtual Connect. See page 64 of the Virtual Connect Installation Guide for an explanation of the feature:

Each server blade Ethernet NIC ships with a factory default MAC address. The MAC address is a 48-bit number that uniquely identifies the Ethernet interface to other devices on the network. While the hardware ships with default MAC addresses, Virtual Connect can assign MAC addresses that override the factory default MAC addresses while the server remains in that Virtual Connect enclosure.

The other answers posted certainly apply to multiple NICS in physical rack/tower servers, but the HP blade solution is a very special case.