Tuesday, February 9, 2016

L3VPN task #8. Inter-AS L3VPN - part 3.

Topology:



Use configuration from L3VPN task #7 as initial configuration for this task.

Requirements: 

Change the configuration from the previous task to comply with below requirements.

1. Reduce the memory and computational resources required from the ASBR routers.  
2. Ensure that Customers A traffic uses same LSP "end-to-end". 
3. Traffic from R10 to R11 shall flow via R9-R7 link, and returning traffic (R11 to R10) shall flow         via R4-R3 links. *this requirement remains from the previous task. 

Solution:

Highlight the text below to reveal the solution.

This task requires understanding of Inter-AS L3VPN Option 10C (and comparing between the different options). 
Implementing option 10C reduces the amount of resources required on ASBRs, by moving the load to route-reflectors, which are supposed to be off the traffic path in real-life networks. The downside is that PE and RR loopbacks reachability has to be exposed between the two service providers. 

Note the difference in implementation between IOS and IOS-XR. IOS-XR uses an address-family "ipv4 labeled-unicast" between the ASBRs. 


R2:

!
router bgp 19
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor CLIENTS peer-group
 neighbor CLIENTS remote-as 19
 neighbor CLIENTS update-source Loopback0
 neighbor 19.0.1.1 peer-group CLIENTS
 neighbor 19.0.3.3 peer-group CLIENTS
 neighbor 19.0.9.9 peer-group CLIENTS
 neighbor 20.0.5.5 remote-as 20
 neighbor 20.0.5.5 ebgp-multihop 10
 neighbor 20.0.5.5 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor CLIENTS send-community both
  neighbor CLIENTS route-reflector-client
  neighbor 19.0.1.1 activate
  neighbor 19.0.3.3 activate
  neighbor 19.0.9.9 activate
  neighbor 20.0.5.5 activate
  neighbor 20.0.5.5 send-community both
  neighbor 20.0.5.5 next-hop-unchanged
 exit-address-family

!

R3:

router ospf 1
 redistribute connected
 redistribute bgp 19 route-policy BGP2OSPF
 area 0
  interface Loopback0
   network point-to-point
  !
  interface GigabitEthernet0/0/0/0
   network point-to-point
  !
 !
!
router bgp 19
 address-family ipv4 unicast
  redistribute ospf 1 route-policy OSPF2BGP
  allocate-label all
 !
 address-family vpnv4 unicast
 !
 neighbor 19.0.2.2
  remote-as 19
  update-source Loopback0
  address-family vpnv4 unicast
  !
 !
 neighbor 19.0.34.4
  remote-as 20
  address-family ipv4 labeled-unicast
   route-policy ANY in
   route-policy ANY out
  !
 !
!
!
prefix-set LOC_LPB
  19.0.1.1/32,
  19.0.2.2/32
end-set
!
prefix-set REM_LPB
  20.0.5.5/32,
  20.0.6.6/32
end-set
!
route-policy ANY
  pass
end-policy
!
route-policy BGP2OSPF
  if destination in REM_LPB then
    pass
  endif
end-policy
!
route-policy OSPF2BGP
  if destination in LOC_LPB then
    pass
  endif
end-policy
!

R4:

router isis AS20
 is-type level-2-only
 net 49.0020.0000.0000.0004.00
 address-family ipv4 unicast
  redistribute bgp 20 level-2 route-policy BGP2ISIS
 !
 !
 interface Loopback0
  address-family ipv4 unicast
  !
 !
 interface GigabitEthernet0/0/0/0
  address-family ipv4 unicast
  !
 !
!

router bgp 20
 address-family ipv4 unicast
  redistribute isis AS20 route-policy ISIS2BGP
  allocate-label all
 !
 address-family vpnv4 unicast
 !
 neighbor 20.0.5.5
  remote-as 20
  update-source Loopback0
  address-family vpnv4 unicast
   route-policy HIGH_LP out
  !
 !
 neighbor 19.0.34.3
  remote-as 19
  address-family ipv4 labeled-unicast
   route-policy ANY in
   route-policy ANY out
  !
 !
!
!
prefix-set LOC_LPB
  20.0.5.5/32,
  20.0.6.6/32
end-set
!
prefix-set REM_LPB
  19.0.1.1/32,
  19.0.2.2/32
end-set
!
route-policy ANY
  pass
end-policy
!
route-policy HIGH_LP
  set local-preference 1000
end-policy
!
route-policy BGP2ISIS
  if destination in REM_LPB then
    pass
  endif
end-policy
!
route-policy ISIS2BGP
  if destination in LOC_LPB then
    pass
  endif
end-policy
!


R7: 

!
router isis AS20
 mpls ldp autoconfig
 net 49.0020.0000.0000.0007.00
 is-type level-2-only
 redistribute bgp 20 metric 20 route-map BGP2ISIS
!
router bgp 20
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 20.0.5.5 remote-as 20
 neighbor 20.0.5.5 update-source Loopback0
 neighbor 20.0.79.9 remote-as 19
 !
 address-family ipv4
  redistribute isis AS20 level-2 route-map ISIS2BGP
  neighbor 20.0.79.9 activate
  neighbor 20.0.79.9 send-label
 exit-address-family
 !
 address-family vpnv4
  neighbor 20.0.5.5 activate
  neighbor 20.0.5.5 send-community both
 exit-address-family
!
!
ip prefix-list LOC_LPB seq 5 permit 20.0.5.5/32
ip prefix-list LOC_LPB seq 10 permit 20.0.6.6/32
!
ip prefix-list REM_LPB seq 5 permit 19.0.1.1/32
ip prefix-list REM_LPB seq 10 permit 19.0.2.2/32
!
route-map BGP2ISIS permit 10
 match ip address prefix-list REM_LPB
!
route-map ISIS2BGP permit 10
 match ip address prefix-list LOC_LPB
!

R9:

!
router ospf 1
 mpls ldp autoconfig
 router-id 19.0.9.9
 redistribute bgp 19 metric-type 1 subnets route-map BGP2OSPF
!
router bgp 19
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 19.0.2.2 remote-as 19
 neighbor 19.0.2.2 update-source Loopback0
 neighbor 20.0.79.7 remote-as 20
 !
 address-family ipv4
  redistribute ospf 1 route-map OSPF2BGP
  neighbor 20.0.79.7 activate
  neighbor 20.0.79.7 send-label
 exit-address-family
 !
 address-family vpnv4
  neighbor 19.0.2.2 activate
  neighbor 19.0.2.2 send-community both
  neighbor 19.0.2.2 route-map HIGH_LP out
 exit-address-family
!
!
ip prefix-list LOC_LPB seq 5 permit 19.0.1.1/32
ip prefix-list LOC_LPB seq 10 permit 19.0.2.2/32
!
ip prefix-list REM_LPB seq 5 permit 20.0.5.5/32
ip prefix-list REM_LPB seq 10 permit 20.0.6.6/32
!
route-map BGP2OSPF permit 10
 match ip address prefix-list REM_LPB
!
route-map OSPF2BGP permit 10
 match ip address prefix-list LOC_LPB

!



Verification:

R10#traceroute 10.10.11.11 source lo0 numeric
Type escape sequence to abort.
Tracing the route to 10.10.11.11
VRF info: (vrf in name/id, vrf out name/id)
  1 19.0.10.1 5 msec 4 msec 5 msec
  2 19.0.12.2 [MPLS: Labels 20/21 Exp 0] 2 msec 2 msec 2 msec
  3 19.0.29.9 [MPLS: Labels 25/21 Exp 0] 2 msec 2 msec 1 msec
  4 20.0.79.7 [MPLS: Labels 17/21 Exp 0] 2 msec 2 msec 2 msec
  5 20.0.57.5 [MPLS: Labels 17/21 Exp 0] 2 msec 1 msec 2 msec
  6 20.0.11.6 [MPLS: Label 21 Exp 0] 2 msec 2 msec 2 msec
  7 20.0.11.11 1 msec 1 msec 2 msec

R11#traceroute 10.10.10.10 source lo0
Type escape sequence to abort.
Tracing the route to 10.10.10.10
VRF info: (vrf in name/id, vrf out name/id)
  1 20.0.11.6 5 msec 4 msec 5 msec
  2 20.0.56.5 [MPLS: Labels 19/21 Exp 0] 2 msec 2 msec 2 msec
  3 20.0.45.4 [MPLS: Labels 16013/21 Exp 0] 2 msec 1 msec 1 msec
  4 19.0.34.3 [MPLS: Labels 16000/21 Exp 0] 2 msec 1 msec 1 msec
  5 19.0.23.2 [MPLS: Labels 18/21 Exp 0] 2 msec 1 msec 2 msec
  6 19.0.10.1 [MPLS: Label 21 Exp 0] 2 msec 2 msec 1 msec
  7 19.0.10.10 2 msec 1 msec 1 msec

R1#sho ip cef vrf CUST_A 10.10.11.11 detail
10.10.11.0/24, epoch 0, flags rib defined all labels
  recursive via 20.0.6.6 label 21
    nexthop 19.0.12.2 Ethernet0/0 label 20

R1#sho ip cef vrf CUST_A 10.10.11.11
10.10.11.0/24
  nexthop 19.0.12.2 Ethernet0/0 label 20 21


R1#   show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         16         19.0.9.9/32      0             Et0/0      19.0.12.2
17         17         19.0.3.3/32      0             Et0/0      19.0.12.2
18         Pop Label  19.0.2.2/32      0             Et0/0      19.0.12.2
19         Pop Label  19.0.29.0/24     0             Et0/0      19.0.12.2
20         Pop Label  19.0.23.0/24     0             Et0/0      19.0.12.2
21         No Label   10.10.10.0/24[V] 439122        Et1/0      19.0.10.10
22         No Label   19.0.10.0/24[V]  231436        aggregate/CUST_A
23         19         20.0.5.5/32      0             Et0/0      19.0.12.2
24         20         20.0.6.6/32      0             Et0/0      19.0.12.2
25         21         19.0.34.0/24     0             Et0/0      19.0.12.2


No comments:

Post a Comment