1EXABGP(1) BSD General Commands Manual EXABGP(1)
2
4 exabgp — Influence or control network using BGP
5
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
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
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
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
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
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
256 exabgp.conf(5)
257
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