Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
BGPD(8)			FreeBSD	System Manager's Manual		       BGPD(8)

     bgpd -- Border Gateway Protocol daemon

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

     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 influ-
     ence 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 par-
     ent 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	exter-
	     nal (EBGP)	session	are preferred over those learned via an	inter-
	     nal (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	se-

	 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 compari-

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

     Attributes	set by filters can be used to tip the decision process to pre-
     fer 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


     in	rc.conf.local(8).

     When bgpd starts up, it reads settings from a configuration file, typi-
     cally 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 ques-
		 tion is already greater than 0.  bgpd will start handling de-
		 motion	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.  Over-
		 rides 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

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

     -v		 Produce more verbose output.

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

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

     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.

     Q.	Vohra and E. Chen, BGP Support for Four-octet AS Number	Space, RFC
     4893, May 2007.

     V.	Gill, J. Heasley, D. Meyer, P. Savola, and C. Pignatoro, 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, 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.

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

     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.

     The bgpd program first appeared in	OpenBSD	3.5.

FreeBSD	13.0			 April 8, 2021			  FreeBSD 13.0


Want to link to this manual page? Use this URL:

home | help