VPLS – BGP Discovery & Signalling

Scenario
This setup show PE1 configuration for VPLS setup. BGP is used for both discovery signalling.

CE1’s WAN interface has been sub-interfaces and is running VRF-lite. One sub-interface is a point-to-point to PE1 for L3VPN purposes (VLAN 100). The other sub-interface connect to a bridge domain that connect CE2 and CE2 in the same LAN range (10.117.1.0/24 using VLAN 200). BGP L2VPN VPLS (25/65) is run with an IOS-XR router reflector.

A MAC limit of 100 has been set on the Bridge Domain and Flooding is the behaviour if this is exceeded.

This has been lab tested on Cisco IOS-XRv 6.3.1 – if used with XR9k images, the vpls address family is not supported. If this is configured in a virtual environment, the control plane will work but data plane forwarding will not.

IOS Config

hostname PE1
!
l2vpn vfi context VPLS1
 vpn id 200
 ! If RTs and RDs are not specified, they default to ASN:VPN-ID 
 autodiscovery bgp signaling bgp
  ve id 1
 !
!
bridge-domain 100
 member GigabitEthernet1 service-instance 100
!
bridge-domain 200
 mac limit maximum addresses 100
 ! flooding is done by default when MAC limit is reached on IOS-XE
 member GigabitEthernet1 service-instance 200
 member vfi VPLS1
!
bridge irb
!
interface Loopback0
 ip address 10.1.1.1 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet1
 no ip address
 service instance 100 ethernet
  encapsulation dot1q 100
  rewrite ingress tag pop 1 symmetric
 !
 service instance 200 ethernet
  encapsulation dot1q 200
 !
!
!
interface BDI100
 vrf forwarding A
 ip address 172.16.1.1 255.255.255.252
 !
!
router bgp 100
 bgp router-id 10.1.1.1
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 10.1.1.5 remote-as 100
 neighbor 10.1.1.5 update-source Loopback0
 !
 address-family l2vpn vpls
  neighbor 10.1.1.5 activate
  neighbor 10.1.1.5 send-community extended
  ! XR Software interprets the NLRI length in 2 bytes, but Cisco IOS Software encodes the NLRI length in the first byte. The below command avoids a mismatch and known bug that results in BGP flaps
  neighbor 10.1.1.5 prefix-length-size 2
  neighbor 10.1.1.5 next-hop-self
  neighbor 10.1.1.5 suppress-signaling-protocol ldp
 exit-address-family
 !
! 

XR Config

hostname PE1
!
interface Loopback0
 ipv4 address 10.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0/1
!
interface GigabitEthernet0/0/0/1.100
 vrf A
 ipv4 address 172.16.1.1 255.255.255.0
 encapsulation dot1q 100
!
interface GigabitEthernet0/0/0/1.200 l2transport
 encapsulation dot1q 200
!
router bgp 100
 bgp router-id 10.1.1.1
 bgp log neighbor changes detail
 !
 address-family l2vpn vpls-vpws
 !
 neighbor 10.1.1.5
  remote-as 100
  update-source Loopback0
  address-family l2vpn vpls-vpws
   next-hop-self
  !
 !
!
l2vpn
 bridge group GROUP1
  bridge-domain DOMAIN1
   mac
    limit
     maximum 100
     action flood
    !
   !
   interface GigabitEthernet0/0/0/1.200
   !
   vfi VPLS1
    vpn-id 200
    autodiscovery bgp
     rd auto
     ! XR requires RT import/export commands and aren't auto generated like IOS-XE
     route-target import 100:200
     route-target export 100:200
     signaling-protocol bgp
      ve-id 1
     !
    !
   !
  !
 !
!

Back to top