Hardware requirements for BIRD
Hello, I am considering the setup of BIRD as a router to handle our internet traffic. One information I fail to find is hardware requirements. My use case is as follows : - Two transit providers, each sending a full internet view - Two peerings on an IXP (less than 100k routes each) - One iBGP session between the two BIRD routers - One eBGP session to our internal network (advertising a default route and receiving less than 500 internal routes) - Traffic would be less than 1Gbps but as I understand it, this is relevant to forwarding plane and therefore out of the scope of BIRD. Which kind of hardware would be fit for that ? especially regarding CPU and RAM. I was considering an entry-level server with low-end Xeon CPU (E5-2603, 1.7Ghz 6 cores) and 8GB RAM, does that look sufficient, insufficient, or overkill ? I cant really tell. By the way, is BIRD able to use multiple cores ? and are there hardware requirements to be careful of, disregard CPU and RAM ? Thanks. Regards, Clément Guivy
Hi, Here is my x86 router configuration: OS: FreeBSD 10.2 64bit Bird 1.6.3 CPU Intel E5-2609v2 Memory 16GB Here is top result for bird: 27 processes: 1 running, 26 sleeping CPU: 13.0% user, 0.0% nice, 1.8% system, 1.7% interrupt, 83.6% idle Mem: 504M Active, 112M Inact, 875M Wired, 518M Buf, 14G Free Swap: 3852M Total, 3852M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 6278 root 1 52 0 455M 440M select 3 1:23 20.65% bird 6294 root 1 20 0 60124K 48616K select 0 0:24 0.10% bird6 bird> show route count 1356504 of 1356504 routes for 633512 networks <<-- still updating the routing table after restarting protocols Your hardware is more than enough but if you consider to handle high traffic or packets per second it's a different. Best regards, David S. ------------------------------------------------ e. david@zeromail.us w. pnyet.web.id p. 087881216110 On Tue, Mar 7, 2017 at 8:57 PM, Clément Guivy <clement@guivy.fr> wrote:
Hello, I am considering the setup of BIRD as a router to handle our internet traffic. One information I fail to find is hardware requirements. My use case is as follows :
- Two transit providers, each sending a full internet view
- Two peerings on an IXP (less than 100k routes each)
- One iBGP session between the two BIRD routers
- One eBGP session to our internal network (advertising a default route and receiving less than 500 internal routes)
- Traffic would be less than 1Gbps but as I understand it, this is relevant to forwarding plane and therefore out of the scope of BIRD.
Which kind of hardware would be fit for that ? especially regarding CPU and RAM. I was considering an entry-level server with low-end Xeon CPU (E5-2603, 1.7Ghz 6 cores) and 8GB RAM, does that look sufficient, insufficient, or overkill ? I can’t really tell. By the way, is BIRD able to use multiple cores ? and are there hardware requirements to be careful of, disregard CPU and RAM ?
Thanks.
Regards,
Clément Guivy
Hello Clement, even the most entry level server these days will meet your requirements. Bird is very lean, a system with 2 cores and 4 gbps of ram is plenty for what you described. The only thing I would suggest is you look at Intel NIC’s like the i340 or i350 which will help a great deal if you approach anywhere near 1 gbps or a high number of small packets. Cheers, Mike -- Michael McConnell WINK Streaming; email: michael@winkstreaming.com <mailto:michael@winkstreaming.com> phone: +1 312 281-5433 x 7400 cell: +506 8706-2389 skype: wink-michael web: http://winkstreaming.com <http://winkstreaming.com/>
On Mar 7, 2017, at 7:57 AM, Clément Guivy <clement@guivy.fr> wrote:
Hello, I am considering the setup of BIRD as a router to handle our internet traffic. One information I fail to find is hardware requirements. My use case is as follows : - Two transit providers, each sending a full internet view - Two peerings on an IXP (less than 100k routes each) - One iBGP session between the two BIRD routers - One eBGP session to our internal network (advertising a default route and receiving less than 500 internal routes) - Traffic would be less than 1Gbps but as I understand it, this is relevant to forwarding plane and therefore out of the scope of BIRD.
Which kind of hardware would be fit for that ? especially regarding CPU and RAM. I was considering an entry-level server with low-end Xeon CPU (E5-2603, 1.7Ghz 6 cores) and 8GB RAM, does that look sufficient, insufficient, or overkill ? I can’t really tell. By the way, is BIRD able to use multiple cores ? and are there hardware requirements to be careful of, disregard CPU and RAM ?
Thanks.
Regards,
Clément Guivy
On 7 March 2017 at 05:57, Clément Guivy <clement@guivy.fr> wrote:
Hello, I am considering the setup of BIRD as a router to handle our internet traffic. One information I fail to find is hardware requirements.
Clément, Let's just clear one thing up straight away -- BIRD is a daemon for routing protocols, not for routing traffic itself. BIRD itself will handle your requirements in terms of the BGP information incredibly well. As I understand it, BIRD only utilises one CPU core, but this is not the bottleneck factor here. When the FIB has been calculated, it is usually exported to your kernel (we'll assume Linux for now) via Netlink messages. Depending on how efficient your kernel is at building the trie structure, this may actually take more time than processing the BGP Updates! Once the routes are loaded into the kernel, it is the kernel (usually) that forwards the traffic. This is usually (roughly) proportional to the performance of your processor. You will probably have to make iptables changes to prevent that restricting the performance at high levels. That said, 1Gbps of IMIX traffic should easily be forwarded by any modern x86-like server out there. Just be aware that it will be more susceptible to small-packet attacks due to the lower packet-per-second throughput compared to routers you may be used to. Hope that helps! Matthew Walster
Thanks everyone for your answers, that's very helpful to me :-) On 07/03/2017 19:46, Matthew Walster wrote:
On 7 March 2017 at 05:57, Clément Guivy <clement@guivy.fr <mailto:clement@guivy.fr>>wrote:
Hello, I am considering the setup of BIRD as a router to handle our internet traffic. One information I fail to find is hardware requirements.
Clément,
Let's just clear one thing up straight away -- BIRD is a daemon for routing protocols, not for routing traffic itself. BIRD itself will handle your requirements in terms of the BGP information incredibly well. As I understand it, BIRD only utilises one CPU core, but this is not the bottleneck factor here.
When the FIB has been calculated, it is usually exported to your kernel (we'll assume Linux for now) via Netlink messages. Depending on how efficient your kernel is at building the trie structure, this may actually take more time than processing the BGP Updates!
Once the routes are loaded into the kernel, it is the kernel (usually) that forwards the traffic. This is usually (roughly) proportional to the performance of your processor. You will probably have to make iptables changes to prevent that restricting the performance at high levels.
That said, 1Gbps of IMIX traffic should easily be forwarded by any modern x86-like server out there. Just be aware that it will be more susceptible to small-packet attacks due to the lower packet-per-second throughput compared to routers you may be used to.
Hope that helps!
Matthew Walster
Just to give an idea. I'm using multiple GNU/Linux routers with an Intel Atom C2758 (8-core SoC) and 8 GiB RAM to handle ~2k routes with Bird. Bird itself doesn't make a dent in CPU. These are building access routers; traffic is around 80 Mbit/s each (~ 6 kpps), with connection tracking and NAT. Using 2*1 Gbit bond, builtin NICs from the SoC with igb driver. CPU load is usually next to 0 with regular traffic. I've tested this setup to 1.4 Mpps (Gbit line rate with small packets), *without* conntrack/NAT. It stresses the 8 cores, but works. With NAT, I can get up to ~ 200 kpps. As it turns out, the C2000 line isn't so great at staying alive for more than a few months though [1]... but that's on its way to being fixed. Regards, Israel G. Lugo [1] http://www.anandtech.com/show/11110/semi-critical-intel-atom-c2000-flaw-disc... On 03/07/2017 06:46 PM, Matthew Walster wrote:
On 7 March 2017 at 05:57, Clément Guivy <clement@guivy.fr <mailto:clement@guivy.fr>>wrote:
Hello, I am considering the setup of BIRD as a router to handle our internet traffic. One information I fail to find is hardware requirements.
Clément,
Let's just clear one thing up straight away -- BIRD is a daemon for routing protocols, not for routing traffic itself. BIRD itself will handle your requirements in terms of the BGP information incredibly well. As I understand it, BIRD only utilises one CPU core, but this is not the bottleneck factor here.
When the FIB has been calculated, it is usually exported to your kernel (we'll assume Linux for now) via Netlink messages. Depending on how efficient your kernel is at building the trie structure, this may actually take more time than processing the BGP Updates!
Once the routes are loaded into the kernel, it is the kernel (usually) that forwards the traffic. This is usually (roughly) proportional to the performance of your processor. You will probably have to make iptables changes to prevent that restricting the performance at high levels.
That said, 1Gbps of IMIX traffic should easily be forwarded by any modern x86-like server out there. Just be aware that it will be more susceptible to small-packet attacks due to the lower packet-per-second throughput compared to routers you may be used to.
Hope that helps!
Matthew Walster
participants (5)
-
Clément Guivy -
David S. -
Israel G. Lugo -
Matthew Walster -
Michael McConnell