BTW, really all data incorporated from BGP protocl for 3 - 8 core routings do not need more than 32MB RAM; the fact CISCO need more than 32MB ram for core routing is due to inefficient data structures... Exactly it's because they (I think) have solved some other task (not minimize memory, but CPU and development time).
What is really 100K routes?
<snip>
Of cource, it's not true - really we can expect about 64 bytes/route.
64 bytes * 100K = 6 Mb RAM. I can propose it's nessesary 128bytes - it'll be 12MB RAM.
Umm - also, you have memory used for the IP routing table. I don't know how big any of these data structures are - but I do know that it seems that the IP routing table representation uses even more ram than than the BGP routing table version. Also, what about overhead? OK, let's say you can share memory for common AS-PATHs. But how do you find them? How do you store them? Remember, you want to be able to add or delete 14k routes in a few seconds at most. Then, what about buffering? If a switch you're hooked to burps, you need to (want to) have enough memory to buffer that (though Ciscos like to do it on the cards, I think).
But anyway, if somebody designes specially INTERNET CORE router, he can hold any core routing tables in 16 MB RAM, not more. There is a lot of different ways to minimise memory usage.
A 2501 is/was within a few k of being able to hold a core routing table in 16mb (w/ the OS image running out of flash). But it lacks memory and cpu to then switch packets - and if someone adds a few K extra routes god help you.
Aleksei Roudnev, Network Operations Center, Relcom, Moscow
tli or pferguso might be able to shed some light on the actual numbers, assuming he has the time and interest :) Avi