BIRD — short for Bird Internet Routing Daemon (a recursive acronym :-) — is an internet routing daemon for Linux, FreeBSD and other UNIX-like platforms. It's a standard part of the Debian, Ubuntu and Fedora Linux distributions, meaning that it is readily available for deployment. BIRD is also a component of CZ.NIC's Turris Omnia project, a crowd-funded high-performance home router due for delivery this summer.
The development of the BIRD software originally started at the Faculty of Mathematics and Physics of Charles University, Prague. In 2008, its development was revitalised by CZ.NIC Labs, the R&D department of the registry (administrator) responsible for the Czech country-level domain .cz.
At that time, CZ.NIC decided to invest its surplus from domain name registrations into projects related to the good of the Internet, says Ondrej Filip, CEO at CZ.NIC. Open source development of key internet software was one of these projects. Since I am one of the three original founders of BIRD, I decided to start supporting this project.
Description of target users and groups
BIRD is used by the largest Internet Exchange Points (IXPs) in the world. These organisations run switching platforms with peak traffic that is measured in terabit per second (Tbps). These IXPs form the worldwide backbone of today's internet infrastructure. In addition to the massive amounts of traffic they have to process, these systems also have the highest requirements with regard to reliability, availability and scalability.
Three of the largest peering centres in Europe use BIRD as their routing server software. These organisations are Deutscher Commercial Internet Exchange (DE-CIX) in Frankfurt, the London Internet Exchange (LINX), and the Amsterdam Internet Exchange (AMS-IX). Other large exchanges running BIRD are the North-American Peering And Internet eXchange (PAIX), the Moscow Internet Exchange (MSK-IX), and the London Network Access Point (LONAP).
According to Filip, about two-thirds of all IXPs use BIRD. It is also used by some large companies like Netflix, Microsoft, Amazon (Twitch) and Cisco.
Interestingly, Cisco is a BIRD user even though it has its own proprietary solution in this area. BIRD is far more flexible, says Filip. It has some unique features like very powerful filtering mechanisms. And of course it is open source, so companies can add their own functionality or integrate BIRD with their own solutions.
BIRD is free and can be installed on any commodity (COTS) hardware. It does not require a specific hardware platform.
Cisco provides a commercial product. It has a very broad user base to which the company provides training and certification programmes (CCIE, CCNA, and others). The Cisco software has a longer development track and it supports more features, mostly routing protocols. The number of FTEs Cisco spends on developing its software is simply far beyond what we at CZ.NIC can do.
As its name implies, BIRD is an internet routing daemon. It takes care of the administrative part of internet routing, which itself is carried out by the router (hardware). Basically, the daemon provides — in digital consultation with neighbouring daemons — the (optimal) routing tables for the routers and switches that make up the physical infrastructure of internet networks.
Note that the daemon itself does not forward any network packets. It merely provides the logistic information the network systems need to send incoming data packets on the right path to their final destinations. Due to the high workloads, the forwarding of packets on high-end systems is often performed by dedicated hardware.
At the same time, the small memory footprint of BIRD allows the software to be used by smaller ISPs using Linux or BSD-based routers. It can even run on OpenWrt, an open-source embedded Linux system for home routers such as ADSL gateways.
BIRD supports the following features:
- IPv4 and IPv6,
- multiple routing tables;
- BGP (Border Gateway Protocol), the standard protocol for exchangeing routing information with neighbouring networks;
- RIP (Routing Information Protocol), basically the predecessor of OSPF (below);
- OSPF (Open Shortest Path First), a modern routing protocol for large networks;
- static routes;
- an inter-table protocol;
- IPv6 router advertisements;
- BFD (Bidirectional Forwarding Detection), a protocol for fault detection between data packet forwarding systems;
- a command line interface (CLI);
- soft reconfiguration, i.e. no need to restart after the configuration has been changed; and
- a language for route filtering.
Support for IS-IS, a routing protocol "competing" with OSPF, is currently a work in progress. According to Filip, the difficulty is that IS-IS requires a redesign of the BIRD architecture to integrate IPv4 and IPv6. The current version of BIRD does support IPv4 and IPv6, but not at the same time — it's a compile-time switch.
Technology choice: Mainly (or only) open standards, Open source software
Main results, benefits and impacts
According to the European Internet Exchange Association (Euro-IX), an umbrella organisation for the European IX community, BIRD is by far the most widely used router daemon. In 2014, the software had a market share of 64 percent, leaving its "nearest" competitors far behind, with less than 15 percent each. To give an impression of how fast BIRD has conquered the market, in 2012 and 2013 BIRD's market share was 46 and 51 percent, respectively. The growth of BIRD has been mostly at the expense of Quagga, another open-source router daemon package.
According to Filip, Quagga becomes unstable when it needs to deal with more than one hundred BGP sessions, and has much weaker BGP filtering capabilities than BIRD.
Return on investment
CZ.NIC provides a support programme for BIRD, with prices ranging from 5,000 to 50,000 Euro per year. We currently have eight customers for this service, says Filip, mainly IXPs and large CDN/cloud providers. These fees now cover all development costs.
Track record of sharing
Currently about 3.2 FTE are working on BIRD, says Filip. The majority of the development is done by CZ.NIC. There are a few people sending in patches who are not part of the development team. The user community is quite broad though, which also helps in debugging the software.
Scope: Cross-border, International, European