What is a BGP RIB failure
Sometimes you'll see a weird route status (RIB-failure) in your BGP table, for example:
GW#show ip bgp ¦ include r>
r> 10.2.0.0/16 10.0.1.2 0 0 65001 i
A more thorough investigation of the BGP entry does not give you a lot of additional information:
GW#show ip bgp 10.2.0.0
BGP routing table entry for 10.2.0.0/16, version 7
Paths: (1 available, best #1, table Default-IP-Routing-Table, RIB-failure(17))
Flag: 0x820
Advertised to update-groups:
1 2
65001
10.0.1.2 from 10.0.1.2 (10.0.1.2)
Origin IGP, metric 0, localpref 100, valid, external, best
The “mistery” is solved when you inspect the entry in the IP routing table:
GW#show ip route 10.2.0.0
Routing entry for 10.2.0.0/16
Known via "static", distance 1, metric 0 (connected)
Routing Descriptor Blocks:
* directly connected, via Null0
Route metric is 0, traffic share count is 1
The GW router has a static route that collides with the EBGP route and thus the BGP route cannot be inserted in the IP routing table (as the static route has administrative distance 1).
Let's conclude with a few interesting facts about the RIB failures:
- The RIB failure feature was introduced in IOS release 12.2T; prior to that, the BGP routes with higher administrative distance than other route sources were silently ignored (similar to all other routing protocols).
- You can display BGP routes that are not inserted in the IP routing table with the show ip bgp rib-failure command, which also explains why the BGP route was not inserted in the IP routing table.
- The BGP routes that are not used due to higher administrative distance are still advertised to all BGP peers (contrary to what most other distance-vector routing protocols do), unless you configure bgp suppress-inactive (introducted in 12.2T and 12.0(26)S).
Thanks for the clarifications on this feature.
* the router is so low on memory that the BGP route cannot be inserted into the IP routing table (I am not sure you'd be able to execute the show commands in this scenario anyway :)
* a VRF has exceeded the maximum-prefix limit and cannot accept additional imported VPNv4 routes.
Thanx
YasH
the failure happend as i used to install some additional floating routes to the redundant paths between two router (in a dual homed full mesh scenario).
The routes were still reachable (using the statics) and the bgp routes were not installed, as you wrote in the post.
Thanks for answering my question before i actually had it :D
Luca
even in the cisco online documentation this feature is not as smoothly explained
I work for sprint and got a scenerio where customer was running only BGP and static routing . had 2 default routes ..one he was getting from BGP [ which was running on serail interface ,connection to sprint mpls ] and other was static which was pointing towards his lan [ fa0/0]...In the RT the static default route was getting installed becoz of better AD and the default route in BGP table was showing with RIB failure. ..I was checking the BGP configs and found while configuring neighborship with sprint mpls weight was also defined [ 2 ] with the neighbor statement ..My question is why there was weight statement in BGP configs when there was only 1 BGP neighbor in that router ...IS there any significance for this ?????? O:-)
I am from sprint .was working with vandana on the issue stated..i could see that the loopack was advertised to pe router via bgp ..but i logged into the connected pe router where i could see that the update was not advertised to any peer...does that mean that the update was not advertised further into the mpls clous to our managemnt servers..
I've strange behavior on RIB-Failure, BGP update is sent ONLY to EBGP peer. Is it correct behavior or just another IOS bugs?
(A) New default behavior (which IOS are you using?)
(B) Yet another bug
(C) unrelated IBGP issue (you sure it's not an IBGP route that would have to be reflected?)
http://www.itcertnotes.com/2011/02/suppressing-inactive-bgp-route.html
what have i done wrong?
Does it mean that the cmd is not working as per expectation?