We need to keep the routing tables synched up in all these
processors. One idea is to connect all these routers (processors) within
the
router to form a complete IBGP mesh. But then this introduces scalability
issues which everyone is well aware of. What is the other alternative
that
we have to keep all these routing engines synchronized.
Well...fundamentally, I'm not sure you have much in the way of
alternatives. You could use a different synchronization protocol; but the
scaling issues are likely to be the same as with BGP. (I'm assuming here
that you're not planning on exposing the N processors to the outside BGP
world separately.) Either way, you're passing messages around which update
the routing table.
One option would be a client/server system, where the clients forward all
incoming BGP updates to the server, and the server maintains the routing
table. This could work if you can devise a server-to-client protocol that
the clients can interpret more cheaply than they interpet BGP. (The
simplest way to do that, of course, is if all the processors are in a
single box, and the clients can read the routing table directly out of
memory.) This has the disadvantage of introducing a single point of
failure.
/==============================================================\
|John Stracke |Principal Engineer |
|jstracke(_at_)incentivesystems(_dot_)com |Incentive Systems, Inc. |
|http://www.incentivesystems.com|My opinions are my own. |
|==============================================================|
|"Simply vanished--like an old oak table." --Lord Percy, _Black|
|Adder II_ |
\==============================================================/