RHEL High Availability - Share MAC address Between Servers

Latest response

Hi There

Just like a virtual IP, is it possible to share (Active - Standby) an ethernet MAC address in the High Availability Linux server pair?




From what I understand, keepalived's VRRP implementation uses the interface MAC and not a virtual failover MAC, so there is no "floating MAC" on a keepalived VRRP interface. ucarp's CARP implementation doesn't seem to use a floating MAC either.

It's possible to fail an IP around a network with cluster scripts, it should theoretically be possible to fail a MAC around a network, though you might have to write the script yourself. The "virtual MAC" would simply come from you implementing "ip link set <dev> address <MAC>" in the script.

You'd need to GARP whenever a failover occurs, so remote hosts update their MAC tables. Have a read of /etc/init.d/network and its friends in /etc/sysconfig/network-scripts/ to see how Linux handles bringing network interfaces up, like what it does and what order it does things in. There's an arping in ifup-eth which you can mirror in your own script to send a GARP.

I agree this is a terribly crude manual solution, maybe someone else has a better option?

Cloning a MAC also has a larger implication on the L2 routing whether plain Spanning Tree or RSTP. The tree will have to reconverge, specially if you are failing the MAC across two different upstream switches. I wouldn't recommend it for a high-availability configuration.

As Jamie said - it is possible to do it, but not included in any of the default resource scripts.