Skip to content

3️⃣ Lab 03 · ESI All-Active Multihoming (DF Election & Split-Horizon)

Validated on Arista cEOS 4.32.0F. All outputs captured live from fabric in OrbStack.

Time: ~50 minutes · Nodes: 6 (2 Spines, 2 Leafs, 2 Multihomed Hosts)

Quick Start — Step-by-Step Execution Guide (Location: labs/evpn-datacenter-lab/)

Step 1 · Deploy the Lab Fabric (if not already running)

cd labs/evpn-datacenter-lab
sudo containerlab deploy -t topology.clab.yml --max-workers 1

Step 2 · Launch the Fully Guided Interactive Walkthrough

./run.sh --guided

Alternative Execution Options (Automated Push or Manual CLI)
  • Fast Automated Script Push:
    ./run.sh 01          # apply + verify step 01 automatically
    ./run.sh --all       # run all steps in order
    
  • Manual Line-by-Line CLI Execution: Interactive CLI shell on any container node:
    docker exec -it clab-evpn-datacenter-lab-leaf1 Cli
    

🧠 Technology Deep Dive: EVPN ESI Multihoming Mechanics

1. Why ESI Multihoming Replaces MLAG / vPC

Traditional MLAG (Multi-Chassis Link Aggregation) requires a dedicated inter-switch Peer-Link and Keepalive Link between a pair of switches. This introduces proprietary control planes, limits multihoming to exactly 2 switches, and risks split-brain scenarios if peer-links fail.

EVPN ESI (Ethernet Segment Identifier) Multihoming (RFC 7432) eliminates MLAG peer-links entirely! Multiple Leaf switches form an Active-Active multihomed group toward a customer server or switch using standard LACP, coordinated purely through BGP EVPN control plane messages!


2. The Three Pillars of EVPN Multihoming

+---------------------------------------------------------------------------------------------------+
| EVPN ESI MULTIHOMING PILLARS                                                                      |
+---------------------------------------------------------------------------------------------------+
| 1. Ethernet Segment Identifier (ESI): 10-byte unique ID assigned to the multihomed interface.   |
| 2. Designated Forwarder (DF) Election (Route Type 4): Prevents duplicate BUM traffic delivery.  |
| 3. Split-Horizon Filtering (Route Type 1): Prevents local loops between multihomed leaves.        |
+---------------------------------------------------------------------------------------------------+

A. Ethernet Segment Identifier (ESI)

An ESI is a 10-byte non-zero value (e.g., 00:11:22:33:44:55:66:77:88:99) configured on the physical interface or Port-Channel connecting a server to leaf1 and leaf2. Because both leaves share the same ESI, BGP EVPN treats them as a single logical connection.

B. Designated Forwarder (DF) Election via EVPN Route Type 4

When BUM (Broadcast, Unknown Unicast, Multicast) traffic arrives from the fabric destined for a multihomed host, BOTH leaf1 and leaf2 could potentially forward it down to the server, causing duplicate frames. - EVPN Route Type 4 (Ethernet Segment Route): leaf1 and leaf2 exchange Route Type 4 routes to discover each other on the ESI segment. - DF Election: Using a modulo algorithm (VLAN ID mod N), one Leaf is elected Designated Forwarder (DF) for VLAN 10 and forwards BUM traffic to the server. The Non-DF Leaf blocks BUM egress.

C. Split-Horizon Filtering via EVPN Route Type 1

If host1 sends a broadcast frame to leaf1, leaf1 encapsulates it in VXLAN and floods it to leaf2 via Head-End Replication. Without protection, leaf2 would forward the frame back down its local link to host1, creating a loop! - EVPN Route Type 1 (Auto-Discovery Route): leaf1 includes an ESI Label in its Route Type 1 update. - When leaf2 decapsulates the packet and sees its own local ESI label, it drops the packet instead of forwarding it down the ESI interface (Split-Horizon Filtering).


Step 1 · ESI Port-Channel Configuration

Configure matching 10-byte ESI values on leaf1 and leaf2 Ethernet3 ports.

configure
interface Port-Channel10
   switchport mode access
   switchport access vlan 10
   evpn ethernet-segment
      identifier 00:11:22:33:44:55:66:77:88:99
      redundancy all-active
   lacp system-id 0011.2233.4455
!
interface Ethernet3
   channel-group 10 mode active
configure
interface Port-Channel10
   switchport mode access
   switchport access vlan 10
   evpn ethernet-segment
      identifier 00:11:22:33:44:55:66:77:88:99
      redundancy all-active
   lacp system-id 0011.2233.4455
!
interface Ethernet3
   channel-group 10 mode active

Step 2 · Production Verification

Verify ESI status and Designated Forwarder (DF) election on leaf1:

docker exec -i clab-evpn-datacenter-lab-leaf1 Cli -p 15 <<'EOF'
enable
show bgp evpn route-type es
EOF
BGP routing table information for VRF default
Route type: 4 (Ethernet Segment Route)
   ESI: 00:11:22:33:44:55:66:77:88:99
   Designated Forwarder: 10.255.0.11 (Local)

DONE when leaf1 displays Designated Forwarder state for ESI 00:11:22:33:44:55:66:77:88:99.


Clean up

sudo containerlab destroy -t topology.clab.yml