MPLS VPN Inter-AS Option C : Cisco IOS-XE

Summary

  • ASBRs establishes IPv4 Labelled-Unicast BGP peering
  • They exchange labels and prefixes for Loopback addresses
  • Remote Loopbacks are redistributed into IGP at the ASBR
  • RRs establish VPNv4 BGP session to exchange VPN Prefixes and Labels
  • Packet in the Inter-AS link has two labels (VPN label and Transport Label )

Initial Configurations

AS 1 Routers

PE1

!
hostname PE1

vrf definition A
 rd 1:1
 !
 address-family ipv4
  route-target export 1:1
  route-target import 1:1
 exit-address-family
!
vrf definition B
 rd 1:2
 !
 address-family ipv4
  route-target export 1:2
  route-target import 1:2
 exit-address-family
!
mpls label protocol ldp
!
interface Loopback0
 ip address 11.11.11.11 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 10.11.12.11 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown
!
interface GigabitEthernet2
 vrf forwarding A
 ip address 172.16.1.1 255.255.255.252
 no shutdown
!
interface GigabitEthernet3
 vrf forwarding B
 ip address 172.16.1.5 255.255.255.252
 no shutdown
!
router ospf 1
 router-id 11.11.11.11
 passive-interface default
 no passive-interface GigabitEthernet1
 mpls ldp sync
 mpls ldp autoconfig area 0
!
router bgp 1
 bgp router-id 11.11.11.11
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 13.13.13.13 remote-as 1
 neighbor 13.13.13.13 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 13.13.13.13 activate
  neighbor 13.13.13.13 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf A
  redistribute connected
  neighbor 172.16.1.2 remote-as 65101
  neighbor 172.16.1.2 activate
 exit-address-family
 !
 address-family ipv4 vrf B
  redistribute connected
  neighbor 172.16.1.6 remote-as 65201
  neighbor 172.16.1.6 activate
 exit-address-family
!
mpls ldp router-id Loopback0
!

P1

!
hostname P1
!
mpls label protocol ldp

!
interface Loopback0
 ip address 12.12.12.12 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 10.11.12.12 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown
!
interface GigabitEthernet2
 mtu 1600
 ip address 10.12.13.12 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown

interface GigabitEthernet3
 mtu 1600
 ip address 10.12.14.12 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown


!
router ospf 1
 router-id 12.12.12.12
 passive-interface default
 no passive-interface GigabitEthernet1
 no passive-interface GigabitEthernet2
 no passive-interface GigabitEthernet3
 mpls ldp sync
 mpls ldp autoconfig area 0
!
mpls ldp router-id Loopback0
!

RR1

  • VPNv4 Peering with ASBR1 is not required assuming no CEs connected to it.
!
hostname RR1
!
mpls label protocol ldp
!
interface Loopback0
 ip address 13.13.13.13 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 10.12.13.13 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown
!
router ospf 1
 router-id 13.13.13.13
 passive-interface default
 no passive-interface GigabitEthernet1
 mpls ldp sync
 mpls ldp autoconfig area 0
!
router bgp 1
 bgp router-id 13.13.13.13
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 11.11.11.11 remote-as 1
 neighbor 11.11.11.11 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 11.11.11.11 activate
  neighbor 11.11.11.11 send-community extended
  neighbor 11.11.11.11 route-reflector-client
 exit-address-family
!
mpls ldp router-id Loopback0
!

ASBR1

!
hostname ASBR1
!
mpls label protocol ldp
1
interface Loopback0
 ip address 14.14.14.14 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 10.12.14.14 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown
!
router ospf 1
 router-id 14.14.14.14
 passive-interface default
 no passive-interface GigabitEthernet1
 mpls ldp sync
 mpls ldp autoconfig area 0
!
mpls ldp router-id Loopback0

AS 2 Routers

PE2

!
hostname PE2

vrf definition A
 rd 1:1
 !
 address-family ipv4
  route-target export 1:1
  route-target import 1:1
 exit-address-family
!
vrf definition B
 rd 1:2
 !
 address-family ipv4
  route-target export 1:2
  route-target import 1:2
 exit-address-family
!
mpls label protocol ldp
!
interface Loopback0
 ip address 21.21.21.21 255.255.255.255
 ip ospf 1 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 20.11.12.11 255.255.255.0
 ip ospf network point-to-point
 ip ospf 1 area 0
 no shutdown
!
interface GigabitEthernet2
 vrf forwarding A
 ip address 172.16.2.1 255.255.255.252
 no shutdown
!
interface GigabitEthernet3
 vrf forwarding B
 ip address 172.16.2.5 255.255.255.252
 no shutdown
!
router ospf 2
 router-id 21.21.21.21
 passive-interface default
 no passive-interface GigabitEthernet1
 mpls ldp sync
 mpls ldp autoconfig area 0
!
router bgp 2
 bgp router-id 21.21.21.21
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 23.23.23.23 remote-as 2
 neighbor 23.23.23.23 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 23.23.23.23 activate
  neighbor 23.23.23.23 send-community extended
 exit-address-family
 !
 address-family ipv4 vrf A
  redistribute connected
  neighbor 172.16.2.2 remote-as 65102
  neighbor 172.16.2.2 activate
 exit-address-family
 !
 address-family ipv4 vrf B
  redistribute connected
  neighbor 172.16.2.6 remote-as 65202
  neighbor 172.16.2.6 activate
 exit-address-family
!
mpls ldp router-id Loopback0
!

P2

!
hostname P2
!
mpls label protocol ldp

!
interface Loopback0
 ip address 22.22.22.22 255.255.255.255
 ip ospf 2 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 20.21.22.22 255.255.255.0
 ip ospf network point-to-point
 ip ospf 2 area 0
 no shutdown
!
interface GigabitEthernet2
 mtu 1600
 ip address 20.22.23.22 255.255.255.0
 ip ospf network point-to-point
 ip ospf 2 area 0
 no shutdown

interface GigabitEthernet3
 mtu 1600
 ip address 20.22.24.22 255.255.255.0
 ip ospf network point-to-point
 ip ospf 2 area 0
 no shutdown


!
router ospf 2
 router-id 22.22.22.22
 passive-interface default
 no passive-interface GigabitEthernet1
 no passive-interface GigabitEthernet2
 no passive-interface GigabitEthernet3
 mpls ldp sync
 mpls ldp autoconfig area 0
!
mpls ldp router-id Loopback0
!

RR2

  • VPNv4 Peering with ASBR2 is not required assuming no CEs connected to it.
!
hostname RR2
!
mpls label protocol ldp
!
interface Loopback0
 ip address 23.23.23.23 255.255.255.255
 ip ospf 2 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 20.22.23.23 255.255.255.0
 ip ospf network point-to-point
 ip ospf 2 area 0
 no shutdown
!
router ospf 1
 router-id 23.23.23.23
 passive-interface default
 no passive-interface GigabitEthernet1
 mpls ldp sync
 mpls ldp autoconfig area 0
!
router bgp 2
 bgp router-id 23.23.23.23
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor 21.21.21.21 remote-as 2
 neighbor 21.21.21.21 update-source Loopback0
!
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 21.21.21.21 activate
  neighbor 21.21.21.21 send-community extended
  neighbor 21.21.21.21 route-reflector-client
 exit-address-family
!
mpls ldp router-id Loopback0
!

ASBR2

!
hostname ASBR2
!
mpls label protocol ldp
!
interface Loopback0
 ip address 24.24.24.24 255.255.255.255
 ip ospf 2 area 0
!
interface GigabitEthernet1
 mtu 1600
 ip address 20.22.24.24 255.255.255.0
 ip ospf network point-to-point
 ip ospf 2 area 0
 no shutdown
!
router ospf 2
 router-id 24.24.24.24
 passive-interface default
 no passive-interface GigabitEthernet1
 mpls ldp sync
 mpls ldp autoconfig area 0
!
mpls ldp router-id Loopback0
!

Inter-AS Configuration

VRFs and Interfaces

  • VRFs are not required on the ASBRs

ASBR1

interface GigabitEthernet2
 mtu 1600
 ip address 172.16.0.1 255.255.255.252
 negotiation auto
 mpls bgp forwarding
 no shutdown

ASBR2

interface GigabitEthernet2
 mtu 1600
 ip address 172.16.0.2 255.255.255.252
 negotiation auto
 mpls bgp forwarding
 no shutdown

Inter-AS BGP

  • Local PE Loopback 0 addresses are advertised to the remote ASBR in the IPv4 LU AF.

ASBR1

router bgp 1
 bgp router-id 14.14.14.14
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 no bgp default route-target filter
 neighbor 172.16.0.2 remote-as 2
 !
 address-family ipv4
  network 11.11.11.11 mask 255.255.255.255
  network 13.13.13.13 mask 255.255.255.255
  network 14.14.14.14 mask 255.255.255.255
  neighbor 172.16.0.2 activate
  neighbor 172.16.0.2 send-label
 exit-address-family

ASBR2

router bgp 2
 bgp router-id 24.24.24.24
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 no bgp default route-target filter
 neighbor 172.16.0.1 remote-as 1
 !
 address-family ipv4
  network 21.21.21.21 mask 255.255.255.255
  network 23.23.23.23 mask 255.255.255.255
  network 24.24.24.24 mask 255.255.255.255
  neighbor 172.16.0.1 activate
  neighbor 172.16.0.1 send-label
 exit-address-family

Redistributing Remote Loopbacks into IGP

ASBR1

ip prefix-list REMOTE-LOOPBACKS seq 1 permit 21.21.21.21/32
ip prefix-list REMOTE-LOOPBACKS seq 2 permit 23.23.23.23/32
!
!
route-map REMOTE-LOOPBACKS permit 10
 match ip address prefix-list REMOTE-LOOPBACKS
!
!
router ospf 1
 redistribute bgp 1 route-map REMOTE-LOOPBACKS
!

ASBR2

ip prefix-list REMOTE-LOOPBACKS seq 1 permit 11.11.11.11/32
ip prefix-list REMOTE-LOOPBACKS seq 2 permit 13.13.13.13/32
!
!
route-map REMOTE-LOOPBACKS permit 10
 match ip address prefix-list REMOTE-LOOPBACKS
!
!
router ospf 2
 redistribute bgp 2 route-map REMOTE-LOOPBACKS
!

RR1

  • EBGP Multi-hop is required between RRs
  • Next-Hop unchanged is required between RRs
router bgp 1
 neighbor 23.23.23.23 remote-as 2
 neighbor 23.23.23.23 ebgp-multihop 255
 neighbor 23.23.23.23 update-source Loopback0
 !
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 23.23.23.23 activate
  neighbor 23.23.23.23 send-community extended
  neighbor 23.23.23.23 next-hop-unchanged
 exit-address-family

RR2

  • EBGP Multi-hop is required between RRs
  • Next-Hop unchanged is required between RRs
router bgp 2
 neighbor 13.13.13.13 remote-as 1
 neighbor 13.13.13.13 ebgp-multihop 255
 neighbor 13.13.13.13 update-source Loopback0
 ! 
 address-family ipv4
 exit-address-family
 !
 address-family vpnv4
  neighbor 13.13.13.13 activate
  neighbor 13.13.13.13 send-community extended
  neighbor 13.13.13.13 next-hop-unchanged
 exit-address-family

Verification

ASBR1

ASBR1#show bgp ipv4 unicast summary | beg Nei
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.2      4            2     154     155        7    0    0 02:16:10        3

ASBR1#show bgp ipv4 unicast
BGP table version is 7, local router ID is 14.14.14.14
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   11.11.11.11/32   10.12.14.12              3         32768 i
 *>   13.13.13.13/32   10.12.14.12              3         32768 i
 *>   14.14.14.14/32   0.0.0.0                  0         32768 i
 *>   21.21.21.21/32   172.16.0.2               3             0 2 i
 *>   23.23.23.23/32   172.16.0.2               3             0 2 i
 *>   24.24.24.24/32   172.16.0.2               0             0 2 i
ASBR1#
ASBR1#show bgp labels
% Command accepted but obsolete, unreleased or unsupported; see documentation.

   Network          Next Hop      In label/Out label
   11.11.11.11/32   10.12.14.12     19/nolabel
   13.13.13.13/32   10.12.14.12     17/nolabel
   14.14.14.14/32   0.0.0.0         imp-null/nolabel
   21.21.21.21/32   172.16.0.2      nolabel/21
   23.23.23.23/32   172.16.0.2      nolabel/20
   24.24.24.24/32   172.16.0.2      nolabel/imp-null

ASBR1#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  172.16.0.2/32    0             Gi2        172.16.0.2
17         18         13.13.13.13/32   12238057      Gi1        10.12.14.12
18         Pop Label  12.12.12.12/32   0             Gi1        10.12.14.12
19         16         11.11.11.11/32   12200000      Gi1        10.12.14.12
20         Pop Label  10.12.13.0/24    0             Gi1        10.12.14.12
21         Pop Label  10.11.12.0/24    0             Gi1        10.12.14.12
30         21         21.21.21.21/32   10214572      Gi2        172.16.0.2
31         20         23.23.23.23/32   14221610      Gi2        172.16.0.2
ASBR1#

ASBR2

ASBR2#show bgp ipv4 unicast summary | beg Nei
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
172.16.0.1      4            1     157     156       13    0    0 02:17:44        3

ASBR2#show bgp ipv4 unicast
BGP table version is 13, local router ID is 24.24.24.24
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   11.11.11.11/32   172.16.0.1               3             0 1 i
 *>   13.13.13.13/32   172.16.0.1               3             0 1 i
 *>   14.14.14.14/32   172.16.0.1               0             0 1 i
 *>   21.21.21.21/32   20.22.24.22              3         32768 i
 *>   23.23.23.23/32   20.22.24.22              3         32768 i
 *>   24.24.24.24/32   0.0.0.0                  0         32768 i
ASBR2#
ASBR2#
ASBR2#show bgp labels
% Command accepted but obsolete, unreleased or unsupported; see documentation.

   Network          Next Hop      In label/Out label
   11.11.11.11/32   172.16.0.1      nolabel/19
   13.13.13.13/32   172.16.0.1      nolabel/17
   14.14.14.14/32   172.16.0.1      nolabel/imp-null
   21.21.21.21/32   20.22.24.22     21/nolabel
   23.23.23.23/32   20.22.24.22     20/nolabel
   24.24.24.24/32   0.0.0.0         imp-null/nolabel

ASBR2#show mpls forwarding-table
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
16         Pop Label  172.16.0.1/32    0             Gi2        172.16.0.1
17         Pop Label  22.22.22.22/32   0             Gi1        20.22.24.22
18         Pop Label  20.22.23.0/24    0             Gi1        20.22.24.22
19         Pop Label  20.21.22.0/24    0             Gi1        20.22.24.22
20         17         23.23.23.23/32   14222423      Gi1        20.22.24.22
21         18         21.21.21.21/32   10214572      Gi1        20.22.24.22
22         19         11.11.11.11/32   12200000      Gi2        172.16.0.1
23         17         13.13.13.13/32   12238468      Gi2        172.16.0.1
ASBR2#

RR1

RR1#show ip route ospf | beg Gateway
Gateway of last resort is not set

      10.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O        10.11.12.0/24 [110/2] via 10.12.13.12, 02:41:27, GigabitEthernet1
O        10.12.14.0/24 [110/2] via 10.12.13.12, 02:41:27, GigabitEthernet1
      11.0.0.0/32 is subnetted, 1 subnets
O        11.11.11.11 [110/3] via 10.12.13.12, 02:41:25, GigabitEthernet1
      12.0.0.0/32 is subnetted, 1 subnets
O        12.12.12.12 [110/2] via 10.12.13.12, 02:41:27, GigabitEthernet1
      14.0.0.0/32 is subnetted, 1 subnets
O        14.14.14.14 [110/3] via 10.12.13.12, 02:41:27, GigabitEthernet1
      21.0.0.0/32 is subnetted, 1 subnets
O E2     21.21.21.21 [110/1] via 10.12.13.12, 02:16:38, GigabitEthernet1
      23.0.0.0/32 is subnetted, 1 subnets
O E2     23.23.23.23 [110/1] via 10.12.13.12, 02:16:38, GigabitEthernet1
RR1#
RR1#show bgp vpnv4 unicast all summary | beg Neighbor
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
11.11.11.11     4            1     182     194       21    0    0 02:41:31        4
23.23.23.23     4            2     154     155       21    0    0 02:05:32        4

RR1#
RR1#show bgp vpnv4 unicast all
BGP table version is 21, local router ID is 13.13.13.13
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1
 *>i  172.16.1.0/30    11.11.11.11              0    100      0 ?
 *>   172.16.2.0/30    21.21.21.21                            0 2 ?
 *>i  192.168.1.1/32   11.11.11.11              0    100      0 65101 i
 *>   192.168.1.2/32   21.21.21.21                            0 2 65102 i
Route Distinguisher: 1:2
 *>i  172.16.1.4/30    11.11.11.11              0    100      0 ?
 *>   172.16.2.4/30    21.21.21.21                            0 2 ?
 *>i  192.168.2.1/32   11.11.11.11              0    100      0 65201 i
 *>   192.168.2.2/32   21.21.21.21                            0 2 65202 i
RR1#

RR2

RR2#show ip route ospf | beg Gateway
Gateway of last resort is not set

      11.0.0.0/32 is subnetted, 1 subnets
O E2     11.11.11.11 [110/1] via 20.22.23.22, 02:10:29, GigabitEthernet1
      13.0.0.0/32 is subnetted, 1 subnets
O E2     13.13.13.13 [110/1] via 20.22.23.22, 02:10:29, GigabitEthernet1
      20.0.0.0/8 is variably subnetted, 4 subnets, 2 masks
O        20.21.22.0/24 [110/2] via 20.22.23.22, 02:42:38, GigabitEthernet1
O        20.22.24.0/24 [110/2] via 20.22.23.22, 02:42:38, GigabitEthernet1
      21.0.0.0/32 is subnetted, 1 subnets
O        21.21.21.21 [110/3] via 20.22.23.22, 02:42:38, GigabitEthernet1
      22.0.0.0/32 is subnetted, 1 subnets
O        22.22.22.22 [110/2] via 20.22.23.22, 02:42:38, GigabitEthernet1
      24.0.0.0/32 is subnetted, 1 subnets
O        24.24.24.24 [110/3] via 20.22.23.22, 02:42:37, GigabitEthernet1
RR2#show bgp vpnv4 unicast all summary | beg Neighbor
Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
13.13.13.13     4            1     156     155       21    0    0 02:06:58        4
21.21.21.21     4            2     186     197       21    0    0 02:42:51        4

RR2#show bgp vpnv4 unicast all
BGP table version is 21, local router ID is 23.23.23.23
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1
 *>   172.16.1.0/30    11.11.11.11                            0 1 ?
 *>i  172.16.2.0/30    21.21.21.21              0    100      0 ?
 *>   192.168.1.1/32   11.11.11.11                            0 1 65101 i
 *>i  192.168.1.2/32   21.21.21.21              0    100      0 65102 i
Route Distinguisher: 1:2
 *>   172.16.1.4/30    11.11.11.11                            0 1 ?
 *>i  172.16.2.4/30    21.21.21.21              0    100      0 ?
 *>   192.168.2.1/32   11.11.11.11                            0 1 65201 i
 *>i  192.168.2.2/32   21.21.21.21              0    100      0 65202 i
RR2#

PE1

PE1#show bgp vpnv4 unicast all
BGP table version is 29, local router ID is 11.11.11.11
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1 (default for vrf A)
 *>   172.16.1.0/30    0.0.0.0                  0         32768 ?
 *>i  172.16.2.0/30    21.21.21.21              0    100      0 2 ?
 *>   192.168.1.1/32   172.16.1.2               0             0 65101 i
 *>i  192.168.1.2/32   21.21.21.21              0    100      0 2 65102 i
Route Distinguisher: 1:2 (default for vrf B)
 *>   172.16.1.4/30    0.0.0.0                  0         32768 ?
 *>i  172.16.2.4/30    21.21.21.21              0    100      0 2 ?
 *>   192.168.2.1/32   172.16.1.6               0             0 65201 i
 *>i  192.168.2.2/32   21.21.21.21              0    100      0 2 65202 i
PE1#
PE1#show bgp vpnv4 unicast all 192.168.1.2/32
BGP routing table entry for 1:1:192.168.1.2/32, version 27
Paths: (1 available, best #1, table A)
  Flag: 0x100
  Advertised to update-groups:
     3
  Refresh Epoch 1
  2 65102
    21.21.21.21 (metric 1) (via default) from 13.13.13.13 (13.13.13.13)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:1:1
      mpls labels in/out nolabel/22
      rx pathid: 0, tx pathid: 0x0
      Updated on Oct 13 2022 01:41:45 UTC
PE1#show bgp vpnv4 unicast all 192.168.2.2/32
BGP routing table entry for 1:2:192.168.2.2/32, version 29
Paths: (1 available, best #1, table B)
  Flag: 0x100
  Advertised to update-groups:
     1
  Refresh Epoch 1
  2 65202
    21.21.21.21 (metric 1) (via default) from 13.13.13.13 (13.13.13.13)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:1:2
      mpls labels in/out nolabel/24
      rx pathid: 0, tx pathid: 0x0
      Updated on Oct 13 2022 01:41:45 UTC

PE1#show ip route vrf A bgp

Routing Table: A
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
B        172.16.2.0/30 [200/0] via 21.21.21.21, 03:26:17
      192.168.1.0/32 is subnetted, 2 subnets
B        192.168.1.1 [20/0] via 172.16.1.2, 04:52:06
B        192.168.1.2 [200/0] via 21.21.21.21, 03:26:17
PE1#
PE1#
PE1#show ip route vrf B bgp

Routing Table: B
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
B        172.16.2.4/30 [200/0] via 21.21.21.21, 03:26:22
      192.168.2.0/32 is subnetted, 2 subnets
B        192.168.2.1 [20/0] via 172.16.1.6, 04:52:11
B        192.168.2.2 [200/0] via 21.21.21.21, 03:26:22
PE1#

PE2

PE2#show bgp vpnv4 unicast all
BGP table version is 29, local router ID is 21.21.21.21
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
Route Distinguisher: 1:1 (default for vrf A)
 *>i  172.16.1.0/30    11.11.11.11              0    100      0 1 ?
 *>   172.16.2.0/30    0.0.0.0                  0         32768 ?
 *>i  192.168.1.1/32   11.11.11.11              0    100      0 1 65101 i
 *>   192.168.1.2/32   172.16.2.2               0             0 65102 i
Route Distinguisher: 1:2 (default for vrf B)
 *>i  172.16.1.4/30    11.11.11.11              0    100      0 1 ?
 *>   172.16.2.4/30    0.0.0.0                  0         32768 ?
 *>i  192.168.2.1/32   11.11.11.11              0    100      0 1 65201 i
 *>   192.168.2.2/32   172.16.2.6               0             0 65202 i
PE2#
PE2#
PE2#show bgp vpnv4 unicast all 192.168.1.1/32
BGP routing table entry for 1:1:192.168.1.1/32, version 27
Paths: (1 available, best #1, table A)
  Flag: 0x100
  Advertised to update-groups:
     2
  Refresh Epoch 1
  1 65101
    11.11.11.11 (metric 1) (via default) from 23.23.23.23 (23.23.23.23)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:1:1
      mpls labels in/out nolabel/22
      rx pathid: 0, tx pathid: 0x0
      Updated on Oct 13 2022 01:40:25 UTC
PE2#show bgp vpnv4 unicast all 192.168.2.1/32
BGP routing table entry for 1:2:192.168.2.1/32, version 29
Paths: (1 available, best #1, table B)
  Flag: 0x100
  Advertised to update-groups:
     1
  Refresh Epoch 1
  1 65201
    11.11.11.11 (metric 1) (via default) from 23.23.23.23 (23.23.23.23)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:1:2
      mpls labels in/out nolabel/24
      rx pathid: 0, tx pathid: 0x0
      Updated on Oct 13 2022 01:40:25 UTC
PE2#
PE2#
PE2#show ip route vrf A bgp

Routing Table: A
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
B        172.16.1.0/30 [200/0] via 11.11.11.11, 03:28:59
      192.168.1.0/32 is subnetted, 2 subnets
B        192.168.1.1 [200/0] via 11.11.11.11, 03:28:59
B        192.168.1.2 [20/0] via 172.16.2.2, 04:53:32
PE2#
PE2#show ip route vrf B bgp

Routing Table: B
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is not set

      172.16.0.0/16 is variably subnetted, 3 subnets, 2 masks
B        172.16.1.4/30 [200/0] via 11.11.11.11, 03:29:03
      192.168.2.0/32 is subnetted, 2 subnets
B        192.168.2.1 [200/0] via 11.11.11.11, 03:29:03
B        192.168.2.2 [20/0] via 172.16.2.6, 04:53:36
PE2#

P1

P1#show ip route ospf
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is not set

      11.0.0.0/32 is subnetted, 1 subnets
O        11.11.11.11 [110/2] via 10.11.12.11, 04:55:02, GigabitEthernet1
      13.0.0.0/32 is subnetted, 1 subnets
O        13.13.13.13 [110/2] via 10.12.13.13, 04:55:04, GigabitEthernet2
      14.0.0.0/32 is subnetted, 1 subnets
O        14.14.14.14 [110/2] via 10.12.14.14, 04:55:04, GigabitEthernet3
      21.0.0.0/32 is subnetted, 1 subnets
O E2     21.21.21.21 [110/1] via 10.12.14.14, 04:30:14, GigabitEthernet3
      23.0.0.0/32 is subnetted, 1 subnets
O E2     23.23.23.23 [110/1] via 10.12.14.14, 04:30:14, GigabitEthernet3
P1#

P2

P2#show ip route ospf
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, m - OMP
       n - NAT, Ni - NAT inside, No - NAT outside, Nd - NAT DIA
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       H - NHRP, G - NHRP registered, g - NHRP registration summary
       o - ODR, P - periodic downloaded static route, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR
       & - replicated local route overrides by connected

Gateway of last resort is not set

      11.0.0.0/32 is subnetted, 1 subnets
O E2     11.11.11.11 [110/1] via 20.22.24.24, 04:23:41, GigabitEthernet3
      13.0.0.0/32 is subnetted, 1 subnets
O E2     13.13.13.13 [110/1] via 20.22.24.24, 04:23:41, GigabitEthernet3
      21.0.0.0/32 is subnetted, 1 subnets
O        21.21.21.21 [110/2] via 20.21.22.21, 04:55:50, GigabitEthernet1
      23.0.0.0/32 is subnetted, 1 subnets
O        23.23.23.23 [110/2] via 20.22.23.23, 04:55:50, GigabitEthernet2
      24.0.0.0/32 is subnetted, 1 subnets
O        24.24.24.24 [110/2] via 20.22.24.24, 04:55:47, GigabitEthernet3
P2#

CE-A1

CE-A1#traceroute 192.168.1.2 source 192.168.1.1 numeric
Type escape sequence to abort.
Tracing the route to 192.168.1.2
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.1.1 [AS 1] 0 msec 0 msec 0 msec
  2 10.11.12.12 [MPLS: Labels 19/22 Exp 0] 3 msec 2 msec 2 msec
  3 10.12.14.14 [MPLS: Labels 30/22 Exp 0] 2 msec 2 msec 2 msec
  4 172.16.0.2 [MPLS: Labels 21/22 Exp 0] 2 msec 2 msec 2 msec
  5 20.22.24.22 [MPLS: Labels 18/22 Exp 0] 2 msec 2 msec 3 msec
  6 172.16.2.1 [AS 2] [MPLS: Label 22 Exp 0] 2 msec 2 msec 2 msec
  7 172.16.2.2 [AS 2] 2 msec *  2 msec
CE-A1#

CE-A2

CE-A2#traceroute 192.168.1.1 source 192.168.1.2 numeric
Type escape sequence to abort.
Tracing the route to 192.168.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.2.1 [AS 2] 0 msec 0 msec 1 msec
  2 20.21.22.22 [MPLS: Labels 19/22 Exp 0] 2 msec 2 msec 2 msec
  3 20.22.24.24 [MPLS: Labels 22/22 Exp 0] 2 msec 2 msec 2 msec
  4 172.16.0.1 [MPLS: Labels 19/22 Exp 0] 2 msec 2 msec 2 msec
  5 10.12.14.12 [MPLS: Labels 16/22 Exp 0] 2 msec 2 msec 2 msec
  6 172.16.1.1 [AS 1] [MPLS: Label 22 Exp 0] 2 msec 2 msec 2 msec
  7 172.16.1.2 [AS 1] 2 msec *  2 msec
CE-A2#

CE-B1

CE-B1#traceroute 192.168.2.2 source 192.168.2.1 numeric
Type escape sequence to abort.
Tracing the route to 192.168.2.2
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.1.5 [AS 1] 1 msec 0 msec 1 msec
  2 10.11.12.12 [MPLS: Labels 19/24 Exp 0] 3 msec 3 msec 2 msec
  3 10.12.14.14 [MPLS: Labels 30/24 Exp 0] 2 msec 2 msec 2 msec
  4 172.16.0.2 [MPLS: Labels 21/24 Exp 0] 3 msec 2 msec 2 msec
  5 20.22.24.22 [MPLS: Labels 18/24 Exp 0] 2 msec 2 msec 2 msec
  6 172.16.2.5 [AS 2] [MPLS: Label 24 Exp 0] 2 msec 2 msec 2 msec
  7 172.16.2.6 [AS 2] 2 msec *  2 msec
CE-B1#

CE-B2

CE-B2#traceroute 192.168.2.1 source 192.168.2.2 numeric
Type escape sequence to abort.
Tracing the route to 192.168.2.1
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.2.5 [AS 2] 0 msec 0 msec 1 msec
  2 20.21.22.22 [MPLS: Labels 19/24 Exp 0] 2 msec 2 msec 2 msec
  3 20.22.24.24 [MPLS: Labels 22/24 Exp 0] 2 msec 2 msec 1 msec
  4 172.16.0.1 [MPLS: Labels 19/24 Exp 0] 1 msec 2 msec 2 msec
  5 10.12.14.12 [MPLS: Labels 16/24 Exp 0] 2 msec 2 msec 2 msec
  6 172.16.1.5 [AS 1] [MPLS: Label 24 Exp 0] 3 msec 2 msec 2 msec
  7 172.16.1.6 [AS 1] 2 msec *  2 msec
CE-B2#

Packet Capture in the Inter-AS link

LSP for 192.168.1.2/32

PE1

PE1#show bgp vpnv4 unicast vrf A 192.168.1.2/32
BGP routing table entry for 1:1:192.168.1.2/32, version 27
Paths: (1 available, best #1, table A)
  Flag: 0x100
  Advertised to update-groups:
     3
  Refresh Epoch 1
  2 65102
    21.21.21.21 (metric 1) (via default) from 13.13.13.13 (13.13.13.13)
      Origin IGP, metric 0, localpref 100, valid, internal, best
      Extended Community: RT:1:1
      mpls labels in/out nolabel/22
      rx pathid: 0, tx pathid: 0x0
      Updated on Oct 13 2022 01:41:45 UTC
PE1#

PE1#show ip route 21.21.21.21 255.255.255.255
Routing entry for 21.21.21.21/32
  Known via "ospf 1", distance 110, metric 1
  Tag 2, type extern 2, forward metric 2
  Last update from 10.11.12.12 on GigabitEthernet1, 04:40:27 ago
  Routing Descriptor Blocks:
  * 10.11.12.12, from 14.14.14.14, 04:40:27 ago, via GigabitEthernet1
      Route metric is 1, traffic share count is 1
      Route tag 2
PE1#

PE1#show mpls ldp bindings 21.21.21.21 32
  lib entry: 21.21.21.21/32, rev 16
	local binding:  label: 25
	remote binding: lsr: 12.12.12.12:0, label: 19
PE1#

PE1#show mpls forwarding-table  21.21.21.21 32
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
25         19         21.21.21.21/32   0             Gi1        10.11.12.12
PE1#

PE1#show ip cef vrf A 192.168.1.2/32 detai
192.168.1.2/32, epoch 2, flags [rib defined all labels]
  recursive via 21.21.21.21 label 22
    nexthop 10.11.12.12 GigabitEthernet1 label 19-(local:25)
PE1#

P1

P1#show mpls forwarding-table labels 19
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
19         30         21.21.21.21/32   22422480      Gi3        10.12.14.14
P1#

ASBR1

ASBR1#show mpls forwarding-table labels 30
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
30         21         21.21.21.21/32   22423284      Gi2        172.16.0.2
ASBR1#

ASBR2

ASBR2#show mpls forwarding-table labels 21
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
21         18         21.21.21.21/32   22424088      Gi1        20.22.24.22
ASBR2#

P2

P2#show mpls forwarding-table labels 18
Local      Outgoing   Prefix           Bytes Label   Outgoing   Next Hop
Label      Label      or Tunnel Id     Switched      interface
18         Pop Label  21.21.21.21/32   35471358      Gi1        20.21.22.21
P2#

PE2

PE2#show ip cef vrf A 192.168.1.2/32 detail
192.168.1.2/32, epoch 2, flags [rib only nolabel, rib defined all labels]
  dflt local label info: other/22 [0x2]
  recursive via 172.16.2.2
    attached to GigabitEthernet2
PE2#

Summary

  • Loopback0s of local PEs and RRs are advertised by the ASBR to the remote AS with labels.
  • Loopback0s of the remote PEs are redistributed into local IGP by the ASBR.
  • VPNv4 peering is established between RRs.
  • Above is a EBGP multi-hop session. This needs to be configured explicitly using “ebgp-multihop”.
  • RR should not change next-hop of the VPNv4 prefixes advertised to the remote AS. This needs to be configured explicitly using “next-hop-unchanged”.