Provided by: openbgpd_7.7-2_amd64 bug

NAME

     bgpd — Border Gateway Protocol daemon

SYNOPSIS

     bgpd [-cdnvV] [-D macro=value] [-f file]

DESCRIPTION

     bgpd is a Border Gateway Protocol (BGP) daemon which manages the network routing tables.
     Its main purpose is to exchange information concerning "network reachability" with other BGP
     systems.  bgpd uses the Border Gateway Protocol, Version 4, as described in RFC 4271.

     BGP is an exterior gateway protocol using a multiple step decision process to find the best
     path.  Advanced filtering can be used to influence the route decision for traffic
     engineering.  The session engine of bgpd is responsible for maintaining the TCP session with
     each neighbor.  Updates are passed to the Route Decision Engine (RDE) where the paths are
     filtered and used to compute a Routing Information Base (RIB).  The parent process is
     responsible for keeping the RIB in sync with the kernel routing table.

     The route decision process selects the best path by evaluating all paths to the same
     destination.  The decision process continues to the next step if paths have equal
     attributes.  Paths that are less preferred are taken out of consideration until there is
     only one path left.

         1.  All paths with errors or loops are not eligible.

         2.  Paths with an unreachable nexthop are not eligible.  After this step all remaining
             paths are valid.

         3.  The path with the highest LOCAL_PREF is selected.

         4.  The path with the shortest AS path attribute is selected.

         5.  The ORIGIN attribute is compared.  The order is IGP before EGP before incomplete
             origins.

         6.  The path with the lowest MULTI_EXIT_DISC metric is selected.  Normally, this value
             is only considered when choosing between multiple routes sent by the same
             neighbouring AS.  However, if “rde med compare always” is set in the configuration,
             the metric is compared for routes sent by any AS.

         7.  Comparison of the BGP session type.  Paths learned over an external (EBGP) session
             are preferred over those learned via an internal (IBGP) session.

         8.  The path with the highest local weight is selected.

         9.  If “rde route-age evaluate” is set then the oldest path is selected.

         10. The path coming from the neighbor with the lowest BGP ID wins.  If the ORIGINATOR_ID
             attribute is present, that value will be used in the comparison instead.

         11. The path with the shortest CLUSTER_LIST attribute is selected.  If it is not present
             then a length of 0 is used in the comparison.

         12. The path coming from the peer with the lowest IP address is selected.  IPv4 sessions
             will be preferred over IPv6 ones.

     Attributes set by filters can be used to tip the decision process to prefer particular paths
     over others.  This can be achieved by changing the localpref, med, or weight attributes.  AS
     path prepending or changing the med or origin attribute can be used to influence the routing
     behaviour on remote systems.

     To have bgpd enabled at boot time, use “rcctl enable bgpd”, which sets

           bgpd_flags=""

     in rc.conf.local(8).

     When bgpd starts up, it reads settings from a configuration file, typically bgpd.conf(5).  A
     running bgpd process can be controlled using the bgpctl(8) utility.

     The options are as follows:

     -c          Force bgpd to do carp(4) demotion at startup when the demote functionality is
                 used.  Normally, bgpd will only do demotion at startup when the demotion counter
                 for the group in question is already greater than 0.  bgpd will start handling
                 demotion after all sessions with demotion configured for the given group have
                 been successfully established.  At system startup, rc(8) has the demotion
                 counter for the group carp increased until after bgpd is started, so this option
                 should not be used in rc.conf(8).

     -D macro=value
                 Define macro to be set to value on the command line.  Overrides the definition
                 of macro in the configuration file.

     -d          Do not daemonize.  If this option is specified, bgpd will run in the foreground
                 and log to stderr.

     -f file     Use file as the configuration file, instead of the default /etc/bgpd.conf.

     -n          Configtest mode.  Only check the configuration file for validity.

     -v          Produce more verbose output.

     -V          Show the version and exit.

FILES

     /etc/bgpd.conf                     Default bgpd configuration file.
     /run/openbgpd/bgpd.sock.<rdomain>  Default bgpd control socket, where <rdomain> is the
                                        routing domain in which bgpd has been started.

SEE ALSO

     bgpd.conf(5), bgpctl(8), bgplg(8), bgplgsh(8)

STANDARDS

     R. Chandra, P. Traina, and T. Li, BGP Communities Attribute, RFC 1997, August 1996.

     A. Heffernan, Protection of BGP Sessions via the TCP MD5 Signature Option, RFC 2385, August
     1998.

     P. Marques and F. Dupont, Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain
     Routing, RFC 2545, March 1999.

     E. Chen, Route Refresh Capability for BGP-4, RFC 2918, September 2000.

     G. Huston, NOPEER Community for Border Gateway Protocol (BGP) Route Scope Control, RFC 3765,
     April 2004.

     Y. Rekhter, T. Li, and S. Hares, A Border Gateway Protocol 4 (BGP-4), RFC 4271, January
     2006.

     S. Sangli, D. Tappan, and Y. Rekhter, BGP Extended Communities Attribute, RFC 4360, February
     2006.

     E. Rosen and Y. Rekhter, BGP/MPLS IP Virtual Private Networks (VPNs), RFC 4364, February
     2006.

     T. Bates, E. Chen, and R. Chandra, BGP Route Reflection: An Alternative to Full Mesh
     Internal BGP (IBGP), RFC 4456, April 2006.

     E. Chen and V. Gillet, Subcodes for BGP Cease Notification Message, RFC 4486, April 2006.

     T. Bates, R. Chandra, D. Katz, and Y. Rekhter, Multiprotocol Extensions for BGP-4, RFC 4760,
     January 2007.

     V. Gill, J. Heasley, D. Meyer, P. Savola, and C. Pignataro, The Generalized TTL Security
     Mechanism (GTSM), RFC 5082, October 2007.

     J. Scudder and R. Chandra, Capabilities Advertisement with BGP-4, RFC 5492, February 2009.

     E. Chen and J. Yuan, Autonomous-System-Wide Unique BGP Identifier for BGP-4, RFC 6286, June
     2011.

     Q. Vohra and E. Chen, BGP Support for Four-Octet Autonomous System (AS) Number Space, RFC
     6793, Dec 2012.

     E. Chen, J. Scudder, P. Mohapatra, and K. Patel, Revised Error Handling for BGP UPDATE
     Messages, RFC 7606, August 2015.

     L. Blunk, M. Karir, and C. Labovitz, Multi-Threaded Routing Toolkit (MRT) Routing
     Information Export Format, RFC 6396, October 2011.

     J. Dong, M. Chen, and A. Suryanarayana, Subcodes for BGP Finite State Machine Error, RFC
     6608, May 2012.

     K. Patel, E. Chen, and B. Venkatachalapathy, Enhanced Route Refresh Capability for BGP-4,
     RFC 7313, July 2014.

     W. Kumari, R. Bush, H. Schiller, and K. Patel, Codification of AS 0 Processing, RFC 7607,
     August 2015.

     D. Walton, A. Retana, E. Chen, and J. Scudder, Advertisement of Multiple Paths in BGP, RFC
     7911, July 2016.

     C. Petrie and T. King, Multi-Threaded Routing Toolkit (MRT) Routing Information Export
     Format with BGP Additional Path Extensions, RFC 8050, May 2017.

     J. Heitz, J. Snijders, K. Patel, I. Bagdonas, and N. Hilliard, BGP Large Communities
     Attribute, RFC 8092, February 2017.

     P. Mohapatra, K. Patel, J. Scudder, D. Ward, and R. Bush, BGP Prefix Origin Validation State
     Extended Community, RFC 8097, March 2017.

     J. Snijders, J. Heitz, and J. Scudder, BGP Administrative Shutdown Communication, RFC 8203,
     July 2017.

     R. Bush and R. Austein, The Resource Public Key Infrastructure (RPKI) to Router Protocol,
     Version 1, RFC 8210, September 2017.

     J. Mauch, J. Snijders, and G. Hankins, Default External BGP (EBGP) Route Propagation
     Behavior without Policies, RFC 8212, July 2017.

     P. Francois, B. Decraene, C. Pelsser, K. Patel, and C. Filsfils, Graceful BGP Session
     Shutdown, RFC 8326, March 2018.

     E. Chen and J. Scudder, Extended Optional Parameters Length for BGP OPEN Message, RFC 9072,
     July 2021.

     A. Azimov, E. Bogomazov, R. Bush, K. Patel, and K. Sriram, Route Leak Prevention and
     Detection Using Roles in UPDATE and OPEN Messages, RFC 9234, May 2022.

HISTORY

     The bgpd program first appeared in OpenBSD 3.5.