Hands-On Lab: Configuring VXLAN with BGP EVPN Control Plane

This hands-on lab replaces the static head-end replication from the previous lab with a BGP EVPN control plane, allowing VTEPs to dynamically learn each other's MAC and IP information rather than relying on manually configured peer lists.

VXLAN BGP EVPNDynamic VTEP DiscoveryMAC-IP Route Type 2

~4 min read · Updated Sep 26, 2026

Lab Objective

Configure BGP with the L2VPN EVPN address family between two VTEPs, replacing static peer configuration with dynamic route exchange, and verify MAC and IP reachability information for hosts is learned automatically through EVPN routes rather than manual configuration.

Lab Purpose

The static head-end replication configured in the previous lab requires manually listing every peer VTEP for every VNI — impractical once a fabric grows beyond a handful of switches. BGP EVPN provides a proper control plane, letting VTEPs advertise their local MAC and IP information via BGP so peers learn reachability dynamically, the same way IP routing information is learned rather than manually configured.

Lab Topology

Switch1 (VTEP), Switch2 (VTEP)
Same physical/VNI setup as the previous
lab, but static peer-ip and mcast-group
static configuration removed

Both switches: AS 65100 (single-AS
underlay for this lab, iBGP EVPN)

Task 1: Remove the Static Peer Configuration

Remove the static peer-ip and mcast-group static commands from the previous lab's NVE interface configuration.

Task 2: Configure BGP with the L2VPN EVPN Address Family

Enable BGP between the two VTEPs' loopback addresses, activating the L2VPN EVPN address family specifically.

Task 3: Configure the NVE Interface to Use BGP EVPN

Update the NVE interface to source VNI membership information from the EVPN control plane rather than static configuration.

Task 4: Verify the EVPN Session Establishes

Confirm the BGP EVPN neighbor relationship reaches Established state.

Task 5: Verify MAC/IP Information Is Learned Dynamically

Generate traffic from HostA and confirm Switch2 learns HostA's MAC and IP via an EVPN Type 2 route, without any static configuration referencing HostA.

Solution and Verification

Switch1(config)# interface nve1
Switch1(config-if)# no member vni 10100 mcast-group static
Switch1(config-if)# no member vni 10100 ingress-replication protocol static

Switch2(config)# interface nve1
Switch2(config-if)# no member vni 10100 mcast-group static
Switch2(config-if)# no member vni 10100 ingress-replication protocol static

Switch1(config)# router bgp 65100
Switch1(config-router)# neighbor 10.0.0.2 remote-as 65100
Switch1(config-router)# neighbor 10.0.0.2 update-source loopback0
Switch1(config-router)# address-family l2vpn evpn
Switch1(config-router-af)# neighbor 10.0.0.2 activate

Switch2(config)# router bgp 65100
Switch2(config-router)# neighbor 10.0.0.1 remote-as 65100
Switch2(config-router)# neighbor 10.0.0.1 update-source loopback0
Switch2(config-router)# address-family l2vpn evpn
Switch2(config-router-af)# neighbor 10.0.0.1 activate

Switch1(config)# interface nve1
Switch1(config-if)# member vni 10100

Switch2(config)# interface nve1
Switch2(config-if)# member vni 10100

-- With no static peer-ip or mcast-group
-- specified, the NVE interface now relies
-- entirely on the BGP EVPN control plane
-- to learn about remote VTEPs and their
-- VNI membership

Switch1# show bgp l2vpn evpn summary

Neighbor    V   AS    MsgRcvd  MsgSent  State/PfxRcd
10.0.0.2    4   65100   12       11        1
-- Established, with EVPN routes already
-- being exchanged

HostA> ping HostB
-- (traffic generated to populate MAC/ARP
--  tables and trigger EVPN advertisement)

Switch2# show bgp l2vpn evpn

   Network                Next Hop        Path
Route Distinguisher: 10.0.0.1:100
*>i [2]:[0]:[48]:[00aa.bb00.aaaa]:[32]:[192.168.100.10]
                          10.0.0.1        i
-- This is an EVPN Type 2 (MAC/IP
-- Advertisement) route -- Switch2 learned
-- HostA's MAC (00aa.bb00.aaaa) and IP
-- (192.168.100.10) directly from Switch1
-- via BGP, with no static reference to
-- HostA anywhere in Switch2's configuration

Switch2# show nve peers

Interface  Peer-IP    State
nve1       10.0.0.1   Up
-- The peer relationship itself is also
-- now dynamically established through
-- EVPN, rather than the static peer-ip
-- statement used in the previous lab

Key Takeaway

BGP EVPN Type 2 routes carry both a host's MAC address and its IP address in a single advertisement, allowing a receiving VTEP to build both its Layer 2 forwarding table and ARP suppression cache from the same piece of information — this dynamic learning is what allows VXLAN fabrics to scale to hundreds of VTEPs and thousands of endpoints without the linear increase in manual configuration that the static head-end replication from the previous lab would otherwise require.

Written & researched by Dr. Shahin Siami

Related Articles

Hands-On Lab: Configuring EIGRP Stub Routing

This hands-on lab configures a branch router as an EIGRP stub, verifying it advertises only its own connected and summary routes while the hub router correctly avoids querying the stub during a topology change elsewhere in the network.

Continue

Hands-On Lab: Configuring EIGRP Named Mode

This hands-on lab reconfigures a classic EIGRP setup into EIGRP named mode, organizing address-family and interface-specific configuration into a more structured hierarchy, and verifies functional equivalence with the classic configuration style used throughout earlier EIGRP labs in this series.

Continue

Hands-On Lab: Configuring ERSPAN Across a Routed Network

This hands-on lab configures Encapsulated RSPAN (ERSPAN) to mirror traffic across a Layer 3-routed network rather than a single Layer 2 trunk, extending the RSPAN concept from the previous lab beyond the boundaries of a single VLAN or switched domain.

Continue

Hands-On Lab: Configuring RSPAN Across Switches

This hands-on lab configures Remote SPAN (RSPAN) using a dedicated RSPAN VLAN carried across a trunk, allowing traffic mirrored on one switch to be monitored by a capture device connected to an entirely different switch, extending the local SPAN concept covered in an earlier lab across the network.

Continue

Hands-On Lab: Configuring In-Service Software Upgrade (ISSU) on a Stack

This hands-on lab performs an In-Service Software Upgrade across a StackWise stack, upgrading each member's IOS image one at a time while the stack continues forwarding traffic throughout, verifying zero downtime compared to the disruptive reload approach used in earlier IOS upgrade labs.

Continue

Hands-On Lab: Configuring Cisco Catalyst StackWise Traditional Stacking

This hands-on lab configures traditional Catalyst stacking (StackWise) across three switches using stack cables, contrasting its single-tier, chassis-proximity requirement against the StackWise Virtual pair covered in the previous lab, which allows switches to be located much farther apart.

Continue