EVPN multihoming vs MLAG on Cumulus Linux: what actually breaks

EVPN multihoming vs MLAG: what actually breaks Both make two leaf switches look like one LACP partner to a dual-homed server. Both forward on both links. So which one holds up when something fails? Two labs on Cumulus Linux, identical wiring, four failure scenarios, every probe accounted for.
MLAG shares state over a dedicated peer link; EVPN multihoming shares it through BGP

On this page

A server sits in a rack with two cables going to two different leaf switches, bonded into one interface with LACP, the link aggregation control protocol. The bond comes up against a single LACP system ID. Two switches have to agree to present it.

MLAG, multi-chassis link aggregation, gives the leaf pair a dedicated peer link and a private protocol to keep their state in sync. EVPN multihoming coordinates the same attachment without an MLAG peer link, using BGP route types carried on the sessions the fabric already runs. Both present one LACP system ID to the server. Both forward on both cables.

This article compares the two approaches, then measures them.

Comparison table. The designs match on the LACP system ID presented to the server and differ on peer link, fabric state, route types, group size and uplink behaviour.
Where the two designs differ. The uplink row is the one the drills separate them on.

The lab

Cumulus Linux 5.15.0 with FRR 10.0.3, on containerlab: two spines, three leaves, two hosts. eBGP unnumbered underlay, EVPN overlay, VLAN 100 mapped to VNI 10100. host01 is dual homed to leaf01 and leaf02 with an 802.3ad bond running fast LACP and the layer3+4 transmit hash policy. host02 hangs off leaf03 and is the far end of every test.

Both labs come out of one generator, so the wiring, the addressing and the hosts are identical. The only structural difference is the peer link between leaf01 and leaf02, which exists in the MLAG lab and does not exist in the other.

The labs are at github.com/aramidetosin/evpn-mh-vs-mlag. Both topologies and all ten bootstrap configs come from one generator, and make up, make drills, make results reproduce everything below on your own host.

Topology: spine01 and spine02 above leaf01, leaf02 and leaf03. host01 is bonded to leaf01 and leaf02, host02 hangs off leaf03. A dashed peer link joins leaf01 and leaf02 in the MLAG lab only.
One wiring, two labs. The dashed peer link exists only in the MLAG lab.
MLAG synchronises the pair over a dedicated peer link with a backup IP. EVPN multihoming synchronises through BGP route types with no link between the leaves.
The same job done two ways: a dedicated peer link, or BGP.

This post is for paying subscribers only

Subscribe to LevelUp I.T. newsletter and stay updated.

Don't miss anything. Get all the latest posts delivered straight to your inbox. It's free!
Great! Check your inbox and click the link to confirm your subscription.
Error! Please enter a valid email address!