Configuring iBGP EVPN Peering Between VTEPs

iBGP EVPN peers are part of the underlay in a single-AS BGP EVPN VXLAN. iBGP EVPN peering can be configured in two ways:
  • End-to-end EVPN peering among VTEPs, running on top of underlying hop-by-hop routing. This option can be used with a small number of VTEPs.
  • EVPN peering between each VTEP and a Route Reflector (RR). The RR can run as part of the spine routers or as a dedicated node.

The BGP EVPN underlay network must be configured to build Layer 3 connectivity among VTEPs and intermediate routers. Loopback interface addresses, used as VTEP and BGP peer endpoints, need to be routable in the underlay. It is recommended to run an IGP such as OSPF in the underlay. The following task configures iBGP EVPN peering for a VTEP.

  1. Enter global configuration mode.
    device# configure terminal
  2. Enable BGP routing.
    device(config)# router bgp 
  3. Configure the Autonomous System Number (ASN).
    device(config-bgp-router)# local-as 656
    
  4. Specify the ASN for the remote neighbor.
    device(config-bgp-router)# neighbor 3.3.3.3 remote-as 656
    
  5. Specify the neighbor interface over which the neighbor and local device will exchange prefixes.
    device(config-bgp-router)# neighbor 3.3.3.3 update-source loopback 1
    
  6. Enable the BGP L2VPN EVPN address family.
    device(config-bgp-router)# address-family l2vpn evpn  
    
  7. Enable the exchange of information with the neighbor.
    device(config-bgp-l2vpn-evpn)# neighbor 3.3.3.3 activate     
    
  8. Send standard and extended community attributes to the neighbor.
    device(config-bgp-l2vpn-evpn)# neighbor 3.3.3.3 send-community both

The following is an example showing an iBGP-EVPN peering configuration for two VTEPs and a route reflector (RR) on a spine for a BGP EVPN underlay network. For the RR, client-to-client reflection is enabled by default.

VTEP-1(1.1.1.1) — ve2 — RR :

device(config)# router bgp 
device(config-bgp-router)# local-as 656
device(config-bgp-router)# neighbor 3.3.3.3 remote-as 656
device(config-bgp-router)# neighbor 3.3.3.3 update-source loopback 1
device(config-bgp-router)# address-family l2vpn evpn  
device(config-bgp-l2vpn-evpn)# neighbor 3.3.3.3 activate   
device(config-bgp-l2vpn-evpn)# neighbor 3.3.3.3 send-community both

VTEP-2(2.2.2.2)--- ve3 — RR :

device(config)# router bgp 
device(config-bgp-router)# local-as 656
device(config-bgp-router)# neighbor 3.3.3.3 remote-as 656
device(config-bgp-router)# neighbor 3.3.3.3 update-source loopback 1
device(config-bgp-router)# address-family l2vpn evpn  
device(config-bgp-l2vpn-evpn)# neighbor 3.3.3.3 activate   
device(config-bgp-l2vpn-evpn)# neighbor 3.3.3.3 send-community both  
.

VTEP-1 <----- ve2----> RR(3.3.3.3) <--- ve3---> VTEP-2:

device(config)# router bgp 
device(config-bgp-router)# local-as 656
device(config-bgp-router)# neighbor 1.1.1.1 remote-as 656
device(config-bgp-router)# neighbor 1.1.1.1 update-source loopback 1
device(config-bgp-router)# neighbor 2.2.2.2 remote-as 656
device(config-bgp-router)# neighbor 2.2.2.2 update-source loopback 1
device(config-bgp-router)# address-family l2vpn evpn 
device(config-bgp-l2vpn-evpn)# neighbor 1.1.1.1 activate   
device(config-bgp-l2vpn-evpn)# neighbor 1.1.1.1 send-community both
device(config-bgp-l2vpn-evpn)# neighbor 1.1.1.1 route-reflector-client
device(config-bgp-l2vpn-evpn)# neighbor 2.2.2.2 activate   
device(config-bgp-l2vpn-evpn)# neighbor 2.2.2.2 send-community both
device(config-bgp-l2vpn-evpn)# neighbor 2.2.2.2 route-reflector-client