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.
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
!
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
!
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