CSC (Squashed) with LDP

Carrier Supporting Carrier (MPLS backbone carrier supporting an MPLS customer carrier)

This example is a typical CSC scenario however the customer carrier and backbone carrier are the same carrier. This is a method of achieving MPLS down to the customer end site whilst also increasing the MPLS label stack such that if a customer site is compromised they can't break out of the label stack into the backbone carrier’s global routing table transport label range. Any traffic that comes into the CSC-PE1 device will go into the ISP200 VRF which simply links the CPEs at other end sites. It keeps the backbone carrier protected from label popping/jumping.

When this is all one carrier the CSC-CE's LAN interface is the customer LAN interface and WAN interface becomes the GRT of a standard MPLS carrier. The CSC-CE's form VPNv4 peering’s with each other to exchange labels. They don't form IPv4 Unicast peering’s with each other though. The backbone carrier acts as the customer carrier IGP, the CSC-CEs run OSPF and LDP to the CSC-PEs. The backbone carrier takes in the customer carrier GRT as a customer (VRF) and transports routes across its own backbone inside a transport label.

A key configuration point on to use LDP instead of MP-BGP between the CSC-CEs and CSC-PEs is on the IOS-XR CSC backbone PEs LDP is configured with a separate transport address under the VRF, for the interface facing the CSC-CE. Without this LDP will fail to establish a neighborship because the CSC-CE won't have a route to the CSC-PEs loopback which is being used as it's LDP transport address inside the CSC-PEs OSPF area 0 (main backbone IGP area).

In the example Wireshark capture below ping between end customer switches over the EoMPLS pseudowire on the CSC-CE's is shown, with explicit NULL enabled so that the label stack shows the full stack, as these two neighbour CSC-PEs would be using PHP.

 

 

 

CSC-CE1:

hostname CSC-CE1
!
vrf definition CUST1
 rd 10.0.0.1:1
 !
 address-family ipv4
  route-target export 200:1
  route-target import 200:1
 exit-address-family
!
mpls label protocol ldp
mpls ldp explicit-null
no mpls ip propagate-ttl
!
interface Loopback0
 ip address 10.0.0.1 255.255.255.255
!
interface FastEthernet0/0
 description Link to Cust1
 vrf forwarding CUST1
 ip address 192.0.2.1 255.255.255.252
!
interface FastEthernet0/1
 description Link to CSC-PE1
 mtu 1530
 ip address 172.16.0.2 255.255.255.252
 ip ospf network point-to-point
 ip ospf 200 area 200
 mpls ldp discovery transport-address interface
 mpls ip
!
interface FastEthernet1/0
 description Xconnect CSC-CE2
 no ip address
 xconnect 10.0.0.2 1234 encapsulation mpls
!
router ospf 200
 router-id 10.0.0.1
 passive-interface default
 no passive-interface FastEthernet0/1
 network 10.0.0.1 0.0.0.0 area 200
!
router bgp 200
 bgp router-id 10.0.0.1
 bgp log-neighbor-changes
 neighbor 10.0.0.2 remote-as 200
 neighbor 10.0.0.2 update-source Loopback0
 !
 address-family ipv4
  no neighbor 10.0.0.2 activate
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.0.0.2 activate
  neighbor 10.0.0.2 send-community extended
  neighbor 10.0.0.2 next-hop-self
 exit-address-family
 !
 address-family ipv4 vrf CUST1
  redistribute connected
 exit-address-family
!
mpls ldp router-id Loopback0 force

CSC-PE1:

hostname CSC-PE1
!
vrf ISP200
 address-family ipv4 unicast
  import route-target
   100:200
  !
  export route-target
   100:200
  !
 !
!
interface Loopback0
 ipv4 address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0/0/0
 description Link to CSC-PE2
 mtu 1544
 ipv4 address 1.0.0.1 255.255.255.252
!
interface GigabitEthernet0/0/0/1
 description Link to CSC-CE2
 mtu 1544
 vrf ISP200
 ipv4 address 172.16.0.1 255.255.255.252
!
route-policy PASS
  pass
end-policy
!
router ospf 1
 router-id 1.1.1.1
 address-family ipv4 unicast
 area 0
  interface Loopback0
   passive enable
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
   passive disable
  !
 !
!
router ospf 200
 address-family ipv4 unicast
 vrf ISP200
  redistribute bgp 100 metric 10
  address-family ipv4 unicast
  area 200
   interface GigabitEthernet0/0/0/1
    network point-to-point
   !
  !
 !
!
router bgp 100
 bgp router-id 1.1.1.1
 bgp log neighbor changes detail
 address-family ipv4 unicast
 !
 address-family vpnv4 unicast
 !
 neighbor 2.2.2.2
  remote-as 100
  update-source Loopback0
  address-family ipv4 unicast
   route-policy PASS in
   route-policy PASS out
   next-hop-self
  !
  address-family vpnv4 unicast
   route-policy PASS in
   route-policy PASS out
   next-hop-self
  !
 !
 vrf ISP200
  rd 1.1.1.1:200
  address-family ipv4 unicast
   redistribute connected
   redistribute ospf 200 match internal
  !
 !
!
mpls ldp
 router-id 1.1.1.1
 interface GigabitEthernet0/0/0/0
 !
 vrf ISP200
  router-id 172.16.0.1
  address-family ipv4
  !
  interface GigabitEthernet0/0/0/1
   address-family ipv4
    discovery transport-address interface
   !
  !
 !
!

CSC-PE2:

hostname CSC-PE2
!
vrf ISP200
 address-family ipv4 unicast
  import route-target
   100:200
  !
  export route-target
   100:200
  !
 !
!
interface Loopback0
 ipv4 address 2.2.2.2 255.255.255.255
!
interface GigabitEthernet0/0/0/0
 description Link to CSC-PE1
 mtu 1544
 ipv4 address 1.0.0.2 255.255.255.252
!
interface GigabitEthernet0/0/0/1
 description Link to CSC-CE2
 mtu 1544
 vrf ISP200
 ipv4 address 172.16.0.5 255.255.255.252
!
route-policy PASS
  pass
end-policy
!
router ospf 1
 router-id 2.2.2.2
 address-family ipv4 unicast
 area 0
  interface Loopback0
   passive enable
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
   passive disable
  !
 !
!
router ospf 200
 address-family ipv4 unicast
 area 200
 !
 vrf ISP200
  redistribute bgp 100 metric 10
  address-family ipv4 unicast
  area 200
   interface GigabitEthernet0/0/0/1
    network point-to-point
   !
  !
 !
!
router bgp 100
 bgp router-id 2.2.2.2
 bgp log neighbor changes detail
 address-family ipv4 unicast
 !
 address-family vpnv4 unicast
 !
 neighbor 1.1.1.1
  remote-as 100
  update-source Loopback0
  address-family ipv4 unicast
   route-policy PASS in
   route-policy PASS out
   next-hop-self
  !
  address-family vpnv4 unicast
   route-policy PASS in
   route-policy PASS out
   next-hop-self
  !
 !
 vrf ISP200
  rd 2.2.2.2:200
  address-family ipv4 unicast
   redistribute connected
   redistribute ospf 200 match internal
  !
 !
!
mpls ldp
 router-id 2.2.2.2
 interface GigabitEthernet0/0/0/0
 !
 vrf ISP200
  router-id 172.16.0.5
  address-family ipv4
  !
  interface GigabitEthernet0/0/0/1
   address-family ipv4
    discovery transport-address interface
   !
  !
 !
!

CSC-CE2:

hostname CSC-CE2
!
vrf definition CUST1
 rd 10.0.0.2:1
 !
 address-family ipv4
  route-target export 200:1
  route-target import 200:1
 exit-address-family
!
multilink bundle-name authenticated
mpls label protocol ldp
mpls ldp explicit-null
!
interface Loopback0
 ip address 10.0.0.2 255.255.255.255
!
interface FastEthernet0/0
 description Link to Cust1
 vrf forwarding CUST1
 ip address 192.0.2.5 255.255.255.252
!
interface FastEthernet0/1
 description Link to CSC-PE2
 mtu 1530
 ip address 172.16.0.6 255.255.255.252
 ip ospf network point-to-point
 ip ospf 200 area 200
 mpls label protocol ldp
 mpls ip
!
interface FastEthernet1/0
 description Xconnect CSC-CE1
 no ip address
 xconnect 10.0.0.1 1234 encapsulation mpls
!
router ospf 200
 router-id 10.0.0.2
 passive-interface default
 no passive-interface FastEthernet0/1
 network 10.0.0.2 0.0.0.0 area 200
!
router bgp 200
 bgp router-id 10.0.0.2
 bgp log-neighbor-changes
 neighbor 10.0.0.1 remote-as 200
 neighbor 10.0.0.1 update-source Loopback0
 !
 address-family ipv4
  no neighbor 10.0.0.1 activate
 exit-address-family
 !
 address-family vpnv4
  neighbor 10.0.0.1 activate
  neighbor 10.0.0.1 send-community extended
  neighbor 10.0.0.1 next-hop-self
 exit-address-family
 !
 address-family ipv4 vrf CUST1
  redistribute connected
 exit-address-family
!
mpls ldp router-id FastEthernet0/1 force
CSC-CE1#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         No Label   192.0.2.0/30[V]  0             aggregate/CUST1
17         Pop Label  192.0.2.253/32[V]   \
                                       0             aggregate/CUST1
18         24003      172.16.0.4/30    0             Fa0/1      172.16.0.1
19         24004      10.0.0.2/32      0             Fa0/1      172.16.0.1
20         No Label   l2ckt(1234)      24300         Fa1/0      point2point

RP/0/0/CPU0:CSC-PE1#show mpls forwarding Local Outgoing Prefix Outgoing Next Hop Bytes Label Label or ID Interface Switched ------ ----------- ------------------ ------------ --------------- ------------ 24000 Exp-Null-v4 10.0.0.1/32[V] Gi0/0/0/1 172.16.0.2 79706 24001 Aggregate ISP200: Per-VRF Aggr[V] \ ISP200 0 24002 Pop 2.2.2.2/32 Gi0/0/0/0 1.0.0.2 60616 24003 24003 172.16.0.4/30[V] 2.2.2.2 4218 24004 24004 10.0.0.2/32[V] 2.2.2.2 4554441