I'll chime in with what we are doing with quagga and bgpmon. The question though would be for how many peers? If it is for the sake of discussion, less than 20, something like this might work. http://bgpmon.netsec.colostate.edu/download/src/bgpmon-7.2.4.tar.gz http://rmcwic.ucar.edu/sites/default/files/posters/csuconf-final19.pdf We do some of this. The pure BGPmon way is to have neighbors peer directly with a BGPmon server. We've extended this a bit and we can stream quagga MRT update files into a bgpmon server as well. Then the BGPmon server internally constructs RIBs per session. Output format is XML, and the paper linked above describes some of the perl tools there are to look at xml streams. So you can get a RIB stream or an UPDATE stream from the BGPmon server. At some scale, this might give you what you need. I think the BMP solution looks pretty nice as well, since you are as close to your true platform as you can get. So I would also be interested in hearing if you find existing client code to parse the BMP. John Kemp (kemp@routeviews.org)
project is still in its infancy. BMP seems to be a good solution but I've not found a working client implementation yet. I see that you can actually configure this on some Juniper gear but I can't seem to locate a client to ingest the data the router produces.
Can you provide a list of the clients that you have tried? It would save people the effort of going through them and finding out the same things as you did.
Nick