OpenBGPD, also known as OpenBSD Border Gateway Protocol Daemon, is a
server
Server may refer to:
Computing
*Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients
Role
* Waiting staff, those who work at a restaurant or a bar attending customers and su ...
software
program
Program, programme, programmer, or programming may refer to:
Business and management
* Program management, the process of managing several related projects
* Time management
* Program, a part of planning
Arts and entertainment Audio
* Progra ...
that allows general purpose
computer
A computer is a machine that can be programmed to Execution (computing), carry out sequences of arithmetic or logical operations (computation) automatically. Modern digital electronic computers can perform generic sets of operations known as C ...
s to be used as
routers. It is a
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
system
daemon
Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and mythology and of later Hellenistic religion and philosophy.
The word ...
that provides a free, open-source implementation of the
Border Gateway Protocol
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 ...
version 4. This allows a machine to exchange routes with other systems that speak BGP.
OpenBSD Border Gateway Protocol Daemon is developed by Henning Brauer, Peter Hessler, and Claudio Jeker as part of the
OpenBSD
OpenBSD is a security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by forking NetBSD 1.0. According to the website, the OpenBSD project em ...
project.
OpenOSPFD
OpenOSPFD is an ISC licensed implementation of the Open Shortest Path First Protocol. It is a network routing software suite which allows ordinary general purpose computers to be used as routers exchanging routes with other computer systems spea ...
, developed by Esben Nørby, is a companion daemon of OpenBGPD that implements the
Open Shortest Path First
Open Shortest Path First (OSPF) is a routing protocol for Internet Protocol (IP) networks. It uses a link state routing (LSR) algorithm and falls into the group of interior gateway protocols (IGPs), operating within a single autonomous sys ...
protocol. The suite was developed as an alternative to packages such as
Quagga
The quagga ( or ) (''Equus quagga quagga'') is a subspecies of the plains zebra that was endemic to South Africa until it was hunted to extinction in the late 19th century. It was long thought to be a distinct species, but early genetic ...
, a
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
-focused routing suite which is licensed under the
GPL
The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general u ...
and does not meet the project's requirements and quality standards.
[A Secure BGP Implementation](_blank)
/ref>
Goals
The design goals of OpenBSD Border Gateway Protocol Daemon include being secure ( non-exploitable), reliable, and lean enough for most users, both in size and memory usage. The configuration language should be both powerful and easy to use. It must also be able to quickly handle hundreds of thousands of table entries in a memory
Memory is the faculty of the mind by which data or information is encoded, stored, and retrieved when needed. It is the retention of information over time for the purpose of influencing future action. If past events could not be remembered, ...
-efficient way.
Design
OpenBGPD consists of a parent process
In computing, a parent process is a process that has created one or more child processes.
Unix-like systems
In Unix-like operating systems, every process except (the swapper) is created when another process executes the fork() system call. Th ...
, and two child process
A child process in computing is a process created by another process (the parent process). This technique pertains to multitasking operating systems, and is sometimes called a subprocess or traditionally a subtask.
There are two major procedures ...
es: the Route Decision Engine (RDE), and the Session Engine (SE). The parent process is the only part that doesn't drop privileges; the others do, in the interest of non-exploitability. The parent process cannot drop privileges, because it needs to update the routing table
In computer networking, a routing table, or routing information base (RIB), is a data table stored in a router or a network host that lists the routes to particular network destinations, and in some cases, metrics (distances) associated with tho ...
and it has to run on a privileged port (179).
See also
*List of open source routing platforms
Open-source routing platforms may refer to:
* Conventional routing daemons
** Babel
** B.A.T.M.A.N.
** BIRD
** OpenBGPD
** OpenOSPFD
** Quagga
** XORP
** Zebra
** Optimized Link State Routing Protocol
** FRRouting
** GoBGP
* Software distribut ...
References
External links
*
*
A paper explaining OpenBGPD by Henning Brauer
Hasso Tepper's work on OpenBGPD on Debian GNU/Linux
Routing with OpenBSD using OpenOSPFD and OpenBGPD
- Paper (pdf) by Claudio Jeker (2006)
BSD software
BGPD
Free routing software
OpenBSD software using the ISC license
{{network-software-stub