In the previous post, we reviewed VRF-to-VRF Inter-AS MPLS VPNs, now we want to go over the other option, which is the use of MP-eBGP at ASBRs for prefix exchange. This method is more scalable and felixable than back-to-back VRFs and only one interface is required between providers routers.
- No VRF is required.
- Automatic Route filtering must be disabled (no bgp default route-target filter)
- MPLS Label switching between providers is required (using MP-eBGP)
- Next-hop-self is required on ASBRs for internal PE neighbors.
- Eliminates the need of any other label protocol like LDP/TDP between two ASBRs.
- non-VPN networks can act as transit network for VPN traffic.
With reference to our previous setup, we are going to create MP-iBGP between PEs inside AS and MP-eBGP between ASBRs.
PE Configurations
R3:
ip vrf A
rd 3.3.3.3:1
route-target export 700:1
route-target import 600:1
!
router ospf 1
mpls ldp autoconfig area 0
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router rip
version 2
no auto-summary
!
address-family ipv4 vrf A
redistribute bgp 700 metric transparent
network 172.16.0.0
no auto-summary
exit-address-family
!
router bgp 700
no bgp default ipv4-unicast
bgp log-neighbor-changes
neighbor 7.7.7.7 remote-as 700
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 A
redistribute rip
no synchronization
exit-address-family
!
R7:
router bgp 700
no bgp default ipv4-unicast
no bgp default route-target filter
bgp log-neighbor-changes
neighbor 3.3.3.3 remote-as 700
neighbor 3.3.3.3 update-source Loopback0
neighbor 172.16.67.6 remote-as 600
!
address-family vpnv4
neighbor 3.3.3.3 activate
neighbor 3.3.3.3 send-community extended
neighbor 3.3.3.3 next-hop-self
neighbor 172.16.67.6 activate
neighbor 172.16.67.6 send-community extended
exit-address-family
!
R7#sh mpls forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 19 3.3.3.3/32 Et0/0 172.16.70.10
17 Pop tag 172.16.30.0/24 Et0/0 172.16.70.10
18 Pop tag 10.10.10.10/32 Et0/0 172.16.70.10
19 26 2.2.2.2:1:172.16.24.0/24 Et0/1.10 172.16.67.6
20 25 2.2.2.2:1:150.1.4.4/32 Et0/1.10 172.16.67.6
21 24 2.2.2.2:1:172.16.45.0/24 Et0/1.10 172.16.67.6
22 Pop tag 172.16.67.6/32 Et0/1.10 172.16.67.6
23 24 3.3.3.3:1:150.1.5.5/32 Et0/0 172.16.70.10
24 22 3.3.3.3:1:172.16.45.0/24 Et0/0 172.16.70.10
25 23 3.3.3.3:1:172.16.35.0/24 Et0/0 172.16.70.10
R7#sh ip bgp vpnv4 all labels
Network Next Hop In label/Out label
Route Distinguisher: 2.2.2.2:1
150.1.4.4/32 172.16.67.6 20/25
172.16.24.0/24 172.16.67.6 19/26
172.16.45.0/24 172.16.67.6 21/24
Route Distinguisher: 3.3.3.3:1
150.1.5.5/32 3.3.3.3 23/24
172.16.35.0/24 3.3.3.3 25/23
172.16.45.0/24 3.3.3.3 24/22
CE Trace-route
R5#sh ip route
172.16.0.0/24 is subnetted, 3 subnets
C 172.16.45.0 is directly connected, Ethernet0/3
C 172.16.35.0 is directly connected, Ethernet0/0
R 172.16.24.0 [120/1] via 172.16.35.3, 00:00:25, Ethernet0/0
150.1.0.0/32 is subnetted, 2 subnets
C 150.1.5.5 is directly connected, Loopback0
R 150.1.4.4 [120/1] via 172.16.35.3, 00:00:25, Ethernet0/0
R5#trace 150.1.4.4 source 150.1.5.5
1 172.16.35.3
2 172.16.30.10 [MPLS: Labels 16/20 Exp 0]
3 172.16.70.7 [MPLS: Label 20 Exp 0]
4 172.16.67.6 [MPLS: Label 25 Exp 0]
5 172.16.16.1 [MPLS: Labels 18/16 Exp 0]
6 172.16.24.2 [MPLS: Label 16 Exp 0]
7 172.16.24.4