CSC with Option AB (D)

Load csc.option.ab.init.cfg in the EVE INE SPv4 topology. On XR1, load bootflash:blank.ssh.enabled.cfg and commit replace first. On R1, load bootflash:blank.cfg first as well.

#IOS-XE
config replace flash:csc.option.ab.init.cfg
 
#IOS-XR
configure
load bootflash:csc.option.ab.init.cfg
commit replace
y

The IGPs of each AS are already preconfigured. Basic L3VPN is setup in AS100 for VPN_A and VPN_B, however R2 and XR2 have no connectivity yet.

Configure CSC between AS100 and AS200, and AS100 and AS300. Configure an inter-AS option AB setup between R7 and R8. The CSC VRF is already defined on all routers in AS200 and AS300, with matching RT values.

Use BGP for all peerings between CSC PEs and CSC CEs.

Answer

#R1
router bgp 200
 add ipv4 vrf CSC
  neighbor 20.1.3.3 remote-as 100
  neighbor 20.1.3.3 send-label
  neighbor 20.1.3.3 as-override

#R3
router bgp 100
 redistribute isis
 redistribute connected
 neighbor 20.1.3.1 remote-as 200
 neighbor 20.1.3.1 send-label
 
router isis
 redistribute bgp 100

#XR1
route-policy PASS
 pass
end-policy
!
router bgp 300
 vrf CSC
  rd 300:1
  add ipv4 uni
   allocate-label all
  neighbor 20.4.19.4
   remote-as 100
   add ipv4 labeled-unicast
    route-policy PASS in
	route-policy PASS out
	as-override
!
router static vrf CSC add ipv4 uni
 20.4.19.4/32 gi0/0/0/0.419

#R4
router bgp 100
 redistribute isis
 redistribute connected
 neighbor 20.4.19.19 remote-as 300
 neighbor 20.4.19.19 send-label
!
router isis
 redistribute bgp 100

#R7
vrf definition CSC
 address-family ipv4
  inter-as-hybrid csc next-hop 10.101.78.8
!
int gi2.101
 mpls bgp forwarding
!
router bgp 200
 neighbor 10.7.8.8 remote-as 300
 add vpnv4
  neighbor 10.7.8.8 act
  neighbor 10.7.8.8 inter-as-hybrid

#R8
vrf definition CSC
 address-family ipv4
  inter-as-hybrid csc next-hop 10.101.78.7
!
int gi2.101
 mpls bgp forwarding
!
router bgp 300
 neighbor 10.7.8.7 remote-as 200
 add vpnv4
  neighbor 10.7.8.7 act
  neighbor 10.7.8.7 inter-as-hybrid

Explanation

Inter-AS option AB also has support for CSC. In this scenario, two backbone carriers are providing CSC service to the same customer carrier. These backbone carriers must interconnect and provide inter-AS connectivity for their CSC VRFs. We can use option AB with CSC by using the csc keyword under the VRF.

#R7
vrf definition CSC
 address-family ipv4
  inter-as-hybrid csc next-hop 10.101.78.8

#R8
vrf definition CSC
 address-family ipv4
  inter-as-hybrid csc next-hop 10.101.78.7

What this keyword does is preserve the label learned over the VPNv4 routes. In regular option AB, the label is “thrown away” and the traffic is forwarded as native IPv4. However, when you are using inter-AS to support CSC, the label path must be end-to-end. The service label cannot be disposed. Therefore, the csc keyword tells the router to retain the label when forwarding the traffic over the subinterface for the associated VRF.

In our lab, we only have a single CSC VRF, so using option-AB doesn’t really make any sense. If we had more CSC customers on AS 200 and AS 300 we would see the benefit. But even with only one customer, we can configure and verify the solution.

In addition, on R7 and R8 we also need the mpls bgp forwarding command under the per-VRF subinterfaces. This is automatically added when forming an eBGP IPv4-LU or VPNv4 peering, but since we are using option AB, we are only forming the eBGP peering on the global interface. Therefore we need to add mpls bgp forwarding manually under each per-VRF subinterface.

#R7
int gi2.101
 mpls bgp forwarding

#R8
int gi2.101
 mpls bgp forwarding

Finally, each peer is defined with the inter-as-hybrid keyword, as seen in the regular option AB lab.

#R7
router bgp 200
 add vpnv4
  neighbor 10.7.8.8 inter-as-hybrid

#R8
router bgp 300
 add vpnv4
  neighbor 10.7.8.7 inter-as-hybrid

Verification

When R2 forwards L3VPN traffic to XR20, there must be an end-to-end LSP. The service label is carried all the way through. The backbone carriers only hold routes for the customer carrier’s internal loopbacks.

On R7, we learn 20.20.20.20/32 within the CSC VRF from R8 over the global eBGP VPNv4 peering. R8 advertises label 16.

We use the option AB nexthop hack in order to forward this over the per-VRF subinterface. The command inter-as-hybrid csc next-hop 10.101.78.8 tells R7 to use 10.101.78.8 as the nexthop for 20.20.20.20/32 within VRF CSC.

The keyword csc tells R7 to retain the MPLS label learned via the VPNv4 route. R7 advertises a local label of 23 to R1 within AS200. We can see that label 23 is swapped with label 16 and forwarded out Gi1.101.

The same process happens on R8.

We can see that we have end-to-end LSPs between R2 and XR20. Service label 24002, below, is carried all the way through. The inter-AS link is labeled with 16/24002.

Summary

Using option AB for CSC only requires one additional keyword, csc, under the VRF.

vrf definition CSC
 address-family ipv4
  inter-as-hybrid csc next-hop 10.101.78.8

This instructs the router to retain the VPNv4 label when forwarding the traffic over the per-VRF subinterface. In regular option AB, the label is thrown away and traffic is forwarded over the per-VRF subinterface as native IPv4.

Ensure you also enable MPLS on the per-VRF subinterfaces, too.

interface GigabitEthernet2.101
 encapsulation dot1Q 101
 vrf forwarding CSC
 ip address 10.101.78.7 255.255.255.0
 mpls bgp forwarding

Last updated