BGP is needed between the PE routers to exhange customer routes. The VPNv4 and VPNv6 address families are used to allocate labels to customer learned routes. If VPNv4 or VPNv6 is not enabled, then the routes between the PEs won't be exchanged.
The below configuration is what is used to configure the BGP route-reflector.
router bgp 100
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor IBGP peer-group
neighbor IBGP remote-as 100
neighbor IBGP update-source Loopback0
neighbor 192.0.2.1 peer-group IBGP
neighbor 192.0.2.2 peer-group IBGP
neighbor 192.0.2.4 peer-group IBGP
neighbor 192.0.2.5 peer-group IBGP
neighbor 192.0.2.10 peer-group IBGP
neighbor 192.0.2.12 peer-group IBGP
neighbor 192.0.2.13 peer-group IBGP
neighbor 192.0.2.16 peer-group IBGP
!
address-family ipv4
exit-address-family
!
address-family vpnv4
neighbor IBGP send-community extended
neighbor IBGP route-reflector-client
neighbor 192.0.2.1 activate
neighbor 192.0.2.2 activate
neighbor 192.0.2.4 activate
neighbor 192.0.2.5 activate
neighbor 192.0.2.10 activate
neighbor 192.0.2.12 activate
neighbor 192.0.2.13 activate
neighbor 192.0.2.16 activate
exit-address-family
!
address-family vpnv6
neighbor IBGP send-community extended
neighbor IBGP route-reflector-client
neighbor 192.0.2.1 activate
neighbor 192.0.2.2 activate
neighbor 192.0.2.4 activate
neighbor 192.0.2.5 activate
neighbor 192.0.2.10 activate
neighbor 192.0.2.12 activate
neighbor 192.0.2.13 activate
neighbor 192.0.2.16 activate
exit-address-family
The below configuration is used to configure the PE router.
router bgp 100
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 192.0.2.3 remote-as 100
neighbor 192.0.2.3 update-source Loopback0
neighbor 192.0.2.9 remote-as 100
neighbor 192.0.2.9 update-source Loopback0
!
address-family ipv4
exit-address-family
!
address-family vpnv4
neighbor 192.0.2.3 activate
neighbor 192.0.2.3 send-community extended
neighbor 192.0.2.9 activate
neighbor 192.0.2.9 send-community extended
exit-address-family
!
address-family ipv4 mdt
neighbor 192.0.2.3 activate
neighbor 192.0.2.3 send-community extended
neighbor 192.0.2.9 activate
neighbor 192.0.2.9 send-community extended
exit-address-family
!
address-family vpnv6
neighbor 192.0.2.3 activate
neighbor 192.0.2.3 send-community extended
neighbor 192.0.2.9 activate
neighbor 192.0.2.9 send-community extended
exit-address-family
CSR1#show bgp vpnv4 unicast all summary
BGP router identifier 192.0.2.1, local AS number 100
BGP table version is 741, main routing table version 741
45 network entries using 11520 bytes of memory
62 path entries using 7440 bytes of memory
21/19 BGP path/bestpath attribute entries using 5712 bytes of memory
9 BGP rrinfo entries using 360 bytes of memory
8 BGP AS-PATH entries using 192 bytes of memory
10 BGP extended community entries using 340 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 25564 total bytes of memory
BGP activity 138/78 prefixes, 765/683 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
100.1.8.8 4 65008 1343 1360 741 0 0 20:17:58 1
100.1.17.17 4 65017 1316 1362 741 0 0 20:14:50 5
192.0.2.3 4 100 1478 1362 741 0 0 20:21:53 22
192.0.2.9 4 100 320 330 741 0 0 04:47:52 17
From CSR1 we see what routes have been learned from the other BGP peers.
CSR1#show bgp vpnv4 unicast rd 100:1
BGP table version is 741, local router ID is 192.0.2.1
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,
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: 100:1 (default for vrf C1)
Export Map: RM_ROUTE_LEAKING, Address-Family: IPv4 Unicast, Pfx Count/Limit: 0/1000
* i 10.18.19.0/24 192.0.2.13 1 100 0 ?
*>i 192.0.2.13 1 100 0 ?
*>i 10.21.24.0/24 192.0.2.2 101 100 0 ?
*> 10.100.1.0/24 101.1.8.8 1 32768 ?
*> 10.100.8.0/24 101.1.8.8 1 32768 ?
* i 10.100.18.0/24 192.0.2.5 1 100 0 ?
*>i 192.0.2.5 1 100 0 ?
* i 10.100.19.0/24 192.0.2.13 1 100 0 ?
*>i 192.0.2.13 1 100 0 ?
*> 10.100.50.0/24 101.1.8.8 1 32768 ?
* i 10.100.100.0/24 192.0.2.5 1 100 0 ?
Network Next Hop Metric LocPrf Weight Path
*>i 192.0.2.5 1 100 0 ?
*> 10.100.110.0/24 101.1.8.8 1 32768 ?
*> 10.100.200.0/24 101.1.8.8 1 32768 ?
*> 10.101.8.0/24 101.1.8.8 1 32768 ?
* i 10.101.18.0/24 192.0.2.5 1 100 0 ?
*>i 192.0.2.5 1 100 0 ?
* i 10.101.19.0/24 192.0.2.13 1 100 0 ?
*>i 192.0.2.13 1 100 0 ?
*> 10.101.82.0/24 101.1.8.8 1 32768 ?
*> 10.101.83.0/24 101.1.8.8 1 32768 ?
*> 10.101.84.0/24 101.1.8.8 1 32768 ?
*>i 10.102.21.21/32 192.0.2.2 102 100 0 ?
*>i 10.102.24.24/32 192.0.2.2 2 100 0 ?
*> 101.1.8.0/24 0.0.0.0 0 32768 ?
*> 101.1.17.0/24 0.0.0.0 0 32768 ?
* i 101.5.18.0/24 192.0.2.5 0 100 0 ?
*>i 192.0.2.5 0 100 0 ?
* i 101.13.19.0/24 192.0.2.13 0 100 0 ?
*>i 192.0.2.13 0 100 0 ?
*>i 102.2.24.0/24 192.0.2.2 0 100 0 ?
*>i 102.4.21.0/24 192.0.2.2 102 100 0 ?
*>i 192.0.200.2/32 192.0.2.2 0 100 0 i
We can see what routes have been advertised to us from the route reflector.
CSR1#show bgp vpnv6 unicast all summary
BGP router identifier 192.0.2.1, local AS number 100
BGP table version is 982, main routing table version 982
10 network entries using 2800 bytes of memory
15 path entries using 2220 bytes of memory
4/4 BGP path/bestpath attribute entries using 1088 bytes of memory
9 BGP rrinfo entries using 360 bytes of memory
8 BGP AS-PATH entries using 192 bytes of memory
10 BGP extended community entries using 340 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 7000 total bytes of memory
BGP activity 138/78 prefixes, 765/683 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.0.2.3 4 100 1484 1368 982 0 0 20:27:18 5
192.0.2.9 4 100 325 336 982 0 0 04:53:17 5
CSR1#show bgp vpnv6 unicast rd 100:1
BGP table version is 982, local router ID is 192.0.2.1
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,
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: 100:1 (default for vrf C1)
*>i 10:21:24::/64 ::FFFF:192.0.2.2
101 100 0 ?
*>i 10:102:21::21/128
::FFFF:192.0.2.2
101 100 0 ?
*>i 10:102:24::24/128
::FFFF:192.0.2.2
1 100 0 ?
*>i 102:4:21::/64 ::FFFF:192.0.2.2
102 100 0 ?
*>i 192:0:200::2/128 ::FFFF:192.0.2.2
0 100 0 i
The below configuration is what is used to configure the BGP route-reflector.
router bgp 100
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor IBGP peer-group
neighbor IBGP remote-as 100
neighbor IBGP update-source Loopback0
neighbor 192.0.2.1 peer-group IBGP
neighbor 192.0.2.2 peer-group IBGP
neighbor 192.0.2.4 peer-group IBGP
neighbor 192.0.2.5 peer-group IBGP
neighbor 192.0.2.10 peer-group IBGP
neighbor 192.0.2.12 peer-group IBGP
neighbor 192.0.2.13 peer-group IBGP
neighbor 192.0.2.16 peer-group IBGP
!
address-family ipv4
exit-address-family
!
address-family vpnv4
neighbor IBGP send-community extended
neighbor IBGP route-reflector-client
neighbor 192.0.2.1 activate
neighbor 192.0.2.2 activate
neighbor 192.0.2.4 activate
neighbor 192.0.2.5 activate
neighbor 192.0.2.10 activate
neighbor 192.0.2.12 activate
neighbor 192.0.2.13 activate
neighbor 192.0.2.16 activate
exit-address-family
!
address-family vpnv6
neighbor IBGP send-community extended
neighbor IBGP route-reflector-client
neighbor 192.0.2.1 activate
neighbor 192.0.2.2 activate
neighbor 192.0.2.4 activate
neighbor 192.0.2.5 activate
neighbor 192.0.2.10 activate
neighbor 192.0.2.12 activate
neighbor 192.0.2.13 activate
neighbor 192.0.2.16 activate
exit-address-family
The below configuration is used to configure the PE router.
router bgp 100
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 192.0.2.3 remote-as 100
neighbor 192.0.2.3 update-source Loopback0
neighbor 192.0.2.9 remote-as 100
neighbor 192.0.2.9 update-source Loopback0
!
address-family ipv4
exit-address-family
!
address-family vpnv4
neighbor 192.0.2.3 activate
neighbor 192.0.2.3 send-community extended
neighbor 192.0.2.9 activate
neighbor 192.0.2.9 send-community extended
exit-address-family
!
address-family ipv4 mdt
neighbor 192.0.2.3 activate
neighbor 192.0.2.3 send-community extended
neighbor 192.0.2.9 activate
neighbor 192.0.2.9 send-community extended
exit-address-family
!
address-family vpnv6
neighbor 192.0.2.3 activate
neighbor 192.0.2.3 send-community extended
neighbor 192.0.2.9 activate
neighbor 192.0.2.9 send-community extended
exit-address-family
CSR1#show bgp vpnv4 unicast all summary
BGP router identifier 192.0.2.1, local AS number 100
BGP table version is 741, main routing table version 741
45 network entries using 11520 bytes of memory
62 path entries using 7440 bytes of memory
21/19 BGP path/bestpath attribute entries using 5712 bytes of memory
9 BGP rrinfo entries using 360 bytes of memory
8 BGP AS-PATH entries using 192 bytes of memory
10 BGP extended community entries using 340 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 25564 total bytes of memory
BGP activity 138/78 prefixes, 765/683 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
100.1.8.8 4 65008 1343 1360 741 0 0 20:17:58 1
100.1.17.17 4 65017 1316 1362 741 0 0 20:14:50 5
192.0.2.3 4 100 1478 1362 741 0 0 20:21:53 22
192.0.2.9 4 100 320 330 741 0 0 04:47:52 17
From CSR1 we see what routes have been learned from the other BGP peers.
CSR1#show bgp vpnv4 unicast rd 100:1
BGP table version is 741, local router ID is 192.0.2.1
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,
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: 100:1 (default for vrf C1)
Export Map: RM_ROUTE_LEAKING, Address-Family: IPv4 Unicast, Pfx Count/Limit: 0/1000
* i 10.18.19.0/24 192.0.2.13 1 100 0 ?
*>i 192.0.2.13 1 100 0 ?
*>i 10.21.24.0/24 192.0.2.2 101 100 0 ?
*> 10.100.1.0/24 101.1.8.8 1 32768 ?
*> 10.100.8.0/24 101.1.8.8 1 32768 ?
* i 10.100.18.0/24 192.0.2.5 1 100 0 ?
*>i 192.0.2.5 1 100 0 ?
* i 10.100.19.0/24 192.0.2.13 1 100 0 ?
*>i 192.0.2.13 1 100 0 ?
*> 10.100.50.0/24 101.1.8.8 1 32768 ?
* i 10.100.100.0/24 192.0.2.5 1 100 0 ?
Network Next Hop Metric LocPrf Weight Path
*>i 192.0.2.5 1 100 0 ?
*> 10.100.110.0/24 101.1.8.8 1 32768 ?
*> 10.100.200.0/24 101.1.8.8 1 32768 ?
*> 10.101.8.0/24 101.1.8.8 1 32768 ?
* i 10.101.18.0/24 192.0.2.5 1 100 0 ?
*>i 192.0.2.5 1 100 0 ?
* i 10.101.19.0/24 192.0.2.13 1 100 0 ?
*>i 192.0.2.13 1 100 0 ?
*> 10.101.82.0/24 101.1.8.8 1 32768 ?
*> 10.101.83.0/24 101.1.8.8 1 32768 ?
*> 10.101.84.0/24 101.1.8.8 1 32768 ?
*>i 10.102.21.21/32 192.0.2.2 102 100 0 ?
*>i 10.102.24.24/32 192.0.2.2 2 100 0 ?
*> 101.1.8.0/24 0.0.0.0 0 32768 ?
*> 101.1.17.0/24 0.0.0.0 0 32768 ?
* i 101.5.18.0/24 192.0.2.5 0 100 0 ?
*>i 192.0.2.5 0 100 0 ?
* i 101.13.19.0/24 192.0.2.13 0 100 0 ?
*>i 192.0.2.13 0 100 0 ?
*>i 102.2.24.0/24 192.0.2.2 0 100 0 ?
*>i 102.4.21.0/24 192.0.2.2 102 100 0 ?
*>i 192.0.200.2/32 192.0.2.2 0 100 0 i
We can see what routes have been advertised to us from the route reflector.
CSR1#show bgp vpnv6 unicast all summary
BGP router identifier 192.0.2.1, local AS number 100
BGP table version is 982, main routing table version 982
10 network entries using 2800 bytes of memory
15 path entries using 2220 bytes of memory
4/4 BGP path/bestpath attribute entries using 1088 bytes of memory
9 BGP rrinfo entries using 360 bytes of memory
8 BGP AS-PATH entries using 192 bytes of memory
10 BGP extended community entries using 340 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP using 7000 total bytes of memory
BGP activity 138/78 prefixes, 765/683 paths, scan interval 60 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.0.2.3 4 100 1484 1368 982 0 0 20:27:18 5
192.0.2.9 4 100 325 336 982 0 0 04:53:17 5
CSR1#show bgp vpnv6 unicast rd 100:1
BGP table version is 982, local router ID is 192.0.2.1
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,
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: 100:1 (default for vrf C1)
*>i 10:21:24::/64 ::FFFF:192.0.2.2
101 100 0 ?
*>i 10:102:21::21/128
::FFFF:192.0.2.2
101 100 0 ?
*>i 10:102:24::24/128
::FFFF:192.0.2.2
1 100 0 ?
*>i 102:4:21::/64 ::FFFF:192.0.2.2
102 100 0 ?
*>i 192:0:200::2/128 ::FFFF:192.0.2.2
0 100 0 i