well, let say that the customer have a representative office in the US, where the ISP A in Indonesia typically doesn't have an Infrastructure in the US, but the ISP is indeed having a connection to the ISP-B in the US.
well, the two ISP indeed should communicate each other so that they can exchange the particular routing information. The expected result is that the Customer can use the Internetworking connection between ISP-A in Indonesia and ISP-B in the US to exchange the Company's Data back and forth.
that kind 'Interconnection' between ISP-A and ISP-B can be referred as an Inter-AS MPLS L3VPN.
in this writing I want to give an overview about one of the option in order to do the Inter-AS MPLS L3VPN that is Back-to-Back VRF approach between ISP, here is the scenario:
·        
Configure Back-to-Back VRF so that R7 can connect
to R8
·        
AS123 will use : 
as its RT Numbering on the VRF
·        
AS456 will use : 
as its RT Numbering on the VRF
So we need to build basic
configuration, where R3 will have VPNv4 peering with R2 and R6 will have VPNv4
peering with R4.
| 
R3 
! 
ip vrf VPN_A 
 rd
  14.14.3.3:1 
 route-target export 14.14.3.3:1 
 route-target import 14.14.2.2:1 
! 
interface FastEthernet0/1 
 ip vrf
  forwarding VPN_A 
 ip address
  10.14.37.3 255.255.255.0 
! 
router bgp 123 
 bgp
  router-id 14.14.3.3 
 no bgp
  default ipv4-unicast 
 bgp
  log-neighbor-changes 
 neighbor
  14.14.2.2 remote-as 123 
 neighbor
  14.14.2.2 update-source Loopback0 
 ! 
 address-family vpnv4 
  neighbor
  14.14.2.2 activate 
  neighbor
  14.14.2.2 send-community extended 
 exit-address-family 
 ! 
 address-family ipv4 vrf VPN_A 
  no
  synchronization 
 
  redistribute rip 
 exit-address-family 
! 
router rip 
! 
 address-family ipv4 vrf VPN_A 
 
  redistribute bgp 123 metric transparent 
  network
  10.0.0.0 
  no
  auto-summary 
  version 2 
 exit-address-family 
! 
End 
R2 
! 
ip vrf VPN_A 
 rd
  14.14.2.2:1 
 route-target export 14.14.2.2:1 
 route-target import 14.14.3.3:1 
! 
router bgp 123 
 bgp
  router-id 14.14.2.2 
 no bgp
  default ipv4-unicast 
 bgp
  log-neighbor-changes 
 neighbor
  14.14.3.3 remote-as 123 
 neighbor
  14.14.3.3 update-source Loopback0 
 ! 
 address-family vpnv4 
  neighbor
  14.14.3.3 activate 
  neighbor
  14.14.3.3 send-community extended 
 exit-address-family 
! 
end | 
| 
R6 
! 
ip vrf VPN_A 
 rd
  14.14.6.6:1 
 route-target export 456:1 
 route-target import 456:1 
! 
interface FastEthernet0/1 
 ip vrf
  forwarding VPN_A 
 ip address
  10.14.68.6 255.255.255.0 
! 
router bgp 456 
 bgp
  router-id 14.14.6.6 
 no bgp
  default ipv4-unicast 
 bgp
  log-neighbor-changes 
 neighbor
  14.14.4.4 remote-as 456 
 neighbor
  14.14.4.4 update-source Loopback0 
! 
 address-family vpnv4 
  neighbor
  14.14.4.4 activate 
  neighbor
  14.14.4.4 send-community extended 
 exit-address-family 
 ! 
 address-family ipv4 vrf VPN_A 
  no
  synchronization 
 
  redistribute rip 
 exit-address-family 
! 
router rip 
 ! 
 address-family ipv4 vrf VPN_A 
 
  redistribute bgp 456 metric transparent 
  network
  10.0.0.0 
  no
  auto-summary 
  version 2 
 exit-address-family 
! 
End 
R4 
! 
ip vrf VPN_A 
 rd
  14.14.4.4:1 
 route-target export 456:1 
 route-target import 456:1 
! 
router bgp 456 
 bgp
  router-id 14.14.4.4 
 no bgp
  default ipv4-unicast 
 bgp
  log-neighbor-changes 
 neighbor
  14.14.6.6 remote-as 456 
 neighbor
  14.14.6.6 update-source Loopback0 
 ! 
 address-family vpnv4 
  neighbor
  14.14.6.6 activate 
  neighbor
  14.14.6.6 send-community extended 
 exit-address-family 
! 
end | 
At this point, both R3 and R6 haven’t got any prefixes from each
other. R3 hasn’t gotten the 10.8.8.0/24 neither R6 which hasn’t gotten the
10.7.7.0/24 Prefix
| 
Rack14R3#show bgp vpnv4 unicast rd 14.14.3.3:1 
BGP table version is 5, local router ID is
  14.14.3.3 
Status codes: s suppressed, d damped, h history,
  * valid, > best, i - internal, 
             
  r RIB-failure, S Stale, m multipath, b backup-path, x best-external 
Origin codes: i - IGP, e - EGP, ? - incomplete 
  
  Network          Next Hop            Metric LocPrf Weight Path 
Route Distinguisher: 14.14.3.3:1 (default for vrf
  VPN_A) 
*> 10.7.7.0/24      10.14.37.7               1         32768 ? 
*> 10.14.37.0/24    0.0.0.0                  0         32768 ? 
*> 10.14.78.0/24    10.14.37.7               1         32768 ? 
*> 14.14.7.7/32     10.14.37.7               1         32768 ? 
Rack14R6#show ip bgp vpnv4 rd 14.14.6.6:1 
BGP table version is 13, local router ID is
  14.14.6.6 
Status codes: s suppressed, d damped, h history,
  * valid, > best, i - internal, 
             
  r RIB-failure, S Stale, m multipath, b backup-path, x best-external 
Origin codes: i - IGP, e - EGP, ? - incomplete 
  
  Network          Next Hop            Metric LocPrf Weight Path 
Route Distinguisher: 14.14.6.6:1 (default for vrf
  VPN_A) 
*> 10.8.8.0/24      10.14.68.8               1         32768 ? 
*> 10.14.68.0/24    0.0.0.0                  0         32768 ? 
*> 10.14.78.0/24    10.14.68.8               1         32768 ? 
*> 14.14.8.8/32     10.14.68.8               1         32768 ? | 
Now, we’ve already created the VRF, called VPN_A on both R2 and R4,
where they will act as if they connected to the CE, and we will enable IGP,
OSPF, between them to exchange the Routing Information.
| 
R2 
! 
interface FastEthernet0/1 
 desc Link
  to R4, other AS 
 ip vrf
  forwarding VPN_A 
 ip address
  150.14.24.2 255.255.255.0 
! 
router ospf 24 vrf VPN_A 
 router-id
  150.14.24.2 
 log-adjacency-changes 
 redistribute bgp 123 subnets 
 network
  150.14.24.2 0.0.0.0 area 0 
! 
router bgp 123 
 ! 
 address-family ipv4 vrf VPN_A 
  no
  synchronization 
 
  redistribute ospf 24 vrf VPN_A match internal external 1 external 2 
 exit-address-family 
! 
End 
R4 
! 
interface FastEthernet0/1 
 desc Link
  to R2, other AS 
 ip vrf
  forwarding VPN_A 
 ip address
  150.14.24.4 255.255.255.0 
! 
router ospf 24 vrf VPN_A 
 router-id
  150.14.24.4 
 log-adjacency-changes 
 redistribute bgp 456 subnets 
 network
  150.14.24.4 0.0.0.0 area 0 
! 
router bgp 456 
! 
 address-family ipv4 vrf VPN_A 
  no
  synchronization 
  redistribute
  ospf 24 vrf VPN_A match internal external 1 external 2 
 exit-address-family 
! 
end | 
So now, R3 will have the Other Customer Prefix, 10.8.8.0/24, from R2
as if R2 is directly connected to the CE, which in this Case R2 connected to
the other MPLS Cloud that is acted as CE, from AS123 point of view
| 
Rack14R3#show bgp vpnv4 unicast rd 14.14.3.3:1 
BGP table version is 14, local router ID is
  14.14.3.3 
Status codes: s suppressed, d damped, h history,
  * valid, > best, i - internal, 
             
  r RIB-failure, S Stale, m multipath, b backup-path, x best-external 
Origin codes: i - IGP, e - EGP, ? - incomplete 
  
  Network          Next Hop            Metric LocPrf Weight Path 
Route Distinguisher: 14.14.3.3:1 (default for vrf
  VPN_A) 
*> 10.7.7.0/24      10.14.37.7               1         32768 ? 
*>i10.8.8.0/24     
  14.14.2.2                1    100     
  0 456 i 
*> 10.14.37.0/24    0.0.0.0                  0         32768 ? 
*>i10.14.68.0/24   
  14.14.2.2                1    100     
  0 456 i 
* i10.14.78.0/24    14.14.2.2                1    100     
  0 456 i 
*>                  10.14.37.7               1         32768 ? 
*> 14.14.7.7/32     10.14.37.7               1         32768 ? 
*>i14.14.8.8/32    
  14.14.2.2                1    100     
  0 456 i 
*>i150.14.24.0/24   14.14.2.2                0    100     
  0 ? 
BGP routing table entry for
  14.14.3.3:1:10.8.8.0/24, version 11 
Paths: (1 available, best #1, table VPN_A) 
  Not
  advertised to any peer 
  456,
  imported path from 14.14.2.2:1:10.8.8.0/24 
    14.14.2.2 (metric 3) from 14.14.2.2
  (14.14.2.2) 
      Origin IGP, metric 1,
  localpref 100, valid, internal, best 
     
  Extended Community: OSPF DOMAIN ID:0x0005:0x000000180200
  RT:14.14.2.2:1 
       
  OSPF RT:0.0.0.0:5:1 OSPF ROUTER ID:150.14.24.2:0 
      mpls labels in/out nolabel/203 | 
R6 will also have learned the prefixes from R7
| 
Rack14R6#show ip bgp vpnv4 rd 14.14.6.6:1 
BGP table version is 21, local router ID is
  14.14.6.6 
Status codes: s suppressed, d damped, h history,
  * valid, > best, i - internal, 
             
  r RIB-failure, S Stale, m multipath, b backup-path, x best-external 
Origin codes: i - IGP, e - EGP, ? - incomplete 
  
  Network          Next Hop            Metric LocPrf Weight Path 
Route Distinguisher: 14.14.6.6:1 (default for vrf
  VPN_A) 
*>i10.7.7.0/24     
  14.14.4.4                1    100     
  0 123 i 
*> 10.8.8.0/24      10.14.68.8               1         32768 ? 
*>i10.14.37.0/24   
  14.14.4.4                1    100     
  0 123 i 
*> 10.14.68.0/24    0.0.0.0                  0         32768 ? 
*> 10.14.78.0/24    10.14.68.8               1         32768 ? 
*>i14.14.7.7/32    
  14.14.4.4                1    100     
  0 123 i 
*> 14.14.8.8/32     10.14.68.8               1         32768 ? 
*>i150.14.24.0/24   14.14.4.4                0    100     
  0 ? 
Rack14R6#show ip bgp vpnv4 rd 14.14.6.6:1
  10.7.7.0 
BGP routing table entry for
  14.14.6.6:1:10.7.7.0/24, version 19 
Paths: (1 available, best #1, table VPN_A) 
  Not
  advertised to any peer 
  123,
  imported path from 14.14.4.4:1:10.7.7.0/24 
   
  14.14.4.4 (metric 3) from 14.14.4.4 (14.14.4.4) 
      Origin IGP, metric 1,
  localpref 100, valid, internal, best 
     
  Extended Community: RT:456:1 OSPF DOMAIN ID:0x0005:0x000000180200 
       
  OSPF RT:0.0.0.0:5:1 OSPF ROUTER ID:150.14.24.4:0 
      mpls
  labels in/out nolabel/406 | 
Now lets we trace the Path/Label, that should have been taken By R3 to
R6 in order R7 to reach R8 Prefixes (10.7.7.0/24 à
10.8.8.0/24)
| 
Rack14R3#show bgp vpnv4 unicast vrf VPN_A labels 
  
  Network          Next Hop      In label/Out label 
Route Distinguisher: 14.14.3.3:1 (VPN_A) 
  
  10.7.7.0/24      10.14.37.7      303/nolabel 
   10.8.8.0/24      14.14.2.2       nolabel/203 
  
  10.14.37.0/24    0.0.0.0         304/nolabel(VPN_A) 
  
  10.14.68.0/24    14.14.2.2       nolabel/204 
   10.14.78.0/24    14.14.2.2       305/205 
                    10.14.37.7      305/nolabel 
  
  14.14.7.7/32     10.14.37.7      306/nolabel 
  
  14.14.8.8/32     14.14.2.2       nolabel/206 
  
  150.14.24.0/24   14.14.2.2       nolabel/207 | 
We have to know that the Above VPNv4 Label for prefix 10.8.8.0/24,
which is 203, is Locally significant for AS123 only, because its being created
by the R2 in this case
| 
Rack14R3#show mpls forwarding-table 14.14.2.2 
Local     
  Outgoing   Prefix           Bytes Label   Outgoing   Next Hop 
Label     
  Label      or Tunnel Id     Switched      interface 
302       
  101        14.14.2.2/32     0             Fa0/0      150.14.13.1 
Rack14R1#show mpls forwarding-table 14.14.2.2 
Local     
  Outgoing   Prefix           Bytes Label   Outgoing  
  Next Hop 
Label     
  Label      or Tunnel Id     Switched      interface 
101       
  Pop Label  14.14.2.2/32     13774         Fa0/0      150.14.12.2 | 
Based on the output Above, The traffic will use Label [101/203],[203]
and finally reach R2. Since R2 will consider connection to R4 as if it connects
to the CE, the traffic from R2 to R3, 10.7.7.0/24à10.8.8.0/24,
will be sent without Labels.
From the AS 456 perspective, the traffic that has been received by the
R4 will entering the ‘NORMAL’ MPLS backbone again.
| 
Rack14R4#show ip bgp vpnv4 vrf VPN_A labels 
  
  Network          Next Hop      In label/Out label 
Route Distinguisher: 14.14.4.4:1 (VPN_A) 
  
  10.7.7.0/24     
  150.14.24.2     406/nolabel 
   10.8.8.0/24      14.14.6.6       nolabel/607 
  
  10.14.37.0/24   
  150.14.24.2     405/nolabel 
  
  10.14.68.0/24    14.14.6.6       nolabel/608 
  
  10.14.78.0/24    14.14.6.6       nolabel/609 
  
  14.14.7.7/32    
  150.14.24.2     404/nolabel 
  
  14.14.8.8/32     14.14.6.6       nolabel/610 
  
  150.14.24.0/24   0.0.0.0         403/nolabel(VPN_A) | 
So R6 assign label 607 for network 10.8.8.0/24, Where R4 should use
14.14.6.6 as it next-hop.
| 
Rack14R4#show mpls forwarding-table 14.14.6.6 
Local     
  Outgoing   Prefix           Bytes Label   Outgoing  
  Next Hop 
Label     
  Label      or Tunnel Id     Switched      interface 
402       
  501        14.14.6.6/32     0             Fa0/0      150.14.45.5 
Rack14R5#show mpls forwarding-table 14.14.6.6 
Local     
  Outgoing   Prefix           Bytes Label   Outgoing  
  Next Hop 
Label     
  Label      or Tunnel Id     Switched      interface 
501       
  Pop Label  14.14.6.6/32     14580         Fa0/1.56   150.14.56.6 
Rack14R6#show ip bgp vpnv4 vrf VPN_A labels 
  
  Network          Next Hop      In label/Out label 
Route Distinguisher: 14.14.6.6:1 (VPN_A) 
  
  10.7.7.0/24      14.14.4.4       nolabel/406 
   10.8.8.0/24      10.14.68.8      607/nolabel 
  
  10.14.37.0/24    14.14.4.4       nolabel/405 
  
  10.14.68.0/24    0.0.0.0         608/nolabel(VPN_A) 
   10.14.78.0/24    10.14.68.8      609/nolabel 
  
  14.14.7.7/32     14.14.4.4       nolabel/404 
  
  14.14.8.8/32     10.14.68.8      610/nolabel 
  
  150.14.24.0/24   14.14.4.4       nolabel/403 | 
So, based on the above output, the Traffic in the AS 456 to 10.8.8.0/24
will use label [501/607],[607] and finally goes to the R8.
Let see this verification from the CE, R7 perspective ;)
| 
Rack14R7#show ip route rip 
    
  10.0.0.0/24 is subnetted, 5 subnets 
R       10.8.8.0 [120/2] via
  10.14.37.3, 00:00:00, FastEthernet0/0 
R      
  10.14.68.0 [120/2] via 10.14.37.3, 00:00:00, FastEthernet0/0 
    
  14.0.0.0/32 is subnetted, 2 subnets 
R      
  14.14.8.8 [120/2] via 10.14.37.3, 00:00:00, FastEthernet0/0 
    
  150.14.0.0/24 is subnetted, 1 subnets 
R      
  150.14.24.0 [120/1] via 10.14.37.3, 00:00:00, FastEthernet0/0 
Rack14R7#ping 10.8.8.8 source loopback 0 
Type escape sequence to abort. 
Sending 5, 100-byte ICMP Echos to 10.8.8.8,
  timeout is 2 seconds: 
Packet sent with a source address of 14.14.7.7 
!!!!! 
Success rate is 100 percent (5/5), round-trip
  min/avg/max = 116/131/152 ms 
Rack14R7#traceroute 10.8.8.8 source loopback 0 
Type escape sequence to abort. 
Tracing the route to 10.8.8.8 
  1
  10.14.37.3 40 msec 32 msec 16 msec 
  2
  150.14.13.1 [MPLS: Labels 101/203 Exp 0] 104 msec 68 msec 72 msec 
  3
  150.14.24.2 [MPLS: Label 203 Exp 0] 60 msec 48 msec 56 msec 
  4
  150.14.24.4 80 msec 84 msec 84 msec 
  5
  150.14.45.5 [MPLS: Labels 501/607 Exp 0] 144 msec 124 msec 124 msec 
  6 10.14.68.6
  [MPLS: Label 607 Exp 0] 120 msec 104 msec 108 msec 
  7
  10.14.68.8 144 msec *  172 msec | 
The advantage using this VRF Back-to-Back on Inter-AS MPLS is we don’t
need to exchange the Internal routing information, the SP will control its own
VRF import & Export policies, and the Configuration is considered as
simple.
While the drawback is that the IGP/Static Route is required between
PE-PE per Customer/VRF Basis, meaning that the more Customer that want to use
the Inter-AS, the more VRF Routing table and Link(s) required to do so ;)
 
 
  
No comments:
Post a Comment