Bird Internet routing daemon

Last updated
BIRD Internet Routing Daemon
Initial releaseJune 9, 2000;24 years ago (2000-06-09)
Stable release
2.15.1 / March 22, 2024 (2024-03-22) [1]
Repository
Operating system Unix-like
Type Routing
License GNU General Public License
Website bird.network.cz

BIRD (recursive acronym for BIRD Internet Routing Daemon [2] ) is an open-source implementation for routing Internet Protocol packets on Unix-like operating systems. It was developed as a school project at the Faculty of Mathematics and Physics, Charles University, Prague, [3] and is distributed under the GNU General Public License.

Contents

BIRD supports Internet Protocol version 4 and version 6 by running separate daemons. [4] It establishes multiple routing tables, [5] and uses BGP, RIP, and OSPF routing protocols, as well as statically defined routes. Its design differs significantly from GNU Zebra, Quagga and FRRouting. Currently BIRD is included in many Linux distributions, such as Debian, [6] Ubuntu [7] and Fedora. [8]

BIRD is used in several Internet exchanges, such as the London Internet Exchange (LINX), [9] LONAP, [10] DE-CIX [11] and MSK-IX [12] as a route server, where it replaced Quagga because of its scalability issues. [9] According to the 2012 Euro-IX survey, [13] BIRD is the most used route server amongst European Internet exchanges.

In 2010, CZ.NIC, the current sponsor of BIRD development, received the LINX Conspicuous Contribution Award for contribution of BIRD to the advancement in route server technology. [14]

Design

Maria Matejka presenting BIRD v2 design decisions at RIPE#86 RIPE86 Rotterdam 2023 May 17 25 17 344000.jpeg
Maria Matějka presenting BIRD v2 design decisions at RIPE#86

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.

See also

Related Research Articles

<span class="mw-page-title-main">Border Gateway Protocol</span> Protocol for communicating routing information on the Internet

Border Gateway Protocol (BGP) is a standardized exterior gateway protocol designed to exchange routing and reachability information among autonomous systems (AS) on the Internet. BGP is classified as a path-vector routing protocol, and it makes routing decisions based on paths, network policies, or rule-sets configured by a network administrator.

The Routing Information Protocol (RIP) is one of the oldest distance-vector routing protocols 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 source to destination. The largest number of hops allowed for RIP is 15, which limits the size of networks that RIP can support.

In computer networking, peering is a voluntary interconnection of administratively separate Internet networks for the purpose of exchanging traffic between the "down-stream" users of each network. Peering is settlement-free, also known as "bill-and-keep" or "sender keeps all", meaning that neither party pays the other in association with the exchange of traffic; instead, each derives and retains revenue from its own customers.

<span class="mw-page-title-main">Network address translation</span> Technique for making connections between IP address spaces

Network address translation (NAT) is a method of mapping an IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic routing device. The technique was originally used to bypass the need to assign a new address to every host when a network was moved, or when the upstream Internet service provider was replaced, but could not route the network's address space. It has become a popular and essential tool in conserving global address space in the face of IPv4 address exhaustion. One Internet-routable IP address of a NAT gateway can be used for an entire private network.

<span class="mw-page-title-main">Port forwarding</span> Computer networking feature

In computer networking, port forwarding or port mapping is an application of network address translation (NAT) that redirects a communication request from one address and port number combination to another while the packets are traversing a network gateway, such as a router or firewall. This technique is most commonly used to make services on a host residing on a protected or masqueraded (internal) network available to hosts on the opposite side of the gateway, by remapping the destination IP address and port number of the communication to an internal host.

Netfilter is a framework provided by the Linux kernel that allows various networking-related operations to be implemented in the form of customized handlers. Netfilter offers various functions and operations for packet filtering, network address translation, and port translation, which provide the functionality required for directing packets through a network and prohibiting packets from reaching sensitive locations within a network.

Point-to-Point Protocol daemon(PPPD) is the daemon that implements Point-to-Point Protocol (PPP). PPP is used to manage network connections between two nodes on Unix-like operating systems. It is configured using command-line arguments and configuration files.

In computer networking, xinetd is an open-source super-server daemon which runs on many Unix-like systems, and manages Internet-based connectivity.

<span class="mw-page-title-main">NetworkManager</span> Software

NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.

<span class="mw-page-title-main">Toronto Internet Exchange</span> Not-for-profit Internet Exchange Point

The Toronto Internet Exchange Community (TorIX) is a not-for-profit Internet Exchange Point (IXP) located in a carrier hotel at 151 Front Street West, Equinix's TR2 data centre at 45 Parliament Street and 905 King Street West in Toronto, Ontario, Canada. As of March 2021, TorIX has 259 unique autonomous systems representing 285 peer connections and peak traffic rates of 1.344 Tbps, making it the largest IXP in Canada. According to Wikipedia's List of Internet Exchange Points by Size, TorIX is the 16th largest IXP in the world in numbers of peers, and 17th in the world in traffic averages. The Exchange is organized and run by industry professionals in voluntary capacity.

<span class="mw-page-title-main">OpenBGPD</span> Open-source BGP daemon implementation

OpenBGPD, also known as OpenBSD Border Gateway Protocol Daemon, is a server software program that allows general purpose computers to be used as routers. It is a Unix system daemon that provides a free, open-source implementation of the Border Gateway Protocol version 4. This allows a machine to exchange routes with other systems that speak BGP.

Netlink is a socket family used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes, in a way similar to the Unix domain sockets available on certain Unix-like operating systems, including its original incarnation as a Linux kernel interface, as well as in the form of a later implementation on FreeBSD. Similarly to the Unix domain sockets, and unlike INET sockets, Netlink communication cannot traverse host boundaries. However, while the Unix domain sockets use the file system namespace, Netlink sockets are usually addressed by process identifiers (PIDs).

The domain name .local is a special-use domain name reserved by the Internet Engineering Task Force (IETF) so that it may not be installed as a top-level domain in the Domain Name System (DNS) of the Internet. As such it is similar to the other special domain names, such as .localhost. However, .local has since been designated for use in link-local networking, in applications of multicast DNS (mDNS) and zero-configuration networking (zeroconf) so that DNS service may be established without local installations of conventional DNS infrastructure on local area networks.

Quagga is a network routing software suite providing implementations of Open Shortest Path First (OSPF), Routing Information Protocol (RIP), Border Gateway Protocol (BGP) and IS-IS for Unix-like platforms, particularly Linux, Solaris, FreeBSD and NetBSD.

CZ.NIC is a Czech interest association of legal persons established by leading Internet service providers in 1998. The main activity of the association is administration of domain names .cz and 0.2.4.e164.arpa (ENUM), administration of .cz top-level domains and education in the area of domain names. Currently, the employees of the association are intensively working on expanding the DNSSEC technology, developing the domain administration system and mojeID service and promoting new technologies and projects beneficial to the Internet infrastructure in the Czech Republic.

A routing protocol specifies how routers communicate with each other to distribute information that enables them to select paths between nodes on a computer network. Routers perform the traffic directing functions on the Internet; data packets are forwarded through the networks of the internet from router to router until they reach their destination computer. Routing algorithms determine the specific choice of route. Each router has a prior knowledge only of networks attached to it directly. A routing protocol shares this information first among immediate neighbors, and then throughout the network. This way, routers gain knowledge of the topology of the network. The ability of routing protocols to dynamically adjust to changing conditions such as disabled connections and components and route data around obstructions is what gives the Internet its fault tolerance and high availability.

A route server is a computer server that was originally developed by the Routing Arbiter project, with funding from the National Science Foundation. This routing process directs information among Border Gateway Protocol (BGP) routers. These servers are placed at Network access points (NAPs), where centralized computers organize and match routing data. Route servers are important because they help manage BGP sessions. BGP sessions have difficulties with overhead when managing sessions where routers with single and multiple domains are connected. Route servers reduce overhead by referencing the IP routing table of an autonomous system where the server is located.

<span class="mw-page-title-main">Open vSwitch</span> Virtual network switch

Open vSwitch (OVS) is an open-source implementation of a distributed virtual multilayer switch. The main purpose of Open vSwitch is to provide a switching stack for hardware virtualization environments, while supporting multiple protocols and standards used in computer networks.

firewalld is a firewall management tool for Linux operating systems. It provides firewall features by acting as a front-end for the Linux kernel's netfilter framework. firewalld's current default backend is nftables. Prior to v0.6.0, iptables was the default backend. Through its abstractions, firewalld acts as an alternative to nft and iptables command line programs. The name firewalld adheres to the Unix convention of naming system daemons by appending the letter "d".

References

  1. "NEWS file". CZ.NIC. 22 March 2024.
  2. "The BIRD Internet Routing Daemon Project". bird.network.cz. Retrieved 2022-04-27.
  3. Ondrej Filip (2010). BIRD Internet Routing Daemon (PDF). NANOG-48. NANOG.
  4. "BIRD FAQ". BIRD source code. Retrieved 20 November 2013.
  5. Vincent Bernat (25 June 2011). "Network lab: site to site VPN" . Retrieved 2013-02-22.
  6. Debian - Details of package bird in squeeze. Packages.debian.org. Retrieved on 2014-05-30.
  7. "Ubuntu – Error".
  8. bird | Package Info | koji. Koji.fedoraproject.org. Retrieved on 2014-05-30.
  9. 1 2 Preston, Tim (2010-01-21). "BIRD Route Server at LINX" (PDF). Archived from the original (PDF) on 2011-07-21.
  10. Davidson, Andy (2009-05-28). "LONAP's Route Servers" (PDF). UKNOF13. Archived from the original (PDF) on 2009-06-20. Retrieved 30 July 2011.
  11. "DE-CIX news" (PDF). February 2010. Archived from the original (PDF) on 2011-09-28.
  12. "MSK-IX :: Looking glass".
  13. "European Internet Exchange Association 2011 Report on European IXPs". Archived from the original on 2014-05-25.
  14. "LINX Conspicuous Contribution Award". Archived from the original on 2011-07-01.