Exploring the quirks of Network Engineering
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
!
!
!
!
!
!
You must be logged in to post a comment.