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

FreeBSD Manual Pages


home | help
EXABGP(1)		FreeBSD	General	Commands Manual		     EXABGP(1)

     exabgp -- Influence or control network using BGP

     exabgp [--folder folder | -f folder] [--env env-config | -e env-config]
	    [--full-ini	| --fi]	[--diff-ini | --di] [--full-env	| --fe]
	    [--diff-env	| --de]	[--debug | -d] [--signal time] [--once | -1]
	    [--pdb | -p] [--memory | -s] [--profile profile] [--test | -t]
	    [--decode hex-message | -x hex-message] [--help | -h]
	    [--version | -v] [configuration ...]

     exabgp allows engineers to	control	their network from commodity servers.
     Possible uses include DDoS	mitigation, network visualisation, service
     high availability and implementing	anycast.  exabgp does not perform any
     FIB manipulation on the system it runs on;	if you need that this is not
     the program for you.  exabgp can also print received BGP messages into
     readable plain text or JSON formatted text.

     The arguments are as follows:

     --folder folder | -f folder
	     Specify the directory where the configuration file	can be found.

     --env env-config |	-e env-config
	     Specify where the environment configuration file can be found.

     --full-ini	| --fi
	     Display the full environment configuration	using on stdout	using
	     the ini format.

     --diff-ini	| --di
	     Display the non-default environment configuration on stdout using
	     the ini format.

     --full-env	| --fe
	     Display the full environment configuration	on stdout using	the
	     env format.

     --diff-env	| --de
	     Display the non-default configuration on stdout using the env

     --debug | -d
	     Start the python debugger on serious logging on and on reception
	     of	the SIGTERM signal.  This is a shortcut	for ex-
	     abgp.log.all=true and exabgp.log.level=DEBUG.

     --signal time
	     Issue a SIGUSR1 signal to reload the configuration	after the
	     specified number of seconds, only useful for code debugging.

     --once | -1
	     Only perform one attempt to connect to peers, used	mostly for de-

     --pdb | -p
	     Start the python debugger on critical logging, reception of
	     SIGTERM, and on uncaught python exceptions.  This is a shortcut
	     for exabgp.pdb.enable=true.

     --memory |	-s
	     Display memory usage information on program exit.

     --profile profile
	     Enable collection of profiling information	to the given file.
	     This is a shortcut	for exabgp.profile.enable=true and

     --test | -t
	     Only do a configuration validity check.

     --decode hex-message | -x hex-message
	     Decode a raw route	packet in hexadecimal string.

     --help | -h
	     Display summary of	usage and configuration	of exabgp.

     --version | -v
	     Display the exabgp	version	number and exit.

     The configuration of exabgp is split in two:

     +o	 The environment configuration which controls the basic	execution of
	 exabgp	such as	logging, daemonizing, pid-file,	profiling etc.
     +o	 The BGP configuration of exabgp, which	specifies which	neighbors it
	 should	talk BGP with and all other aspects of the BGP configuration.

     The environment configuration can be specified a number of	different
     ways, with	different priority:

     1.	  Command line values using dot-separated notation.
     2.	  Environment variables	using dot-separated notation.
     3.	  Command line values using underscore-separated notation.
     4.	  Environment variables	using underscore-seprated notation.
     5.	  The values from the ini configuration	file, /etc/exabgp/exabgp.env
     6.	  The built-in default values.

     The following environment variables can be	used to	configure the basic
     execution of exabgp:

     exabgp.api.encoder	   (experimental) default encoder to use with external
			   API (text or	json).	Default: text.

     exabgp.api.highres	   Controls whether to use high-resolution timestamps
			   in JSON.  Default: false.

     exabgp.api.respawn	   Controls whether to respawn a helper	process	if it
			   dies.  Default: false.

     exabgp.bgp.openwait   Controls how	many seconds we	should wait for	a BGP
			   open	message	once the TCP session is	established.
			   Default: 60 seconds.

     exabgp.cache.attributes Controls whether all attributes (configuration
			   and wire) should be cached for faster parsing.  De-
			   fault: true.

     exabgp.cache.nexthops (deprecated)	Controls whether route next-hops are
			   cached.  Default: true.

     exabgp.daemon.daemonize Controls whether exabgp should run	in the back-
			   ground.  Default: false.	   Where to save the PID of exabgp if we manage	it.
			   Default: '' (not set).

     exabgp.daemon.user	   The user to run exabgp as.  Should be an unprivi-
			   leged user.	Default: nobody.

     exabgp.log.all	   Controls whether debug logging should be done for
			   everything.	Default: false.

     exabgp.log.configuration Controls whether logging should be done for the
			   configuration and command parsing.  Default:	true.

     exabgp.log.daemon	   Controls whether logging should be done for PID
			   change, forking, etc.  Default: true.

     exabgp.log.destination Controls where logging should be sent.  syslog (or
			   no setting) sends the data to the local syslog
			   server.  host:<location> sends the data to a	remote
			   syslog server.  stdout sends	the data to stdout.
			   stderr sends	the data to stderr.  <filename>	sends
			   the data to the named file.	Default: stdout.

     exabgp.log.enable	   Controls whether logging should be done.  Default:

     exabgp.log.level	   Sets	the minimum severity level to log.  Default:

     exabgp.log.message	   Controls logging of changes in route	announcement
			   in config reload.  Default: false.	   Controls logging of networking information (TCP/IP
			   state, network state	etc.).	Default: true.

     exabgp.log.packets	   Controls logging of BGP packets sent	and received.
			   Default: false.

     exabgp.log.parser	   Controls logging of BGP message parsing details.
			   Default: false.

     exabgp.log.processes  Controls logging of forked processes.  Default:

     exabgp.log.reactor	   Controls logging of signals received	and command
			   reload.  Default: true.

     exabgp.log.rib	   Controls logging of changes in locally configured
			   routes.  Default: false.

     exabgp.log.routes	   Controls logging of received	routes.	 Default:

     exabgp.log.short	   Coontrols whether to	use long or short log format
			   (not	prepended with time, level, pid	and source).
			   Default: false.

     exabgp.log.timers	   Controls logging of keepalive timers.  Default:

     exabgp.pdb.enable	   Controls whether pdb, the python interactive	debug-
			   ger should be started on program faults.  Default:

     exabgp.profile.enable Controls whether profiling of the code should be
			   done.  Default: false.

     exabgp.profile.file   Controls where profiling results should be written.
			   None/empty means stdout.  Default: empty.

     exabgp.reactor.speed  Controls the	time of	one reactor loop.  Use only if
			   you understand the code.  Default: 1.0.

     exabgp.tcp.acl	   (experimental, unimplemented).  Default: empty.

     exabgp.tcp.bind	   IP address to bind to when listening	(no ip to dis-
			   able).  Default: empty.

     exabgp.tcp.delay	   Start to announce routes when the minutes in	the
			   hour	is a modulo of this number.  Default: 0.

     exabgp.tcp.once	   Only	perform	one TCP	connection attempt per peer,
			   for debugging scripts.  Default: false.

     exabgp.tcp.port	   Port	to bind	to when	listening.  Default: 179.

     /etc/exabgp/exabgp.env is the default file	for setting the	"environment"
     variables controlling the execution of exabgp.  An	alaternative "env"
     configuration file	can be supplied	via the	--env env-config argument.
     The format	of this	file is	"Windows INI format".  All the default set-
     tings can be shown	with the exabgp	--test --full-init command, an example
     showing parts of this output is:

	encoder	= text
	highres	= false
	respawn	= false

	openwait = 60

     Additionally, the user will need to supply	a configuration	file control-
     ling the BGP configuration	of exabgp, in the format described in

     exabgp catches a few different signals to control specific	actions.  They

     ALRM   Restarts exabgp.
     USR1   Causes exabgp to reload the	configuration.
     USR2   Causes exabgp to reload the	configuration and restart any forked
     TERM   Terminates exabgp.
     HUP    Also terminates exabgp (does not reload the	configuration any-

     Reloading large configurations using signals is currently not recom-
     mended, because the configuration parsing code is currently blocking.
     Therefore if you have a large configuration change, it could cause	the
     peer to miss some keepalive and cause a session flap.

     The --test	argument is useful to validate the syntax of the configuration
     file.  The	--debug	flag will provide copious debug	output to whereever
     the various exabgp.log variable settings dictate.


     A list of the standards exabgp implements which is	indicative of the fea-
     tures implemented is:

     RFC 4893	 BGP Support for Four-octet AS Number Space
     RFC 4760	 Multiprotocol Extension for BGP-4
     RFC 4659	 BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6
     RFC 4762	 Virtual Private LAN Service (VPLS) Using Label	Distribution
		 Protocol (LDP)	Signalling
     RFC 5575	 Dissemination of Flow Specification Rules
     RFC 4724	 Graceful Restart Mechanism for	BGP
     RFC 7313	 Enhanced Route	Refresh	Capability for BGP-4
     RFC 7311	 The Accumulated IGP Metric Attribute for BGP
     draft-raszuk-idr-flow-spec-v6-03 (draft-ietf-idr-flow-spec-v6-06),	Dis-
		 semination of Flow Specification Rules	for IPv6
     draft-ietf-idr-flowspect-redirect-ip-00 (-02) BGP Flow-Spect Redirect to
		 IP Action
     draft-ietf-idr-add-paths-08 (-10) Advertisement of	Multiple Paths in BGP
     draft-ietf-idr-bgp-multisession-07	(??)
     draft-scudder-bmp-01 (??)

     A list of other more basic	BGP-related standard entirely or partially im-
     plemented is:

     RFC 1997	 BGP Communities Attribute
     RFC 2385	 Protection of BGP Sessions via	the TCP	MD5 Signature
     RFC 2545	 Use of	BGP-4 Multirptocol Extensions for IPv6 Inter-Domain
     RFC 2918	 Route Refresh Capability for BGP-4
     RFC 3107	 Carrying Label	Information in BGP-4
     RFC 3765	 NOPEER	Community for Border Gateway Protocol (BGP) Route
		 Scope Control
     RFC 7999	 BLACKHOLE BGP Community for Blackholing
     RFC 4271	 A Border Gateway Protocol 4 (BGP-4)
     RFC 4360	 BGP Extended Communities Attribute
     RFC 4364	 Constrained Route Distribution	for BGP/MPLS IP	VPNs
     RFC 4456	 BGP Rotue Relection: An Alternative to	Full Mesh Internal BGP
     RFC 5396	 Textual Representation	of Autonomous System (AS) Numbers
     RFC 5492	 Capabilities Advertisement with BGP-4
     RFC 6286	 Autonomous-System-Wide	Unique BGP Identifier for BGP-4
     RFC 6608	 Subcodes for BGP Finate State Machine Error

			       February	26, 2015


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

home | help