Introduction
This document describes what RIB-failure is in Border Gateway Protocol (BGP) and the use of the command bgp suppress-inactive
.
Prerequisites
Requirements
Cisco recommends that you have knowledge of this topic:
- Border Gateway Protocol (BGP)
Components Used
The information in this document is based on a Cisco Router with Cisco IOS® version 15.6(2).
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, ensure that you understand the potential impact of any command.
BGP RIB-Failure
When a Router receives a BGP UPDATE packet that contains Network Layer Reachability Information (NLRI) - this is, a route; the packet is processed in the next order:
Step 1. BGP checks for the NLRI (prefix received) against any BGP inbound filter configured on the Router.
Step 2. If the NLRI is not filtered, the prefix can be seen in the BGP table with the show ip bgp
command.
Step 3. If the Routing Table already has the same prefix/prefix-length entry with a lower Administrative Distance (AD) as seen in show ip bgp
, BGP marks the route received with RIB-Failure.
Note: For further details on Step 2, refer to the section "Why Routers Ignore Paths" in the document BGP Best Path Selection Algorithm.
Note: This document makes use of the terms NLRI, prefix and route interchangeably.
In this example, routes 10.10.1.1/32 and 10.10.3.3/32 are received via BGP and are installed in the Routing Table.
The outputs show both routes in the BGP table with the use of the show ip bgp
:
Router |
Router#show ip bgp
BGP table version is 5, local router ID is 10.2.3.2
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
*>i 10.10.1.1/32 10.1.2.1 0 100 0 i
*> 10.10.3.3/32 10.2.3.3 0 0 2 i
Router#
|
The routing table shows both routes with the command show ip route bgp
:
Router |
Router#show ip route bgp
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
10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
B 10.10.1.1/32 [200/0] via 10.1.2.1, 00:05:23
B 10.10.3.3/32 [20/0] via 10.2.3.3, 00:01:46
|
An example of RIB-failure can be seen with Static Routes configured for the same prefixes since those have precedence over BGP in the Routing Table because of a lower AD.
Note: The Administrative Distance (AD) of Static Routes is 1. The AD of iBGP routes is 200. The AD of eBGP routes is 20. In case of a tie, the routes learned via the protocol with the lowest AD value are selected and installed in the Routing Table.
The outputs show Static Routes added to the configuration and how these override the BGP routes in the routing table:
Router |
Router#show running-config | include ip route
ip route 10.10.1.1 255.255.255.255 Null0
ip route 10.10.3.3 255.255.255.255 Null0
Router#
Router#show ip route static
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
10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
S 10.10.1.1/32 is directly connected, Null0
S 10.10.3.3/32 is directly connected, Null0 Router#
|
BGP marks its routes with an r in the BGP table which shows that those are in RIB-failure state. This is because the routes received via BGP are not in the routing table.
Router |
Router#show ip bgp
BGP table version is 5, local router ID is 10.2.3.2
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
r>i 10.10.1.1/32 10.1.2.1 0 100 0 i
r> 10.10.3.3/32 10.2.3.3 0 0 2 i
Router#
|
The Command bgp suppress-inactive
It is important to mention that BGP still advertises networks in RIB-Failure state on Cisco Routers that runs Cisco IOS.
Note: EIGRP does not advertise routes that are not installed in the Routing Table. Those are marked as Zero Successor in the EIGRP topology table.
The command bgp suppress-inactive
modifies this behavior to stop the advertisement of the prefixes that are in RIB-Failure state.
Note: Only the networks in RIB-Failure condition which have a different next-hop in BGP than its same entry in Routing Table are suppressed with the bgp suppress-inactive
command.
Configuration
Network Topology Diagram
On Router R2, routes are shown in the BGP table in RIB-Failure condition:
R2 |
R2#show ip bgp
BGP table version is 14, local router ID is 10.2.3.2
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
r>i 10.10.1.1/32 10.1.2.1 0 100 0 i
r> 10.10.3.3/32 10.2.3.3 0 0 2 i
R2#
|
The reason is because Static Routes are configured:
R2 |
R2#show running-config | include ip route
ip route 10.10.1.1 255.255.255.255 10.1.2.254
ip route 10.10.3.3 255.255.255.255 10.2.3.3
R2#
|
- The Static Route for 10.10.1.1/32 defines a next-hop to 10.1.2.254 which differs from the next-hop received via BGP which is 10.1.2.1.
- The Static Route for 10.10.3.3/32 defines a next-hop which is equal to the next-hop received via BGP which is 10.2.3.3.
The command show ip bgp rib-failure
can inform about the next-hop that matches or not between the routes in BGP RIB-Failure and Routing Table as seen under the RIB-NH Matches column.
R2 |
R2#show ip bgp rib-failure
Network Next Hop RIB-failure RIB-NH Matches
10.10.1.1/32 10.1.2.1 Higher admin distance No
10.10.3.3/32 10.2.3.3 Higher admin distance Yes
R2#
|
In the absence of bgp suppress-inactive
, even in RIB-Failure state, R2 continues to advertise both networks to Router R4 via BGP since this is the default behavior.
In Router R4, you can see both routes are received via BGP:
R4 |
R4#show ip bgp
BGP table version is 3, local router ID is 10.2.4.4
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
*> 10.10.1.1/32 10.2.4.2 0 1 i
*> 10.10.3.3/32 10.2.4.2 0 1 2 i
R4#
|
With bgp suppress-inactive
added to the BGP configuration on Router R2, the routes in RIB-Failure state and with RIB-NH Matches set to No are not advertised anymore:
R2 |
R2#show running-config partition router bgp 1
!
router bgp 1
bgp suppress-inactive
. . .
|
The next output shows that Router R4 does not receive the route 10.10.1.1/32 via BGP since Router R2 does not advertise it anymore.
R4 |
R4#show ip bgp BGP table version is 4, local router ID is 10.2.4.4 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 *> 10.10.3.3/32 10.2.4.2 0 1 2 i R4#
|
Through this example, it has been demonstrated that by default, BGP continues to advertise routes in RIB-Failure condition. Those are routes received via BGP and that are not installed in the Routing Table.
The bgp suppress-inactive
command is available to modify this behavior.
Related Information