Wednesday, November 10, 2010

Difference Between Routing Table & RIB (Routing Information Base) - Short Post

It's been long time since I wanted to talk over my blog about this. I have seen many people and books claiming that RIB is just another name of I should say fancy term to describe our old friend Routing Table. But In my personal opinion there is a significant difference between both.

RIB or Routing Information Base is local view about information from Routing Protocol Prospective. For example each routing protocol including BGP generates BGPtables in General. Yeah I know there are some more details as far how BGP builds its BGP Table :-). But for now lets talk about BGP table in short.

BGP table is local view of routing information received and generated locally. If you have ever run BGP than you must be aware about situations where you find some routing information which is in BGP table but when you run "show ip route" command , you don't see this information there. 

There are many possible reason for that in BGP like "Un-Reachable Next Hop" Address.

So what actually we see with "show ip bgp" is RIB built by BGP. On the other hand what we see with "show ip route" is Routing table which is derived from that RIB information. Or in other words best and valid information picked by router from BGP Table and placed it into routing table.

so next idea comes into mind is that how we check RIB for each protocol ?

And here is answer :-)

RIP -  "sh ip rip database"

OSPF - Older way > "sh ip ospf database"
              Modern Way > "sh ip ospf rib detail"

EIGRP - "sh ip eigrp topology all-links"

BGP - "sh ip bgp"

IS-IS - "sh isis database"

With the "sh ip eigrp topology all-links" command you can actually see routes that failed the feasibility check.

Also one of the reason that support idea of RIB being different from Routing Table is - In OSPF for example if Forwarding Address (FA) for LSA 5 is not reachable, in such case you will see entries for those LSAs in "OSPF database" with command " sh ip ospf database" but on the other hand you won't find those routes in Routing table when you run command "sh ip route"

Deepak Arora 


Pk said...

Deepak, You made it so so simpler.
Thank you so much.

Abulfaz said...

Thank you very much.

Daniel said...

Thank you so much for this!
My issue was that I have a Cisco Catalyst 3550 router, running IOS 12 and in my CCNA course, the trainer shows for OSPF the command "sh ip ospf rib detail", which doesn't work on my switch. Instead, the command "sh ip ospf database" works. And you have brilliantly answered this.

Anonymous said...

Hi Deepak,
Thanks for such a simple explanation. You made it so simple.