freebsd router

Patrik Forsberg patrik.forsberg at
Wed Jan 11 16:48:22 PST 2006

> and another concept you fail to grasp is that
> with 1 processor the data for the entire
> transaction sits in the cpu cache, whereas with 2
> it has to be read again. Its not necessarily
> desireable to have 2 processors working on the
> same data. There are a lot of issues that aren't
> as black and white as "2 processors must be
> faster than 1". 

Aculy this is probably, cant say for sure, quite true. The logic behind it all is that routing wont profit from dual processors.. becouse there are nothing that benefit from threading.
O.. yea I feel the flame coming!..

anyways.. if you only have a single route(default) and a network behind it all .. yes.. simple UP routing would be the best. But what I do not know and haven't ether read test or done any testing of myself is what happends if you throw in a few routing protocols.. like BGP, OSPF and perhaps a bit of RIP in the mess.. here I would guess that SMP systems would perform better becouse the calculation of routing table could be done threaded. Now.. I do not say this is so.. becouse, once more, I haven't done any lab around it. Basicly tho FreeBSD 4.x does not outperform a specialy built network router, simply becouse it ain't built for it. If you're going to throw around over 500M data with a million or more pps I would not recommend any generic server OS, but rather a "real" router OS like IOS, AlliedWare or the like with a real router platform.

Altho I do have a FreeBSD 5.x Quagga sitting in a network today that do shovel around about 1½ - 2Gbit data at peak rate and ~400kpps, running OSPF and BGP for IPv4 routing .. that doesnt mean it does it good :P

As for UP vs. SMP perhaps there are good reasons why "real" router builders go for UP - other than that its cheap :P

Basicly it comes down to what you're going to use your router for. For simple tasks a Quagga would work fine in both FreeBSD 4.x, 5.x and 6.x and most likely you would benefit from using a single processor. But for a large scale network with IPv4 and IPv6 in a dynamicly build enviroment maybe this aint surch a good idea. Perhaps its better to spend a few extra bucks on a real router with hw support and so on.

And a answer to the OP:
I have run freebsd 4.11 as router for 3 years. I like
freebsd because it is more stable and its security.
Recently, the bandwidth grows to stop about 383M in
mrtg graph and have packet loss when it reaches to

Have you verified that you aint stuck with a 32bit nic ? 
those have a peak rate at around 300-500Mbit/s, for better performance go for 64bit nic and maybe even PCI-X.

I am trying to use freebsd 6.0. Could you help how to
tune the freebsd to have high network throughput? I
test the throughput by ipref software. the max is
about 390M

Can't really help here. I usaly go for the stock setup exept recompiling the kernel and world for the specific machine.

I configure polling, loader.conf and use the  Intel(R)
Pentium 3.0 Hz, intel Giga em0, sata drive with 2G

You dont need polling on intel nics.. it only slow things down. You should never need polling if your running a router aculy.

Well, that my to cent of the pussle :P

o boy, this became longer the expected! 
perhaps Im all wrong and you're all masters, but then again perhaps Im the smart one and everyone else is just plain dumb!

More information about the freebsd-isp mailing list