Saturday, 23 June 2012

MPLS: Carrier Supporting Carrier (CSC) Configuration:

MPLS: Carrier Supporting Carrier (CSC) Configuration:

·         Carrier Supporting Carrier (CSC) is used when one Service Provider uses another Service Provider as Transit Provider.
·         For example, Tier2 ISP has one customer in NewYork and another customer in SanFrancisco and Tier2 doesn’t have backbone infrastructure from NewYork to SanFrancisco
·         Then Tier2 ISP can use Tier1 ISP as transit ISP.
·         Tier1 ISP is Backbone carrier and Tier2 ISP is Customer carrier.
·         Tier1 ISP (Backbone Carrier) provides MPLS VPN services to Tier2 (Customer Carrier) and Tier2 provides MPLS VPN services to his customer.
·         This is sometimes called Hierarchical VPN Services.

Let’s take a small topology to configure this:


·         Backbone Carrier: AS 200
·         Customer Carrier: AS 100

·         Configuration looks more of like Inter-AS, except that we run MPLS in CSC-CE1 to CSC-PE1 and CSC-CE2 to CSC-PE2 links

Configuration summary:

·         CE-PE Link Configuration:
·         CE1-PE1,
·         CE2-PE2,
·         CSC-CE1 to CSC-PE1 and
·         CSC-CE2 to CSC-PE2

·         VRF configuration:
·         PE1
·         PE2
·         CSC-PE1
·         CSC-PE2

·         IGP – OSPF:
·         CE1-PE1,
·         CE2-PE2,
·         CSC-CE1 to CSC-PE1 and
·         CSC-CE2 to CSC-PE2

·         LDP:
·         Customer Carrier Network:
·         PE1 to CSC-CE1,
·         PE2 to CSC-CE2
·         Backbone Carrier Network:
·         CSC-PE1 to CSC-PE2
·         CE-PE links between Backbone and Customer network:
·         CSC-CE1 to CSC-PE1 and
·         CSC-CE2 to CSC-PE2

·         BGP:
·         IBGP VPNV4: PE1 and PE2
·         IBGP VPNV4: CSC-PE1 and CSC-PE2

·         Mutual redistribution between VRF-OSPF and MP-BGP
·         PE1
·         PE2
·         CSC-PE1 and
·         CSC-PE2


Relevant Show-run:

CE1#show run

interface Loopback0
 ip address 11.11.11.11 255.255.255.255
!
!
interface Serial1/0
 ip address 10.1.15.5 255.255.255.0
 serial restart-delay 0
 no fair-queue
!
router ospf 100
 router-id 11.11.11.11
 log-adjacency-changes
 network 10.1.15.5 0.0.0.0 area 0
 network 11.11.11.11 0.0.0.0 area 0
!

PE1#show run
!
ip vrf VPN_A
 rd 100:1
 route-target export 100:1
 route-target import 100:1
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Serial1/0
 ip vrf forwarding VPN_A
 ip address 10.1.15.1 255.255.255.0
 serial restart-delay 0
 no fair-queue
!
interface Serial1/1
 ip address 100.1.12.1 255.255.255.0
 mpls ip
 serial restart-delay 0
!
router ospf 100 vrf VPN_A
 log-adjacency-changes
 redistribute bgp 100 subnets
 network 10.1.15.1 0.0.0.0 area 0
!
router ospf 1
 router-id 1.1.1.1
 log-adjacency-changes
 network 1.1.1.1 0.0.0.0 area 0
 network 100.1.12.1 0.0.0.0 area 0
!
router bgp 100
 bgp router-id 1.1.1.1
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 4.4.4.4 remote-as 100
 neighbor 4.4.4.4 update-source Loopback0
 !
 address-family vpnv4
  neighbor 4.4.4.4 activate
  neighbor 4.4.4.4 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf VPN_A
  redistribute ospf 100 vrf VPN_A
  no synchronization
 exit-address-family
!

CSC-CE1#show run
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Serial1/0
 ip address 100.1.27.2 255.255.255.0
 mpls ldp discovery transport-address interface
 mpls ip
 serial restart-delay 0
 no fair-queue
!
interface Serial1/1
 ip address 100.1.12.2 255.255.255.0
 mpls ip
 serial restart-delay 0
!
!
router ospf 1
 router-id 2.2.2.2
 log-adjacency-changes
 network 2.2.2.2 0.0.0.0 area 0
 network 100.1.12.2 0.0.0.0 area 0
 network 100.1.27.2 0.0.0.0 area 0
!

CSC-PE1#show run
!
ip vrf VPN_A
 rd 200:1
 route-target export 200:1
 route-target import 200:1
!
interface Loopback0
 ip address 7.7.7.7 255.255.255.255
!
interface Serial1/0
 ip vrf forwarding VPN_A
 ip address 100.1.27.7 255.255.255.0
 mpls ip
 serial restart-delay 0
 no fair-queue
!
interface Serial1/1
 ip address 100.1.78.7 255.255.255.0
 mpls ip
 serial restart-delay 0
!
router ospf 10 vrf VPN_A
 log-adjacency-changes
 redistribute bgp 200 subnets
 network 100.1.27.7 0.0.0.0 area 0
!
router ospf 1
 router-id 7.7.7.7
 log-adjacency-changes
 network 7.7.7.7 0.0.0.0 area 0
 network 100.1.78.7 0.0.0.0 area 0
!
router bgp 200
 bgp router-id 7.7.7.7
 no bgp default ipv4-unicast
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 8.8.8.8 remote-as 200
 neighbor 8.8.8.8 update-source Loopback0
 !
 address-family vpnv4
  neighbor 8.8.8.8 activate
  neighbor 8.8.8.8 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf VPN_A
  redistribute ospf 10 vrf VPN_A
  no synchronization
 exit-address-family
!

CSC-PE2#show run
ip vrf VPN_A
 rd 200:1
 route-target export 200:1
 route-target import 200:1
!
interface Loopback0
 ip address 8.8.8.8 255.255.255.255
!
interface Serial1/0
 ip vrf forwarding VPN_A
 ip address 100.1.38.8 255.255.255.0
 mpls ip
 serial restart-delay 0
 no fair-queue
!
interface Serial1/1
 ip address 100.1.78.8 255.255.255.0
 mpls ip
 serial restart-delay 0
!
router ospf 10 vrf VPN_A
 log-adjacency-changes
 redistribute bgp 200 subnets
 network 100.1.38.8 0.0.0.0 area 0
!
router ospf 1
 router-id 8.8.8.8
 log-adjacency-changes
 network 8.8.8.8 0.0.0.0 area 0
 network 100.1.78.8 0.0.0.0 area 0
!
router bgp 200
 bgp router-id 8.8.8.8
 no bgp default ipv4-unicast
 no bgp default route-target filter
 bgp log-neighbor-changes
 neighbor 7.7.7.7 remote-as 200
 neighbor 7.7.7.7 update-source Loopback0
 !
 address-family vpnv4
  neighbor 7.7.7.7 activate
  neighbor 7.7.7.7 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf VPN_A
  redistribute ospf 10 vrf VPN_A
  no synchronization
 exit-address-family
!

CSC-CE2#show run
!
!
!
!
!
!
!
!
!
!
!
!
interface Loopback0
 ip address 3.3.3.3 255.255.255.255
!
interface Serial1/0
 ip address 100.1.38.3 255.255.255.0
 mpls ldp discovery transport-address interface
 mpls ip
 serial restart-delay 0
 no fair-queue
!
interface Serial1/1
 ip address 100.1.34.3 255.255.255.0
 mpls ip
 serial restart-delay 0
!
router ospf 1
 router-id 3.3.3.3
 log-adjacency-changes
 network 3.3.3.3 0.0.0.0 area 0
 network 100.1.34.3 0.0.0.0 area 0
 network 100.1.38.3 0.0.0.0 area 0
!

PE2#show run
!
!
ip vrf VPN_A
 rd 100:1
 route-target export 100:1
 route-target import 100:1
!
!
!
!
!
interface Loopback0
 ip address 4.4.4.4 255.255.255.255
!
!
interface Serial1/0
 ip vrf forwarding VPN_A
 ip address 10.1.46.4 255.255.255.0
 serial restart-delay 0
 no fair-queue
!
interface Serial1/1
 ip address 100.1.34.4 255.255.255.0
 mpls ip
 serial restart-delay 0
!
router ospf 100 vrf VPN_A
 log-adjacency-changes
 redistribute bgp 100 subnets
 network 10.1.46.4 0.0.0.0 area 0
!
router ospf 1
 router-id 4.4.4.4
 log-adjacency-changes
 network 4.4.4.4 0.0.0.0 area 0
 network 100.1.34.4 0.0.0.0 area 0
!
router bgp 100
 bgp router-id 4.4.4.4
 no bgp default ipv4-unicast
 bgp log-neighbor-changes
 neighbor 1.1.1.1 remote-as 100
 neighbor 1.1.1.1 update-source Loopback0
 !
 address-family vpnv4
  neighbor 1.1.1.1 activate
  neighbor 1.1.1.1 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf VPN_A
  redistribute ospf 100 vrf VPN_A
  no synchronization
 exit-address-family
!

CE2#show run
!
!
interface Loopback0
 ip address 12.12.12.12 255.255.255.255
!
interface Serial1/0
 ip address 10.1.46.6 255.255.255.0
 serial restart-delay 0
 no fair-queue
!
router ospf 100
 router-id 12.12.12.12
 log-adjacency-changes
 network 10.1.46.6 0.0.0.0 area 0
 network 12.12.12.12 0.0.0.0 area 0
!
CE2#

Show Commands:

PE1#show ip bgp vpnv4 all sum
BGP router identifier 1.1.1.1, local AS number 100
BGP table version is 9, main routing table version 9
4 network entries using 548 bytes of memory
4 path entries using 272 bytes of memory
5/4 BGP path/bestpath attribute entries using 620 bytes of memory
2 BGP extended community entries using 80 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1520 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 15 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
4.4.4.4         4   100      25      25        9    0    0 00:19:51        2
PE1#
PE1#
PE1#show ip bgp vpnv4 all
BGP table version is 9, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 100:1 (default for vrf VPN_A)
*> 10.1.15.0/24     0.0.0.0                  0         32768 ?
*>i10.1.46.0/24     4.4.4.4                  0    100      0 ?
*> 11.11.11.11/32   10.1.15.5               65         32768 ?
*>i12.12.12.12/32   4.4.4.4                 65    100      0 ?
PE1#
PE1#show ip route ospf
     2.0.0.0/32 is subnetted, 1 subnets
O       2.2.2.2 [110/65] via 100.1.12.2, 01:07:07, Serial1/1
     100.0.0.0/24 is subnetted, 4 subnets
O IA    100.1.38.0 [110/129] via 100.1.12.2, 01:02:37, Serial1/1
O IA    100.1.34.0 [110/256] via 100.1.12.2, 01:02:37, Serial1/1
O       100.1.27.0 [110/128] via 100.1.12.2, 01:07:07, Serial1/1
     3.0.0.0/32 is subnetted, 1 subnets
O IA    3.3.3.3 [110/193] via 100.1.12.2, 01:02:37, Serial1/1
     4.0.0.0/32 is subnetted, 1 subnets
O IA    4.4.4.4 [110/257] via 100.1.12.2, 01:02:37, Serial1/1
PE1#

PE2#show ip bgp vpnv4 all sum
BGP router identifier 4.4.4.4, local AS number 100
BGP table version is 9, main routing table version 9
4 network entries using 548 bytes of memory
4 path entries using 272 bytes of memory
5/4 BGP path/bestpath attribute entries using 620 bytes of memory
2 BGP extended community entries using 80 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 1520 total bytes of memory
BGP activity 4/0 prefixes, 4/0 paths, scan interval 15 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
1.1.1.1         4   100      27      27        9    0    0 00:21:23        2
PE2#
PE2#
PE2#show ip bgp vpnv4 all
BGP table version is 9, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 100:1 (default for vrf VPN_A)
*>i10.1.15.0/24     1.1.1.1                  0    100      0 ?
*> 10.1.46.0/24     0.0.0.0                  0         32768 ?
*>i11.11.11.11/32   1.1.1.1                 65    100      0 ?
*> 12.12.12.12/32   10.1.46.6               65         32768 ?
PE2#
PE2#show ip route ospf
     1.0.0.0/32 is subnetted, 1 subnets
O IA    1.1.1.1 [110/257] via 100.1.34.3, 01:07:54, Serial1/1
     2.0.0.0/32 is subnetted, 1 subnets
O IA    2.2.2.2 [110/193] via 100.1.34.3, 01:07:54, Serial1/1
     100.0.0.0/24 is subnetted, 4 subnets
O       100.1.38.0 [110/128] via 100.1.34.3, 01:08:04, Serial1/1
O IA    100.1.12.0 [110/256] via 100.1.34.3, 01:07:54, Serial1/1
O IA    100.1.27.0 [110/129] via 100.1.34.3, 01:07:54, Serial1/1
     3.0.0.0/32 is subnetted, 1 subnets
O       3.3.3.3 [110/65] via 100.1.34.3, 01:08:04, Serial1/1
PE2#

CSC-PE1#show ip bgp vpnv4 all sum
BGP router identifier 7.7.7.7, local AS number 200
BGP table version is 17, main routing table version 17
8 network entries using 1096 bytes of memory
8 path entries using 544 bytes of memory
9/8 BGP path/bestpath attribute entries using 1116 bytes of memory
2 BGP extended community entries using 80 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2836 total bytes of memory
BGP activity 8/0 prefixes, 8/0 paths, scan interval 15 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
8.8.8.8         4   200     124     124       17    0    0 01:53:35        4
CSC-PE1#
CSC-PE1#show ip bgp vpnv4 all
BGP table version is 17, local router ID is 7.7.7.7
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 200:1 (default for vrf VPN_A)
*> 1.1.1.1/32       100.1.27.2             129         32768 ?
*> 2.2.2.2/32       100.1.27.2              65         32768 ?
*>i3.3.3.3/32       8.8.8.8                 65    100      0 ?
*>i4.4.4.4/32       8.8.8.8                129    100      0 ?
*> 100.1.12.0/24    100.1.27.2             128         32768 ?
*> 100.1.27.0/24    0.0.0.0                  0         32768 ?
*>i100.1.34.0/24    8.8.8.8                128    100      0 ?
*>i100.1.38.0/24    8.8.8.8                  0    100      0 ?
CSC-PE1#

CSC-PE2#show ip bgp vpnv4 all sum
BGP router identifier 8.8.8.8, local AS number 200
BGP table version is 17, main routing table version 17
8 network entries using 1096 bytes of memory
8 path entries using 544 bytes of memory
9/8 BGP path/bestpath attribute entries using 1116 bytes of memory
2 BGP extended community entries using 80 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 2836 total bytes of memory
BGP activity 8/0 prefixes, 8/0 paths, scan interval 15 secs

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
7.7.7.7         4   200     125     125       17    0    0 01:54:14        4
CSC-PE2#
CSC-PE2#show ip bgp vpnv4 all
BGP table version is 17, local router ID is 8.8.8.8
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete

   Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 200:1 (default for vrf VPN_A)
*>i1.1.1.1/32       7.7.7.7                129    100      0 ?
*>i2.2.2.2/32       7.7.7.7                 65    100      0 ?
*> 3.3.3.3/32       100.1.38.3              65         32768 ?
*> 4.4.4.4/32       100.1.38.3             129         32768 ?
*>i100.1.12.0/24    7.7.7.7                128    100      0 ?
*>i100.1.27.0/24    7.7.7.7                  0    100      0 ?
*> 100.1.34.0/24    100.1.38.3             128         32768 ?
*> 100.1.38.0/24    0.0.0.0                  0         32768 ?
CSC-PE2#

CE1#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
C       10.1.15.0 is directly connected, Serial1/0
O IA    10.1.46.0 [110/65] via 10.1.15.1, 00:23:31, Serial1/0
     11.0.0.0/32 is subnetted, 1 subnets
C       11.11.11.11 is directly connected, Loopback0
     12.0.0.0/32 is subnetted, 1 subnets
O IA    12.12.12.12 [110/129] via 10.1.15.1, 00:23:31, Serial1/0
CE1#
CE1#ping 12.12.12.12

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 12.12.12.12, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 184/221/264 ms
CE1#

CE2#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     10.0.0.0/24 is subnetted, 2 subnets
O IA    10.1.15.0 [110/65] via 10.1.46.4, 00:24:04, Serial1/0
C       10.1.46.0 is directly connected, Serial1/0
     11.0.0.0/32 is subnetted, 1 subnets
O IA    11.11.11.11 [110/129] via 10.1.46.4, 00:24:04, Serial1/0
     12.0.0.0/32 is subnetted, 1 subnets
C       12.12.12.12 is directly connected, Loopback0
CE2#
CE2#ping 11.11.11.11

Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 11.11.11.11, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 156/211/268 ms
CE2#




1 comment:

  1. check out for mpls vpn-csc on ios as well as ios-xr

    http://blog.codergenie.com/blog/post/2014/02/21/MPLS-VPN-CSC-Fundamentals.aspx

    ReplyDelete