On 05.03.2009, at 19:28, Lukas Beeler wrote:

On Thu, Mar 5, 2009 at 19:08, Fredy Kuenzler <kuenzler@init7.net> wrote:
Remember http://www.swinog.ch/meetings/swinog7/BGP_filtering-swinog.ppt - in

I just skimmed through that, and i wonder if it's still current.

There's some talk about requiring about 128MB of memory, and budget
concerns of smaller ISPs.

Now, even expensive FB-DIMM memory by vendors like HP and IBM only
costs around 360 CHF for 4 GB. And even small two way x86 boxes max
out at around 32 - 48 GB. Even if Cisco and Juniper charge 10x as
much, that'd still be only 3600 CHF.

I understand that routers use ASICs and probably faster memory than
servers, but i can't really imagine it to be a problem to pop 4GB
memory into a router that's connected directly to the internet.

Now, where am i mistaken?

When I started using BGP first (1994), we did run BGP on a 2501 router (2 serial ports of 2Mbps + 1 ethernet 10Mbps) which had maybe 32MB of ram and costed 7'000 CHF at the time. This was not good enough, so years later a 7206 was used with 128MB of RAM (this was probably around 1998)

Those routers which costed like 100'000 CHF at that time. Today, you reach the limits on a 7206VXR with like 512MB on a NPE-300 CPU card. You can not stick more than 512MB ram into it. So you need a bigger router CPU which does support more RAM.

Don't forget that more RAM requires hardware which supports it. So its not enough to simply stick a bigger bar into a box. Also most routers are 32bit CPU's so you get into the hard limits of the CPU if you think of 4GB.

but the way bigger problem is the processing speed. Think of the following. In worst case scenario, EVERY SINGLE PACKET's destination IP has to be searched in a routing table of 4GB. RAM is fast but going through 4GB of ram is still not that fast that it would not affect speed if its done on every single packet. Of course there are caching mechanisms who remember last used IP's because they will likely be reused for the next paket etc. But its not as trivial as it might sound. There's more to routing than just holding the routing table in memory. That part is easy and cheap but processing every packet against it in minimum time is what's costly.

Thats probably the reason why on a NPE-300 processor you can not stick more than 512MB of RAM because it would not be fast enough to handle it anyway. So then you go and buy a NPE-G1 or now a NPE-G2 and you end up with a few thousand CHF bill.

Now multiply this with number of ISP's and BGP routers they have and you see the picture. Big ISP's will take care of the core routers, whatsoever as its their core business. But the multihomed customers at the other side of the planet now has to buy a new router just because you added one route more into the table. This is the global effect.