1EXABGP(1)                 BSD General Commands Manual                EXABGP(1)
2

NAME

4     exabgp — Influence or control network using BGP
5

SYNOPSIS

7     exabgp [--help | -h] [--version | -v] [--root | -f]
8            [--env env-config | -e env-config] [--full-ini | --fi]
9            [--diff-ini | --di] [--full-env | --fe] [--diff-env | --de]
10            [--run helper] [--debug | -d] [--validate] [--signal time]
11            [--once | -1] [--pdb | -p] [--memory | -s] [--profile profile]
12            [--test | -t] [--decode hex-message | -x hex-message]
13            [configuration ...]
14

DESCRIPTION

16     exabgp allows engineers to control their network from commodity servers.
17     Possible uses include DDoS mitigation, network visualisation, service
18     high availability and implementing anycast.  exabgp does not perform any
19     FIB manipulation on the system it runs on; if you need that this is not
20     the program for you.  exabgp can also print received BGP messages into
21     readable plain text or JSON formatted text.
22
23     The arguments are as follows:
24
25
26     --help | -h
27             Display summary of usage and configuration of exabgp.
28
29     --version | -v
30             Display the exabgp version number and exit.
31
32     --root folder | -f folder
33             Root folder where etc, bin, sbin are located.
34
35     --env env-config | -e env-config
36             Specify where the environment configuration file can be found.
37
38     --full-ini | --fi
39             Display the full environment configuration using on stdout using
40             the ini format.
41
42     --diff-ini | --di
43             Display the non-default environment configuration on stdout using
44             the ini format.
45
46     --full-env | --fe
47             Display the full environment configuration on stdout using the
48             env format.
49
50     --diff-env | --de
51             Display the non-default configuration on stdout using the env
52             format.
53
54     --run helper
55             Do not run ExaBGP but one of its helper programs, options are:
56             healthcheck and cli
57
58     --debug | -d
59             Start the python debugger on serious logging on and on reception
60             of the SIGTERM signal.  This is a shortcut for ex‐
61             abgp.log.all=true and exabgp.log.level=DEBUG.
62
63     --validate
64             Validate the configuration file format only.
65
66     --signal time
67             Issue a SIGUSR1 signal to reload the configuration after the
68             specified number of seconds, only useful for code debugging.
69
70     --once | -1
71             Only perform one attempt to connect to peers, used mostly for de‐
72             bugging.
73
74     --pdb | -p
75             Start the python debugger on critical logging, reception of
76             SIGTERM, and on uncaught python exceptions.  This is a shortcut
77             for exabgp.pdb.enable=true.
78
79     --memory | -s
80             Display memory usage information on program exit.
81
82     --profile profile
83             Enable collection of profiling information to the given file.
84             This is a shortcut for exabgp.profile.enable=true and exabgp.pro‐
85             file.file=profile.
86
87     --test | -t
88             Only do a configuration validity check.
89
90     --decode hex-message | -x hex-message
91             Decode a raw route packet in hexadecimal string.
92
93

ENVIRONMENT

95     The configuration of exabgp is split in two:
96
97     The environment configuration which controls the basic execution of
98         exabgp such as logging, daemonizing, pid-file, profiling etc.
99     The BGP configuration of exabgp, which specifies which neighbors it
100         should talk BGP with and all other aspects of the BGP configuration.
101
102     The environment configuration can be specified a number of different
103     ways, with different priority:
104
105     1.   Command line values using dot-separated notation.
106     2.   Environment variables using dot-separated notation.
107     3.   Command line values using underscore-separated notation.
108     4.   Environment variables using underscore-seprated notation.
109     5.   The values from the ini configuration file, /etc/exabgp/exabgp.env
110     6.   The built-in default values.
111
112     The following environment variables can be used to configure the basic
113     execution of exabgp:
114
115     exabgp.api.encoder    (experimental) default encoder to use with external
116                           API (text or json).  Default: text.
117
118     exabgp.api.highres    Controls whether to use high-resolution timestamps
119                           in JSON.  Default: false.
120
121     exabgp.api.respawn    Controls whether to respawn a helper process if it
122                           dies.  Default: false.
123
124     exabgp.bgp.openwait   Controls how many seconds we should wait for a BGP
125                           open message once the TCP session is established.
126                           Default: 60 seconds.
127
128     exabgp.cache.attributes Controls whether all attributes (configuration
129                           and wire) should be cached for faster parsing.  De‐
130                           fault: true.
131
132     exabgp.cache.nexthops (deprecated) Controls whether route next-hops are
133                           cached.  Default: true.
134
135     exabgp.daemon.daemonize Controls whether exabgp should run in the back‐
136                           ground.  Default: false.
137
138     exabgp.daemon.pid     Where to save the PID of exabgp if we manage it.
139                           Default: '' (not set).
140
141     exabgp.daemon.user    The user to run exabgp as.  Should be an unprivi‐
142                           leged user.  Default: nobody.
143
144     exabgp.log.all        Controls whether debug logging should be done for
145                           everything.  Default: false.
146
147     exabgp.log.configuration Controls whether logging should be done for the
148                           configuration and command parsing.  Default: true.
149
150     exabgp.log.daemon     Controls whether logging should be done for PID
151                           change, forking, etc.  Default: true.
152
153     exabgp.log.destination Controls where logging should be sent.  syslog (or
154                           no setting) sends the data to the local syslog
155                           server.  host:<location> sends the data to a remote
156                           syslog server.  stdout sends the data to stdout.
157                           stderr sends the data to stderr.  <filename> sends
158                           the data to the named file.  Default: stdout.
159
160     exabgp.log.enable     Controls whether logging should be done.  Default:
161                           true.
162
163     exabgp.log.level      Sets the minimum severity level to log.  Default:
164                           INFO.
165
166     exabgp.log.message    Controls logging of changes in route announcement
167                           in config reload.  Default: false.
168
169     exabgp.log.network    Controls logging of networking information (TCP/IP
170                           state, network state etc.).  Default: true.
171
172     exabgp.log.packets    Controls logging of BGP packets sent and received.
173                           Default: false.
174
175     exabgp.log.parser     Controls logging of BGP message parsing details.
176                           Default: false.
177
178     exabgp.log.processes  Controls logging of forked processes.  Default:
179                           true.
180
181     exabgp.log.reactor    Controls logging of signals received and command
182                           reload.  Default: true.
183
184     exabgp.log.rib        Controls logging of changes in locally configured
185                           routes.  Default: false.
186
187     exabgp.log.routes     Controls logging of received routes.  Default:
188                           false.
189
190     exabgp.log.short      Coontrols whether to use long or short log format
191                           (not prepended with time, level, pid and source).
192                           Default: false.
193
194     exabgp.log.timers     Controls logging of keepalive timers.  Default:
195                           false.
196
197     exabgp.pdb.enable     Controls whether pdb, the python interactive debug‐
198                           ger should be started on program faults.  Default:
199                           false.
200
201     exabgp.profile.enable Controls whether profiling of the code should be
202                           done.  Default: false.
203
204     exabgp.profile.file   Controls where profiling results should be written.
205                           None/empty means stdout.  Default: empty.
206
207     exabgp.reactor.speed  Controls the time of one reactor loop.  Use only if
208                           you understand the code.  Default: 1.0.
209
210     exabgp.tcp.acl        (experimental, unimplemented).  Default: empty.
211
212     exabgp.tcp.bind       IP address to bind to when listening (no ip to dis‐
213                           able).  Default: empty.
214
215     exabgp.tcp.delay      Start to announce routes when the minutes in the
216                           hour is a modulo of this number.  Default: 0.
217
218     exabgp.tcp.once       Only perform one TCP connection attempt per peer,
219                           for debugging scripts.  Default: false.
220
221     exabgp.tcp.port       Port to bind to when listening.  Default: 179.
222

FILES

224     /etc/exabgp/exabgp.env is the default file for setting the "environment"
225     variables controlling the execution of exabgp.  An alaternative "env"
226     configuration file can be supplied via the --env env-config argument.
227     The format of this file is "Windows INI format".  All the default set‐
228     tings can be shown with the exabgp --test --full-init command, an example
229     showing parts of this output is:
230
231        [exabgp.api]
232        encoder = text
233        highres = false
234        respawn = false
235
236        [exabgp.bgp]
237        openwait = 60
238
239     Additionally, the user will need to supply a configuration file control‐
240     ling the BGP configuration of exabgp, in the format described in
241     exabgp.conf(5).
242

SIGNALS

244     exabgp catches a few different signals to control specific actions.  They
245     are:
246
247     ALRM   Restarts exabgp.
248     USR1   Causes exabgp to reload the configuration.
249     USR2   Causes exabgp to reload the configuration and restart any forked
250            processes.
251     TERM   Terminates exabgp.
252     HUP    Also terminates exabgp (does not reload the configuration any‐
253            more).
254
255     Reloading large configurations using signals is currently not recom‐
256     mended, because the configuration parsing code is currently blocking.
257     Therefore if you have a large configuration change, it could cause the
258     peer to miss some keepalive and cause a session flap.
259

DIAGNOSTICS

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

SEE ALSO

266     exabgp.conf(5)
267

STANDARDS

269     A list of the standards exabgp implements which is indicative of the fea‐
270     tures implemented is:
271
272     RFC 4893    BGP Support for Four-octet AS Number Space
273     RFC 4760    Multiprotocol Extension for BGP-4
274     RFC 4659    BGP-MPLS IP Virtual Private Network (VPN) Extension for IPv6
275                 VPN
276     RFC 4762    Virtual Private LAN Service (VPLS) Using Label Distribution
277                 Protocol (LDP) Signalling
278     RFC 5575    Dissemination of Flow Specification Rules
279     RFC 4724    Graceful Restart Mechanism for BGP
280     RFC 7313    Enhanced Route Refresh Capability for BGP-4
281     RFC 7311    The Accumulated IGP Metric Attribute for BGP
282     draft-raszuk-idr-flow-spec-v6-03 (draft-ietf-idr-flow-spec-v6-06), Dis‐
283                 semination of Flow Specification Rules for IPv6
284     draft-simpson-idr-flowspec-redirect-00 (-02) BGP Flow-Spec Redirect to IP
285                 Action
286     draft-ietf-idr-flowspec-redirect-00 (-02) BGP Flow-Spec Redirect to IP
287                 Action
288     draft-ietf-idr-add-paths-08 (-10) Advertisement of Multiple Paths in BGP
289     draft-ietf-idr-bgp-multisession-07 (??)
290     draft-scudder-bmp-01 (??)
291
292     A list of other more basic BGP-related standard entirely or partially im‐
293     plemented is:
294
295     RFC 1997    BGP Communities Attribute
296     RFC 8092    BGP Large Communities Attribute
297     RFC 2385    Protection of BGP Sessions via the TCP MD5 Signature
298     RFC 2545    Use of BGP-4 Multirptocol Extensions for IPv6 Inter-Domain
299                 Routing
300     RFC 2918    Route Refresh Capability for BGP-4
301     RFC 3107    Carrying Label Information in BGP-4
302     RFC 3765    NOPEER Community for Border Gateway Protocol (BGP) Route
303                 Scope Control
304     RFC 7999    BLACKHOLE BGP Community for Blackholing
305     RFC 4271    A Border Gateway Protocol 4 (BGP-4)
306     RFC 4360    BGP Extended Communities Attribute
307     RFC 4364    Constrained Route Distribution for BGP/MPLS IP VPNs
308     RFC 4456    BGP Rotue Relection: An Alternative to Full Mesh Internal BGP
309                 (iBGP)
310     RFC 5396    Textual Representation of Autonomous System (AS) Numbers
311     RFC 5492    Capabilities Advertisement with BGP-4
312     RFC 6286    Autonomous-System-Wide Unique BGP Identifier for BGP-4
313     RFC 6608    Subcodes for BGP Finate State Machine Error
314     RFC 7752    North-Bound Distribution of Link-State and Traffic Engineer‐
315                 ing (TE) Information Using BGP
316     draft-gredler-idr-bgp-ls-segment-routing-ext-03 BGP Link-State extensions
317                 for Segment Routing
318     draft-ietf-idr-bgp-prefix-sid-05 Segment Routing Prefix SID extensions
319                 for BGP
320
321                               February 26, 2015
Impressum