I've been reading about FIB and tried to understand the design, I read that FIB and RIB have one-to-one correlation.

1.What does it mean they have one-to-one correlation?

2.In my understanding - most routers have flat FIB, why is that? for example, why wouldn't one prefer having a hierarchical FIB ? In a paper I've read, having a hierarchical FIB reduces the table size and improves performance

  • This sounds a lot like a homework question. There are ways in which hardware forwarding tables can actually vary within modes of a particular -platform- let alone the massive variability between different types of hardware and different vendors. It's also not necessarily the case that there's a 1:1 correlation between RIB and FIB or that there is only a single RIB / FIB.
    – rnxrx
    Dec 25, 2016 at 5:12
  • It actually isn't a question of homework. I am just trying to understand the FIB design and design constraints / considerations, not much is said about FIB's, I have read most fib are flat and that having some kind of hierarchy can significantly improve performance and reduce table size. So, I would like to be referenced to an article or a debate arguing and speaking of FIB's design and architectures, as well maybe something that can answer both of my questions in the original post.
    – seman
    Dec 26, 2016 at 11:31
  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you could provide and accept your own answer.
    – Ron Maupin
    Aug 15, 2017 at 16:58

1 Answer 1


I'll briefly answer the question.

The RIB (routing information base) contains all of the knowledge the router has obtained about how to reach destination networks. For example, it may have two different paths to reach the same network, both stored in the FIB. Or it might have learned the path the same network via two different routing protocols. Again, they would be unique, separate entries in the main RIB.

The router extracts the best entries from the RIB and inserts them into the FIB (forwarding information base.) For example, the router might be configured to prefer paths learned via one protocol over another, therefore leaving behind one of them and not inserting it into the FIB since it prefers the path via BGP vs. OSPF. There could also be a tie, and it takes two equal paths and inserts them into the FIB.

Bottom line, the router applies policy to extract the best paths from the RIB and insert them into the FIB. The FIB is generally composed of high speed memory that is used to build "hardware shortcuts" that allows the unit to switch packets at high speed.

A hierarchical FIB seeks to eliminate duplication of fields/data in each FIB entry. See http://newnog.net/meetings/nanog40/presentations/ClarenceFilsfils-BGP.pdf

Hope this helps.

  • The first time you say FIB, don't you mean RIB?
    – JeanPierre
    Dec 28, 2016 at 21:12
  • That was certainly a good explanation that helped me realize much better. After going through the link you referenced I feel I strongly understand the advantages of hierarchical FIB, therefore I asked why routers do not have such FIB by default?
    – seman
    Dec 30, 2016 at 0:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.