VPLS floods unknown unicast. Every PE learns every MAC. Multi-homing is complicated. It works, but it’s showing its age.
EVPN (Ethernet VPN) fixes these problems. MAC addresses are distributed via BGP, not learned via data plane flooding. Multi-homing is first-class. Both L2 and L3 services use the same control plane. It works with MPLS or VXLAN underneath.
EVPN is the future of overlay networking.
EVPN vs VPLS
| Feature | VPLS | EVPN |
|---|---|---|
| MAC learning | Data plane (flooding) | Control plane (BGP) |
| Unknown unicast | Flood to all PEs | Only to destination PE |
| Multi-homing | Complex (MC-LAG) | Native (active-active) |
| IP routing | Separate (L3VPN) | Integrated |
| Scalability | Limited | Better |
EVPN Concepts
How EVPN Works
1. Host A connects to PE12. PE1 learns MAC-A locally3. PE1 advertises MAC-A via BGP EVPN4. All PEs install MAC-A → PE15. Traffic to MAC-A goes directly to PE1 (no flooding!)EVPN Route Types
| Type | Name | Purpose |
|---|---|---|
| 1 | Ethernet Auto-Discovery | Multi-homing, aliasing |
| 2 | MAC/IP Advertisement | MAC and IP bindings |
| 3 | Inclusive Multicast | BUM traffic handling |
| 4 | Ethernet Segment | Multi-homing ESI |
| 5 | IP Prefix | L3 routing (EVPN Type-5) |
Type 2: MAC/IP Route
The most common route type:
Route Distinguisher: 10.255.0.1:100MAC Address: aa:bb:cc:dd:ee:ffIP Address: 192.168.1.10 (optional)Label: 1001Next-hop: 10.255.0.1
"MAC aa:bb:cc:dd:ee:ff (with IP 192.168.1.10) is behind PE 10.255.0.1"Type 5: IP Prefix Route
For L3 routing in EVPN:
Route Distinguisher: 10.255.0.1:100IP Prefix: 10.0.0.0/24Gateway IP: 0.0.0.0 (optional)Label: 2001
"Route to 10.0.0.0/24 is behind PE 10.255.0.1"EVPN with VXLAN
Most common deployment: EVPN control plane + VXLAN data plane
[Host A] ─ [Leaf1/VTEP] ═══ VXLAN ═══ [Leaf2/VTEP] ─ [Host B] │ IP underlay │ EVPN learns MAC/IP EVPN learns MAC/IPVyOS VXLAN with EVPN
configure
# VXLAN interfaceset interfaces vxlan vxlan100 vni 100set interfaces vxlan vxlan100 source-address 10.255.0.1set interfaces vxlan vxlan100 parameters nolearning
# nolearning: Don't use data plane learning (EVPN handles it)
# Bridgeset interfaces bridge br100 member interface vxlan100set interfaces bridge br100 member interface eth1
commitBGP EVPN Configuration
configure
# BGP with EVPN address familyset protocols bgp system-as 65000set protocols bgp router-id 10.255.0.1
# EVPN neighborset protocols bgp neighbor 10.255.0.2 remote-as 65000set protocols bgp neighbor 10.255.0.2 address-family l2vpn-evpn
# Advertise all VNIsset protocols bgp address-family l2vpn-evpn advertise-all-vni
commitEVPN Multi-Homing
Ethernet Segment (ES)
Multiple PEs connected to same host/switch:
[PE1] ─┐[Server/Switch] ═══════┼═══ EVPN [PE2] ─┘
ES (Ethernet Segment) = The dual-homed connectionESI (ES Identifier) = Unique ID for the ESActive-Active Multi-Homing
configure
# Define Ethernet Segment (both PEs)set interfaces bonding bond0 member interface eth1set interfaces bonding bond0 evpn ethernet-segment identifier 00:11:22:33:44:55:66:77:88
# Both PEs actively forward# EVPN handles aliasing and split horizon
commitBenefits
- Active-active forwarding (both links used)
- Fast failover (no waiting for MAC learning)
- Loop prevention (DF election)
EVPN Integrated Routing and Bridging (IRB)
Same EVPN instance provides L2 and L3:
configure
# Bridge for L2set interfaces bridge br100 member interface vxlan100
# IRB interface for L3set interfaces bridge br100 address 192.168.100.1/24
# Host in VXLAN 100 can:# - L2 switch to other hosts in same VXLAN# - L3 route to other networks via 192.168.100.1
commitSymmetric vs Asymmetric IRB
Asymmetric:- Routing at ingress only- Frame sent as L2 to egress PE- Simpler but requires all VNIs everywhere
Symmetric:- Routing at ingress and egress- Uses L3 VNI for inter-subnet- Better for large scaleEVPN Route Targets
Similar to L3VPN:
configure
# EVPN RT configurationset vrf name TENANT-A protocols bgp address-family l2vpn-evpn rd 10.255.0.1:100set vrf name TENANT-A protocols bgp address-family l2vpn-evpn route-target export 65000:100set vrf name TENANT-A protocols bgp address-family l2vpn-evpn route-target import 65000:100
commitViewing EVPN State
Show EVPN Routes
# Show all EVPN routesshow bgp l2vpn evpn
# Show specific route typesshow bgp l2vpn evpn route type macipshow bgp l2vpn evpn route type multicastshow bgp l2vpn evpn route type prefix
# Show VNI informationshow evpn vniShow MAC Table
# EVPN-learned MACsshow evpn mac vni 100
# Output:# VNI MAC Type Interface# 100 aa:bb:cc:dd:ee:ff local eth1# 100 11:22:33:44:55:66 remote 10.255.0.2EVPN Design Patterns
Leaf-Spine with EVPN
[Spine1] [Spine2] │ ╲ ╱ │ │ ╲ ╱ │ │ ╲ ╱ │ │ ╱ ╲ │ │ ╱ ╲ │ [Leaf1] [Leaf2] │ │ [Host A] [Host B]
eBGP underlay: Spines as route reflectorsEVPN overlay: Leaf-to-leaf via spinesEVPN-VXLAN Fabric
# Leaf configurationset protocols bgp neighbor <spine1> remote-as <spine-as>set protocols bgp neighbor <spine1> address-family l2vpn-evpn
# Spines reflect EVPN routes# VTEPs on leafs
# Underlay provides IP connectivity# EVPN provides MAC/IP learning# VXLAN provides encapsulationTroubleshooting EVPN
No EVPN Routes
# Check BGP sessionshow bgp l2vpn evpn summary
# Verify EVPN address family negotiatedshow bgp neighbor <ip> | grep -i evpn
# Check local VNIshow evpn vniMAC Not Advertised
# Check local MAC learningshow bridge fdb
# Check EVPN advertisementshow bgp l2vpn evpn route type macip
# Verify VNI-to-VXLAN mappingTraffic Not Flowing
# Verify VXLAN tunnelping <remote-vtep>
# Check encapsulationsudo tcpdump -i eth0 udp port 4789
# Verify MAC in remote VNIshow evpn mac vni 100 mac <mac-address>VyOS EVPN Status
VyOS EVPN support is evolving:
# Check current version capabilitiesshow version
# VyOS 1.4+ has improved EVPN support via FRRouting# Test features in lab before productionMigration from VPLS to EVPN
Phase 1: Deploy EVPN parallel to VPLSPhase 2: Migrate traffic graduallyPhase 3: Decommission VPLS
Key difference:- VPLS: Flood and learn- EVPN: Advertise and install
Can run both during migrationThe Lesson
EVPN is the future of overlay networking.
EVPN advantages:
- Control plane MAC learning (no flooding)
- Native multi-homing support
- Integrated L2 and L3
- Works with MPLS or VXLAN
- Scales better than VPLS
When to use EVPN:
- Data center fabrics
- Multi-tenant environments
- Stretched L2 domains
- Any new overlay deployment
VyOS EVPN support depends on version. For production, verify specific features work. For learning and smaller deployments, VyOS provides a good platform to understand EVPN concepts.
The concepts here apply regardless of platform. EVPN is the direction the industry is moving — understanding it is essential for modern network engineering.