Software router state of the art

Hmmmm. Well then you probably don't want to use Linux/BSD as a router,
as a substantial amount of DIY is required for anything beyond
relatively simple routing. MPLS support (on Linux) for example is in
early phases and requires integrating separate pieces and is best
supported on Fedora9. Needless to say, Fedora isn't designed for
reliable/stable operation and long term deployment.

I have yet to look into *BSD based solutions, but hear very good things
about firewall performance. I don't know about BGP/OSPF/MPLS etc support
on FreeBSD but am going to wager a guess its on par with Linux if not
better.

The underlying OS is responsible for packet forwarding, but none of them
do any significant routing protocols natively. Adding on a package
such as Quagga or OpenBGPD is required for that, and the results of
each should be relatively similar across platforms.

The only major caveat is that Quagga OSPF is currently a disaster on
FreeBSD 7. Don't try it. We added a server that was advertising some
stuff, with multiple interfaces, using a config identical to what we
do under FreeBSD 6. Not only did it randomly not work, but it also
randomly killed OTHER OSPF speakers elsewhere in the network, including
on non-directly attached networks in another OSPF area (we'd log in and
see no neighbors).

OpenOSPFD appears to be the fix for that. Simpler, smaller, but dumb
enough that it advertised 127.0.0.1 into our OSPF environment when we
were trying to get some aliases on lo0 advertised, which caused
freaking out of pretty much every OSPF-speaking UNIX server we have
(sigh).

BGP is straightforward, except for things like MD5, which can be a bit
dicey. Quagga is very good, and much less expensive than, something
like Cisco for a route server, from what I've heard over the years.
You'll notice some of the Route-views boxes are Quagga or Zebra (its
predecessor).

... JG

OpenBSD has OpenOSPFD/OpenBGPD in the base OS rather than as a port/
package, so it's fully coupled with any kernel changes (and supports
some things missing from the FreeBSD port).

* Stuart Henderson <stu@spacehopper.org> [2008-08-01 19:06]:

>> I have yet to look into *BSD based solutions, but hear very good things
>> about firewall performance. I don't know about BGP/OSPF/MPLS etc support
>> on FreeBSD but am going to wager a guess its on par with Linux if not
>> better.
>
> The underlying OS is responsible for packet forwarding, but none of them
> do any significant routing protocols natively.

OpenBSD has OpenOSPFD/OpenBGPD in the base OS rather than as a port/
package, so it's fully coupled with any kernel changes (and supports
some things missing from the FreeBSD port).

can't be stressed enough; the concept of
OpenBGPD/OSPFD/RIPD/DVRMPD/OSPF6D (did I forget one again?) is not
too be just another daemon implementing the protocol at hand, they
come with massive changes to the OpenBSD kernel to offer an
alternative to other solutions, including "hardware" routers.

Now it is quite clear that you don't want to run 5 loaded 10GE ports
on any Hardware OpenBSD currently supports (it's not just PCs), but
there are enough installations with smaller bandwidth requirements
where it is a very viable alternative.