Wednesday, April 11, 2018

MPLS Inter AS Option 2 / Option B VPNv4 BGP Exchange

In this post we'll take a look at Option B which is a VPNv4 eBGP peering in the global table to connect the 2 MPLS SPs together. The purpose of the VPNv4 AFI BGP peering is to easily exchange VPNv4 traffic with each other. Just like in Option C, we'll lay out the steps that are needed to get the configuration working.

What needs to be implemented ahead of time is the Intra AS VPN setup, IGP/LDP, MP-BGP, VRFs/PE-CE routing. 
1. VPNv4 eBGP peering between the ASBRs.
2. Allow VPNv4 routes. We'll be using the IOS "no bgp default route-target filter" and XR "retain route-target all". This will just allow whatever route targets to be learned.
Option B is a pretty straightforward configuration overall. Not as configuration intensive as Option A or C. The Intra AS configuration is in place already. We have to configure the eBGP VPNv4 peering and disable the default route-target filter and enable retain route-target all under BGP.

With that said, unlike Option C and CSC, we'll have 3 separate LSPs in our setup. I will break that down once the traceroute is complete.



R5
router bgp 50693
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 no bgp default route-target filter
 neighbor 100.64.56.6 remote-as 2
 neighbor 192.0.2.8 remote-as 50693
 neighbor 192.0.2.8 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 100.64.56.6 activate
  neighbor 100.64.56.6 send-community extended
  neighbor 192.0.2.8 activate
  neighbor 192.0.2.8 send-community extended
  neighbor 192.0.2.8 next-hop-self
 exit-address-family




R6
router bgp 2
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 no bgp default route-target filter
 neighbor 100.64.56.5 remote-as 50693
 neighbor 100.64.166.16 remote-as 50693
 neighbor 192.0.2.23 remote-as 2
 neighbor 192.0.2.23 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 100.64.56.5 activate
  neighbor 100.64.56.5 send-community extended
  neighbor 100.64.166.16 activate
  neighbor 100.64.166.16 send-community extended
  neighbor 192.0.2.23 activate
  neighbor 192.0.2.23 send-community extended
  neighbor 192.0.2.23 next-hop-self
 exit-address-family




XR6
router bgp 50693
 address-family vpnv4 unicast
  retain route-target all
 !
 neighbor 100.64.166.6
  remote-as 2
  address-family ipv4 labeled-unicast
   route-policy RPL_LOCAL_PREF in
   route-policy RPL_EBGP_PEERINGS out
  !
  address-family vpnv4 unicast
   route-policy RPL_EBGP_PEERINGS in
   route-policy RPL_EBGP_PEERINGS out

With the configuration in place now, we'll verify.

R5#show bgp vpnv4 unicast all summary | b Neighbor
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
100.64.56.6     4            2     141     143       17    0    0 02:03:22        2
192.0.2.8       4        50693     152     150       17    0    0 02:10:42        4

R5#show bgp vpnv4 unicast all | b Network
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1 (default for vrf CSC)
 *>i 100.64.21.0/24   192.0.2.1                0    100      0 i
 *>  100.64.114.0/24  100.64.56.6                            0 2 65004 i
 *>i 100.64.165.0/24  192.0.2.15               0    100      0 65016 i
 *>i 192.0.2.2/32     192.0.2.1                0    100      0 65002 i
 *>  192.0.2.4/32     100.64.56.6                            0 2 65004 i
 *>i 192.0.2.16/32    192.0.2.15               0    100      0 65016 i


R6#sh bgp vpnv4 unicast all summary | b Neighbor
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
100.64.56.5     4        50693     145     142       15    0    0 02:04:46        4
100.64.166.16   4        50693     127     140       15    0    0 02:01:12        4
192.0.2.23      4            2     135     150       15    0    0 02:08:25        2

R6#sh bgp vpnv4 unicast all | b Network
     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1 (default for vrf CSC)
 *   100.64.21.0/24   100.64.166.16                          0 50693 i
 *>                   100.64.56.5                            0 50693 i
 *>i 100.64.114.0/24  192.0.2.11               0    100      0 65004 i
 *   100.64.165.0/24  100.64.166.16                          0 50693 65016 i
 *>                   100.64.56.5                            0 50693 65016 i
 *   192.0.2.2/32     100.64.166.16                          0 50693 65002 i
 *>                   100.64.56.5                            0 50693 65002 i
 *>i 192.0.2.4/32     192.0.2.11               0    100      0 65004 i
 *   192.0.2.16/32    100.64.166.16                          0 50693 65016 i
 *>                   100.64.56.5                            0 50693 65016 i



RP/0/0/CPU0:XR6#show bgp vpnv4 unicast summary | b Neighbor
Wed Apr 11 21:16:57.455 UTC
Neighbor        Spk    AS MsgRcvd MsgSent   TblVer  InQ OutQ  Up/Down  St/PfxRcd
100.64.166.6      0     2     186     169       17    0    0 02:03:57          2

RP/0/0/CPU0:XR6#show bgp vpnv4 unicast | b Network
Wed Apr 11 21:17:21.413 UTC
   Network            Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1
*>i100.64.21.0/24     192.0.2.1                0    100      0 i
*> 100.64.114.0/24    100.64.166.6                           0 2 65004 i
* i                   192.0.2.5                0    100      0 2 65004 i
*>i100.64.165.0/24    192.0.2.15               0    100      0 65016 i
*>i192.0.2.2/32       192.0.2.1                0    100      0 65002 i
*> 192.0.2.4/32       100.64.166.6                           0 2 65004 i
* i                   192.0.2.5                0    100      0 2 65004 i
*>i192.0.2.16/32      192.0.2.15               0    100      0 65016 i

Processed 6 prefixes, 8 paths



Now that we have seen that the routes have been propagated and learned. We'll focus on the end to end connectivity the 3 LSPs.

R2#traceroute 192.0.2.4 source lo0 num
Type escape sequence to abort.
Tracing the route to 192.0.2.4
VRF info: (vrf in name/id, vrf out name/id)
  1 100.64.21.1 [AS 50693] 5 msec 3 msec 4 msec
  2 100.64.17.7 [MPLS: Labels 26/44 Exp 0] 9 msec 8 msec 10 msec
  3 100.64.75.5 [MPLS: Label 44 Exp 0] 31 msec 31 msec 31 msec
  4 100.64.56.6 [MPLS: Label 28 Exp 0] 30 msec 31 msec 32 msec
  5 100.64.106.10 [MPLS: Labels 17/57 Exp 0] 21 msec 32 msec 31 msec
  6 100.64.114.11 [AS 65004] [MPLS: Label 57 Exp 0] 19 msec 19 msec 72 msec
  7 100.64.114.4 [AS 65004] 49 msec *  8 msec



R2#traceroute 192.0.2.4 source lo0 num
LSP1
  1 100.64.21.1 [AS 50693] 5 msec 3 msec 4 msec
  2 100.64.17.7 [MPLS: Labels 26/44 Exp 0] 9 msec 8 msec 10 msec
  3 100.64.75.5 [MPLS: Label 44 Exp 0] 31 msec 31 msec 31 msec

LSP2
  4 100.64.56.6 [MPLS: Label 28 Exp 0] 30 msec 31 msec 32 msec

LSP3
  5 100.64.106.10 [MPLS: Labels 17/57 Exp 0] 21 msec 32 msec 31 msec
  6 100.64.114.11 [AS 65004] [MPLS: Label 57 Exp 0] 19 msec 19 msec 72 msec
  7 100.64.114.4 [AS 65004] 49 msec *  8 msec

The reason for the 3 LSPs, three separate next hops.
LSP1 - ingress PE to egress PE/ASBR
LSP2 - egress PE/ASBR to ingress PE/ASBR
LSP3 - ingress PE/ASBR to egress PE

No comments:

Post a Comment