Bird Internet routing daemon
Encyclopedia
BIRD is an open source
implementation of a TCP/IP
routing
daemon
for Unix
like systems. Developed as a school project at the Faculty of Mathematics and Physics, Charles University
, Prague
, with major contributions from developers Martin Mares, Pavel Machek and Ondrej Filip. It is distributed under the GNU General Public License
.
BIRD supports both IPv4
and IPv6
, multiple routing tables, and a BGP
, RIP
and OSPF
routing protocols, as well as statically defined routes. Its design differs significantly from the better known routing daemons, GNU Zebra
and Quagga
. Currently BIRD is included in many Linux distributions like Debian
, Ubuntu
BIRD is used in several internet exchanges
(for example LINX
, LONAP
and DE-CIX
) as a route server
, where it replaced Quagga because of its scalability issues.
In 2010, CZ.NIC
(as the current sponsor of BIRD development) received LINX Conspicuous Contribution Award for contribution of BIRD to the advancement in route server technology.
Using the kernel protocol this internal routing table may be connected to the actual kernel routing table. This allows BIRD to export network routes from its internal routing table to the kernel routing table and optionally also learn about network routes from the kernel routing table (created externally by the administrator or by other means) and import these routes into its internal routing table.
Filters may be used to control what network routes are imported into the internal routing table or exported to the given protocol. Network routes may be accepted, rejected or modified using filters.
BIRD also supports multiple internal routing tables and multiple instances of supported protocol types. Protocols may be connected to different internal routing tables, these internal routing tables may exchange information about network routes they contain (controlled by filters) and each of these internal routing tables may be connected to a different kernel routing table thus allowing for policy routing.
Configuration is done by editing the configuration file and telling BIRD to reconfigure itself. BIRD changes to the new configuration without the need to restart the daemon itself and restarts reconfigured protocols only if necessary. There is also an option to do a soft reconfiguration, which doesn't restart protocols but may leave some stale information such as changed filters not filtering out already exported network routes.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
implementation of a TCP/IP
Internet protocol suite
The Internet protocol suite is the set of communications protocols used for the Internet and other similar networks. It is commonly known as TCP/IP from its most important protocols: Transmission Control Protocol and Internet Protocol , which were the first networking protocols defined in this...
routing
Routing
Routing is the process of selecting paths in a network along which to send network traffic. Routing is performed for many kinds of networks, including the telephone network , electronic data networks , and transportation networks...
daemon
Daemon (computer software)
In Unix and other multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user...
for Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
like systems. Developed as a school project at the Faculty of Mathematics and Physics, Charles University
Charles University in Prague
Charles University in Prague is the oldest and largest university in the Czech Republic. Founded in 1348, it was the first university in Central Europe and is also considered the earliest German university...
, Prague
Prague
Prague is the capital and largest city of the Czech Republic. Situated in the north-west of the country on the Vltava river, the city is home to about 1.3 million people, while its metropolitan area is estimated to have a population of over 2.3 million...
, with major contributions from developers Martin Mares, Pavel Machek and Ondrej Filip. It is distributed under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....
.
BIRD supports both IPv4
IPv4
Internet Protocol version 4 is the fourth revision in the development of the Internet Protocol and the first version of the protocol to be widely deployed. Together with IPv6, it is at the core of standards-based internetworking methods of the Internet...
and IPv6
IPv6
Internet Protocol version 6 is a version of the Internet Protocol . It is designed to succeed the Internet Protocol version 4...
, multiple routing tables, and a BGP
Border Gateway Protocol
The Border Gateway Protocol is the protocol backing the core routing decisions on the Internet. It maintains a table of IP networks or 'prefixes' which designate network reachability among autonomous systems . It is described as a path vector protocol...
, RIP
Routing Information Protocol
The Routing Information Protocol is a distance-vector routing protocol, which employs the hop count as a routing metric. RIP prevents routing loops by implementing a limit on the number of hops allowed in a path from the source to a destination. The maximum number of hops allowed for RIP is 15....
and OSPF
Open Shortest Path First
Open Shortest Path First is an adaptive routing protocol for Internet Protocol networks. It uses a link state routing algorithm and falls into the group of interior routing protocols, operating within a single autonomous system . It is defined as OSPF Version 2 in RFC 2328 for IPv4...
routing protocols, as well as statically defined routes. Its design differs significantly from the better known routing daemons, GNU Zebra
GNU Zebra
Zebra is a routing software package that provides TCP/IP based routing services with routing protocols support such as RIP, OSPF and BGP. Zebra also supports special BGP Route Reflector and Route Server behavior. In addition to traditional IPv4 routing protocols, Zebra also supports IPv6 routing...
and Quagga
Quagga (Software)
Quagga is a network routing software suite providing implementations of Open Shortest Path First , Routing Information Protocol , Border Gateway Protocol and IS-IS for Unix-like platforms, particularly Linux, Solaris, FreeBSD and NetBSD....
. Currently BIRD is included in many Linux distributions like Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...
, Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...
BIRD is used in several internet exchanges
Internet Exchange Point
An Internet exchange point is a physical infrastructure through which Internet service providers exchange Internet traffic between their networks . IXPs reduce the portion of an ISP's traffic which must be delivered via their upstream transit providers, thereby reducing the average per-bit...
(for example LINX
London Internet Exchange
The London Internet Exchange is an Internet exchange point situated in London. It was founded in 1994 by a group of Internet service providers. LINX is a founder member of , a Europe-wide alliance of Internet Exchanges...
, LONAP
LONAP
London Network Access Point is a London-based Internet exchange point founded in 1997 as a membership organisation and currently has almost 100 members, making it the 2nd largest IXP in the UK and around the 15th largest IXP in the World by membership...
and DE-CIX
DE-CIX
Deutscher Commercial Internet Exchange is an Internet Exchange Point situated in Frankfurt ....
) as a route server
Route server
A route server is a server that was originally made with the intention to be a part of the National Science Foundation funded Routing Arbiter project. This routing process directs information among Border Gateway Protocol routers. These servers are placed at Network Access Points in which the...
, where it replaced Quagga because of its scalability issues.
In 2010, CZ.NIC
CZ.NIC
- History :CZ.NIC has been founded in 1998 as neutral operator of ccTLD domain .cz, previously managed by EUNet Czechia .CZ.NIC worked as policy making organisation, while technical operation has been outsourced ....
(as the current sponsor of BIRD development) received LINX Conspicuous Contribution Award for contribution of BIRD to the advancement in route server technology.
Design
BIRD implements an internal routing table to which the supported protocols connect. Most of these protocols import network routes to this internal routing table and also export network routes from this internal routing table to the given protocol. This way information about network routes is exchanged among different routing protocols.Using the kernel protocol this internal routing table may be connected to the actual kernel routing table. This allows BIRD to export network routes from its internal routing table to the kernel routing table and optionally also learn about network routes from the kernel routing table (created externally by the administrator or by other means) and import these routes into its internal routing table.
Filters may be used to control what network routes are imported into the internal routing table or exported to the given protocol. Network routes may be accepted, rejected or modified using filters.
BIRD also supports multiple internal routing tables and multiple instances of supported protocol types. Protocols may be connected to different internal routing tables, these internal routing tables may exchange information about network routes they contain (controlled by filters) and each of these internal routing tables may be connected to a different kernel routing table thus allowing for policy routing.
Configuration is done by editing the configuration file and telling BIRD to reconfigure itself. BIRD changes to the new configuration without the need to restart the daemon itself and restarts reconfigured protocols only if necessary. There is also an option to do a soft reconfiguration, which doesn't restart protocols but may leave some stale information such as changed filters not filtering out already exported network routes.