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

NAME

4     exabgp — Influence or control network using BGP
5

SYNOPSIS

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

DESCRIPTION

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

ENVIRONMENT

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

FILES

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

SIGNALS

234     exabgp catches a few different signals to control specific actions.  They
235     are:
236
237     ALRM   Restarts exabgp.
238     USR1   Causes exabgp to reload the configuration.
239     USR2   Causes exabgp to reload the configuration and restart any forked
240            processes.
241     TERM   Terminates exabgp.
242     HUP    Also terminates exabgp (does not reload the configuration any‐
243            more).
244
245     Reloading large configurations using signals is currently not recom‐
246     mended, because the configuration parsing code is currently blocking.
247     Therefore if you have a large configuration change, it could cause the
248     peer to miss some keepalive and cause a session flap.
249

DIAGNOSTICS

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

SEE ALSO

256     exabgp.conf(5)
257

STANDARDS

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