"2M today, 10M with no change in technology"? An informal survey.

Deepak Jain deepak at ai.net
Sun Aug 26 02:08:45 UTC 2007

Maybe I'm oversimplifying. Its Saturday and entirely possible I'm not 
thinking on all brain cells ($clue--).

When it comes to an FIB, there are only say 100-200 destinations on a 
big router (outbound). Irrespective of the 2M or 20M routes it has. Even 
though the entire Internet isn't aggregated the way it should be, for 
FIB purposes, the router knows how it will route out to its 100-200 
destinations (ports).

Couldn't it just aggregate before it drops routes into its FIB and only 
import specifics (deagg) if a destination changes for a more specific 
prefix [like the swamp]? We talk about default-free zones as needing 
every prefix, and they do (for propagation purposes) but for FIB 
purposes, they really don't.

So they keep a Zebra or OpenBGPd like process (thinking Juniper) that 
contains *everything* and handles propagation and then each FIB gets an 
aggregated entry dumped into each FIB on each routing card.

This scales very well on the order of a well aggregated internet, and 
even networks with lots of customer routes (internally or because of 
lots of customer transit connections) each router only deals with 
getting the packet to its neighbor. Server CPUs & RAM can handle lots of 
updates on a 10MM route table all day long. FIBs only need to get 
involved if the update will change their view of a route -- a central 
CPU (or cluster of them) can decide that before the FIB sees it.

If this isn't clear, I can probably explain it better, but basically 
what I am saying is that instead of aggregated the FIB based on CIDR 
rules or expecting total conformity, the router just aggregates from its 
point-of-view -- if an aggregate to multiple disparate netblocks all 
goes to the same place, it puts an aggregate in.

For example, a router with only 1 connection (no matter how many routes 
being sent by its upstream), would only have 1 route entered into its 
FIB -- because no matter where the route goes, it can go upstream. If it 
feeds a route table to another router, the downstream will see the whole 
route table irrespective.

I know the above degenerate case doesn't address bogons, but really we 
are only talking about a few dozen extra entries into an FIB for them.

Deepak Jain

More information about the NANOG mailing list