What is EVPN multihoming with an ESI, and how does it compare with MLAG or vPC?
Show the answer
Say this first
The host's links to two or more leaves form an Ethernet segment, identified by a 10-byte ESI configured the same on each leaf, plus a common LACP system ID so the host sees one partner. Leaves discover each other with type 4 routes and elect a designated forwarder per VLAN for BUM toward the host. Type 1 routes give mass withdraw and aliasing. There is no peer link and no state sync, it is standards-based and multi-vendor. MLAG and vPC are vendor-specific pairs with a peer link.
Go deeper
What each piece does
- Type 4 Ethernet segment route. Leaves with the same ESI find each other and elect a designated forwarder (DF) per VLAN, so only one leaf sends BUM traffic down to the host.
- Type 1 per segment. If a leaf loses its link, one withdrawal tells every remote VTEP to stop using that leaf for all MACs on the segment (mass withdraw).
- Type 1 per EVI. Aliasing: remote leaves load-balance to every leaf on the segment, even if only one of them learned the MAC.
- Split horizon. With VXLAN, local bias: BUM from a host is delivered to the segment by the leaf it arrived on, and peers on the same segment do not send it back.
Config on EOS
interface Port-Channel10
switchport mode trunk
switchport trunk allowed vlan 10
evpn ethernet-segment
identifier 0000:0000:0102:0304:0506
route-target import 01:02:03:04:05:06
lacp system-id 0102.0304.0506The same block, with the same ESI and system ID, goes on the other leaf.
| MLAG or vPC | EVPN ESI multihoming | |
|---|---|---|
| Peer link | Required | None |
| Leaves per segment | Two | Two or more (vendor limits apply) |
| Standards | Vendor-specific | RFC 7432, RFC 8365 |
| State sync | Over the peer link | Through BGP |
| Typical home | NX-OS fabrics, classic pairs | Arista, Junos, multi-vendor fabrics |
They will ask next
What goes wrong if the LACP system IDs differ?
The host sees two different partners and cannot bundle the links. Depending on the OS, one link stays out of the bundle or the bond flaps.
Traps
- Forgetting that BGP convergence now drives multihoming failover, so the overlay must be healthy.
How did you do?