Collecting BGP RIB from all devices is tedious to collect the data and process it. Industry standard solution to this problem is BMP (BGP Monitoring Protocol) which Cisco, Juniper and other vendors have implemented.
BMP should expose/advertise the routes from all address families configured. Cisco has implemented only “ipv4 unicast” address family exposure, that limits the usefulness of BMP in Cisco based devices.
Forward Networks has come up with a solution to the problem where Forward Collector, or the VM, will act as a BGP receiver and collect data from all available address families. As a BGP receive the Forward Collector works as a BGP route-reflector client, so this peering is specifically with the BGP route-reflector in the network.
Note this feature is exclusive to Cisco IOS XR devices
How it works:
- Instead of collecting BGP RIB from all devices, Forward Enterprise will peer to a single IOS XR, that is acting as a route-reflector, and will reflect routes to Forward Enterprise.
- Forward Enterprise will bring up a BGP receiver process only during the snapshot collection process. Which means this peer will show in the “active” state from the Route-reflector’s point of view, when collection is not in process.
- There are no BGP configurations required on the Forward Platform. It is just a checkbox, under the route-reflector, in the device list.
- For the device where the checkbox is enabled, the Forward Platform will first collect the running configuration of the device. Then, the Forward Platform will inspect the BGP configuration to find if there is a route-reflector client configured for the Forward Platform’s ip address. Following this inspection the Forward Platform will then find the appropriate BGP AS from the command “Remote-as” in the peering statement, to use during the peering.
- The BGP session will be established only during the snapshot collection. At all other times the neighbor state on the BGP route-reflector will be either Active or Idle. This is an expected behavior.
Steps to enable:
- Navigate to Connection => Collector => Advanced network collection settings and enable all settings under “BGP advertisements” section. This is a global option allowing the platform to collect. This will not automatically collect BGP RIB from all devices but is required
- Navigate to Collection => Collector => Devices and select the device that acts as Route Reflector, click on “Edit”, navigate to “Advanced Settings” and enable/check “Enable collection of BGP advertisements”
Note: this is a per-device setting and Forward Enterprise will collect only from the devices that have this setting enabled
Sample Topology:
DEVICE | DEVICE NAME | IP ADDRESS |
Forward Collector | fncollect01 | 7.64.101.10 |
Route Reflector | XR-RR1 | 11.255.6.100 |
|
|
|
The topology below is a simple service provider network with (3) P devices, (4) PE devices and (3) customers under VRF RED, BLUE and GREEN.
DEVICES | VRF | CUSTOMER |
CE11, CE12 | RED | Customer 1 |
CE21, CE22 | BLUE | Customer 2 |
CE31, CE32 | GREEN | Shared VRF for common services. Customer 1 and 2 can access CE31 and CE32 and vice versa |
BGP AS details:
DEVICE | BGP AS NUMBER | IP ADDRESS |
Forward Collector | 600 | 7.64.101.10 |
XR-RR1 | 600 | 11.255.6.100 |
P1 | 600 | 11.255.6.1 |
P2 | 600 | 11.255.6.2 |
PE1 | 600 | 11.255.6.11 |
PE2 | 600 | 11.255.6.12 |
PE3 | 600 | 11.255.6.13 |
PE4 | 600 | 11.255.6.14 |
CE11 | 100 | 192.168.11.100 |
CE12 | 100 | 192.168.12.100 |
CE21 | 200 | 192.168.21.100 |
CE22 | 200 | 192.168.22.100 |
CE31 | 300 | 192.168.31.100 |
CE32 | 300 | 192.168.32.100 |
Topology:
XR-RR1 BGP Configuration
! route-policy RPL_DENY_IN drop end-policy ! route-policy RPL_PERMIT_OUT pass end-policy ! route-policy RPL_PASS_ALL pass end-policy ! ! router bgp 600 address-family ipv4 unicast network 11.11.6.0/24 network 11.255.6.100/32 network 11.255.66.100/32 ! address-family vpnv4 unicast ! neighbor-group AS600-RR remote-as 600 update-source Loopback0 address-family vpnv4 unicast route-policy RPL_PASS_ALL in route-reflector-client route-policy RPL_PASS_ALL out advertise vpnv4 unicast ! ! neighbor 11.255.6.1 use neighbor-group AS600-RR address-family vpnv4 unicast ! ! neighbor 11.255.6.2 use neighbor-group AS600-RR address-family vpnv4 unicast ! ! neighbor 11.255.6.3 use neighbor-group AS600-RR address-family vpnv4 unicast ! ! neighbor 11.255.6.4 use neighbor-group AS600-RR address-family vpnv4 unicast ! ! neighbor 11.11.6.250 remote-as 666 address-family ipv4 unicast route-policy RPL_PASS_ALL in route-policy RPL_PASS_ALL out ! ! neighbor 11.255.6.11 remote-as 600 update-source Loopback0 address-family ipv4 unicast route-policy RPL_PASS_ALL in route-policy RPL_PASS_ALL out ! ! neighbor 11.255.6.12 remote-as 600 update-source Loopback0 address-family ipv4 unicast route-policy RPL_PASS_ALL in route-policy RPL_PASS_ALL out ! ! neighbor 7.64.101.10 remote-as 600 update-source Loopback0 address-family ipv4 unicast route-policy RPL_DENY_IN in route-reflector-client route-policy RPL_PERMIT_OUT out ! address-family vpnv4 unicast route-policy RPL_DENY_IN in route-reflector-client route-policy RPL_PERMIT_OUT out ! ! |
BGP state on XR-RR1 during snapshot collection:
Note that we have only “IPV4 Unicast” and “VPNV4 Unicast” address families enabled but will work with all other Address families as well
RP/0/0/CPU0:XR-RR1#sh bgp all all summary Wed Mar 25 15:11:11.674 UTC Address Family: VPNv4 Unicast ----------------------------- BGP router identifier 11.255.6.100, local AS number 600 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0x0 RD version: 0 BGP main routing table version 37 BGP NSR Initial initsync version 1 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 37 37 37 37 37 0 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 7.64.101.10 0 600 31 86 0 0 0 00:00:00 0 11.255.6.1 0 600 2731 2475 37 0 0 1d16h 2 11.255.6.2 0 600 2731 2475 37 0 0 1d16h 4 11.255.6.3 0 600 2728 2474 37 0 0 1d16h 4 11.255.6.4 0 600 2724 2472 37 0 0 1d16h 2 Address Family: IPv4 Unicast ---------------------------- BGP router identifier 11.255.6.100, local AS number 600 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0xe0000000 RD version: 77 BGP main routing table version 77 BGP NSR Initial initsync version 2 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 77 77 77 77 77 0 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 7.64.101.10 0 600 31 86 0 0 0 00:00:00 0 11.11.6.250 0 666 2628 2532 77 0 0 1d16h 4 11.255.6.11 0 600 2816 2518 77 0 0 1d16h 21 11.255.6.12 0 600 2819 2519 77 0 0 1d16h 21 |
BGP state on XR-RR1 during idle time:
Note that we have only “IPV4 Unicast” and “VPNV4 Unicast” address families enabled but will work with all other Address families as well
RP/0/0/CPU0:XR-RR1#sh bgp all all summary Wed Mar 25 15:10:45.526 UTC Address Family: VPNv4 Unicast ----------------------------- BGP router identifier 11.255.6.100, local AS number 600 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0x0 RD version: 0 BGP main routing table version 37 BGP NSR Initial initsync version 1 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 37 37 37 37 37 0 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 7.64.101.10 0 600 29 84 0 0 0 00:02:35 Active 11.255.6.1 0 600 2730 2475 37 0 0 1d16h 2 11.255.6.2 0 600 2731 2475 37 0 0 1d16h 4 11.255.6.3 0 600 2728 2474 37 0 0 1d16h 4 11.255.6.4 0 600 2723 2472 37 0 0 1d16h 2 Address Family: IPv4 Unicast ---------------------------- BGP router identifier 11.255.6.100, local AS number 600 BGP generic scan interval 60 secs Non-stop routing is enabled BGP table state: Active Table ID: 0xe0000000 RD version: 77 BGP main routing table version 77 BGP NSR Initial initsync version 2 (Reached) BGP NSR/ISSU Sync-Group versions 0/0 BGP scan interval 60 secs BGP is operating in STANDALONE mode. Process RcvTblVer bRIB/RIB LabelVer ImportVer SendTblVer StandbyVer Speaker 77 77 77 77 77 0 Neighbor Spk AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down St/PfxRcd 7.64.101.10 0 600 29 84 0 0 0 00:02:36 Active 11.11.6.250 0 666 2628 2532 77 0 0 1d16h 4 11.255.6.11 0 600 2816 2518 77 0 0 1d16h 21 11.255.6.12 0 600 2818 2519 77 0 0 1d16h 21 |