Exploring the quirks of Network Engineering
Scenario
This setup show PE1 configuration for VPLS setup. BGP is used for discovery and LDP is used for 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
!
mpls ldp discovery targeted-hello accept
mpls ldp router-id Loopback0
!
l2vpn vfi context VPLS1
vpn id 200
! If RTs are not specified, they default to ASN:VPN-ID
autodiscovery bgp signaling ldp
! VPLS ID must match on both ends
vpls-id 100:200
!
!
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
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.252
encapsulation dot1q 100
!
interface GigabitEthernet0/0/0/1.200 l2transport
encapsulation dot1q 200
!
router bgp 100
bgp router-id 10.1.1.2
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 ldp
! VPLS ID must match on both ends
vpls-id 100:200
!
!
!
!
!
!
mpls ldp
address-family ipv4
discovery targeted-hello accept
!
!
You must be logged in to post a comment.