So for routers that are touching our transit and (hopefully soon) future peering, we're looking at both the force10 e300's and juniper mx240's. The e300's are cheap but I have heard some rumors/talk of falling over when it has to deal with large numbers of prefixes and routes? The mx240's are nice but the cost difference is enormous. Does anyone have experience with e300's running into issues with large routing tables? Are there any tricks/tips that work around any issues (if they exist?)
OpenBGPd has a couple of cool things, notably irr-filter. However, it cannot choose best path based on IGP metric to reach the BGP next hop. When you have multiple border routers with multiple routers between them this is really annoying.
As OpenBGPd and OpenOSPFd are different daemons and the OS[1] has no concept of metric, it doesn't work so well.
Until it can do this, I'm sticking with Quagga for host based routers.
Useful for route servers at an IXP though (if your IXP has route-servers) - irr-filter is very useful here.
It also did this weird thing where I'd route 2002::/16 at an stf(6to4) interface and OpenBGPd would do a recursive lookup and install the route with a next-hop of my local interface, or something weird like that. Quagga did what I expected so I stuck with it.