Option C L3NNI w/ L2VPN

Load russo.pl.course.inter-as.opt.c.init.cfg

#IOS-XE
config replace flash:russo.pl.course.inter-as.opt.c.complete.cfg
 
#IOS-XR
configure
load bootflash:russo.pl.course.inter-as.opt.c.complete.cfg
commit replace
y

Inter-AS option C is fully setup and working. Add L2VPN support. CSR1 should have connectivity on VRF L2A and VRF L2B. An OSPF adjacency will form once connectivity is established.

  • Use EVPN E-LAN

  • BGP l2vpn/evpn is already enabled

  • Use Q-in-Q 3999/168 on R6 to R1, and Q-in-Q 3998/268 on R8 to R1

Answer

#R6
int gi2
 service instance 100 eth
 encapsulation dot1Q 3999 second-dot1q 168
 rewrite ingress tag pop 2 symm
 exit
exit
!
l2vpn evpn
 replication-type ingress
!
l2vpn evpn instance 100 vlan-based
 route-target both 100:100
 no auto-route-target
!
bridge-domain 100
 member gi2 service-instance 100
 member evpn 100

#R8
int gi2
 service instance 100 eth
 encapsulation dot1Q 3998 second-dot1q 268
 rewrite ingress tag pop 2 symm
 exit
exit
!
l2vpn evpn
 replication-type ingress
!
l2vpn evpn instance 100 vlan-based
 route-target both 100:100
 no auto-route-target
!
bridge-domain 100
 member gi2 service-instance 100
 member evpn 100

#R7
router bgp 65001
 address-family l2vpn evpn
  neighbor 10.0.0.14 activate
  neighbor 10.0.0.14 next-hop-unchanged

#XR14
router bgp 65002
 neighbor 10.0.0.7
  address-family l2vpn evpn
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged

Explanation

L2VPN services with inter-AS option C is quite simple. This is because the loopbacks are directly distributed between the ASs, so it gives the feel of an inter-AS service.

The only complexity is dealing with route-targets with EVPN. By default, the RT is auto-generated as <ASN>:<EVI>. The local PE will not import the remote PE’s EVPN routes. You can either manually import the remote AS’s RT, or manually specify the same RT on both ASs.

#R6, R8
l2vpn evpn instance 100 vlan-based
 route-target both 100:100
 no auto-route-target

Also, the route reflectors must enable the l2vpn/evpn address-family. Again, make sure to use next-hop-unchanged to leave the nexthop of the local PE intact when advertising the route to the eBGP RR neighbor.

#R7
router bgp 65001
 address-family l2vpn evpn
  neighbor 10.0.0.14 activate
  neighbor 10.0.0.14 next-hop-unchanged

#XR14
router bgp 65002
 neighbor 10.0.0.7
  address-family l2vpn evpn
   route-policy PASS in
   route-policy PASS out
   next-hop-unchanged

Each PE should now see all remote PE’s service routes. The PEs should import the learned MACs into the local BD.

R1 should see the OSPF adjacencies with itself in the different VRFs come up.

Last updated