Gigabit Linux Routers

Eugeniu Patrascu eugen at
Wed Dec 17 14:43:40 UTC 2008

Chris wrote:
> Hi All,
> Sorry if this is a repeat topic. I've done a fair bit of trawling but can't
> find anything concrete to base decisions on.
> I'm hoping someone can offer some advice on suitable hardware and kernel
> tweaks for using Linux as a router running bgpd via Quagga. We do this at
> the moment and our box manages under the 100Mbps level very effectively.
> Over the next year however we expect to push about 250Mbps outbound traffic
> with very little inbound (50Mbps simultaneously) and I'm seeing differing
> suggestions of what to do in order to move up to the 1Gbps level.

Any recent hardware can do do 1Gbps of routing from one NIC to another 
without issues. What you would need is PCI-Express cards, each with it's 
own slot (try avoiding dual/quad port cards for I/O intensive tasks).

Quagga with one full view and two feeds of about 5000 prefixes each 
consumes around 50MB of RAM. Putting alot of RAM in the box will not 
help you with increasing performance.

You can also use a kernel with LC-Trie as route hashing algorithm to 
improve FIB lookups.

> It seems even a dual core box with expensive NICs and some kernel tweaks
> will accomplish this but we can't afford to get the hardware purchases
> wrong. We'd be looking to buy one live and one standby box within the next
> month or so. They will only run Quagga primarily with 'tc' for shaping.
> We're in the UK if it makes any difference.

Regarding tc, make sure you use a scalable algorithm like HTB/HSFQ and 
tweak your rules so that a packet will spend the least amount of time in 
  matching and classifying routines.

> Any help massively appreciated, ideally from those doing the same in
> production environments.

At 100Mbps FDX full load (routing traffic from one NIC to another) on 
2.53 GHz Celeron box with 512Mbps of traffic, the load is between 0.00 
and 0.01-0.02

More information about the NANOG mailing list