1FRR-BGPD(8) FRR FRR-BGPD(8)
2
3
4
6 frr-bgpd - a BGPv4, BGPv4+, BGPv4- routing engine for use with FRRout‐
7 ing.
8
10 bgpd [-h] [-v]
11
12 bgpd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path]
13 [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]]
14 [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]
15
17 bgpd is a routing component that works with the FRRouting routing en‐
18 gine.
19
21 OPTIONS available for the bgpd command:
22
23 HELP AND VERSION
24 -h, --help
25 Print a short description of the daemon's command line options.
26
27 -v, --version
28 Print version and build information for the daemon.
29
30 Both of these options inhibit normal operation and will immediately
31 exit.
32
33 PROCESS CONTROL
34 These options control background operation:
35
36 -d, --daemon
37 Launches the process in background/daemon mode, forking and
38 detaching from the terminal.
39
40 The parent process will delay its exit until the daemon/child
41 has finished its initialization and has entered its main loop.
42 This is important for zebra startup because the other daemons
43 will attempt to connect to zebra. A return from zebra -d guaran‐
44 tees its readiness to accept these connections.
45
46 -t, --terminal
47 Opens an interactive VTY session on the terminal, allowing for
48 both state and configuration operations. Note that the terminal
49 starts operating after startup has completed and the configura‐
50 tion file has been loaded.
51
52 The process will exit when end of file is detected on the termi‐
53 nal. It is possible to daemonize a process started with -t (but
54 without -d) by sending SIGQUIT to the process (normally mapped
55 to a ^keypress.)
56
57 The combination of --daemon and --terminal will delay the daemon from
58 going into background until the terminal session ends (by end of file.)
59
60 If the process receives SIGINT (e.g. a ^C keypress) in this mode, it
61 will exit instead of daemonizing.
62
63 It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the
64 previous two options; this will only stop the terminal but not the
65 protocol daemon itself (which runs in a separate second process.)
66
67 CONFIGURATION AND PATHS
68 The following options control configuration and file system locations
69 for frr processes:
70
71 -f, --config_file config-file
72 Specify a configuration file to be used instead of the default
73 /etc/frr/<daemon>.conf file.
74
75 Note that the daemon will attempt to write to this file if the
76 write file command is issued on its VTY interface or through
77 vtysh.
78
79 -C, --dryrun
80 Load the configuration file and check its validity, then exit.
81
82 -i, --pid_file pid-file
83 Output a pid file to a location other than the default
84 /var/run/frr/<daemon>.pid.
85
86 -z, --socket zclient-path
87 Override the path of the ZAPI socket used to communicate between
88 zebra and the various protocol daemons. The default is
89 /var/run/frr/zserv.api. The value of this option must be the
90 same across all daemons.
91
92 -N, --pathspace pathspace
93 Insert pathspace into all default paths, changing the defaults
94 to:
95
96 /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<dae‐
97 mon>.pid /var/run/frr/pathspace/<daemon>.vty
98 /var/run/frr/pathspace/zserv.api
99
100 ´.´ and ´/´ characters will not be accepted in pathspace, but
101 the empty string will be accepted.
102
103 Note that this only changes the respective defaults, it has no
104 effect on the respective path if the -f, -i, -z or --vty_socket
105 options are used.
106
107 The purpose of this option is to easily group all file system
108 related bits together for running multiple fully-separate "logi‐
109 cal routers" on a system, particularly with Linux network name‐
110 spaces. Groups of daemons running with distinct pathspace val‐
111 ues will be completely unaware of each other and not interact in
112 any way.
113
114 This option does not do any system setup (like network name‐
115 spaces.) This must be done by the user, for example by running:
116
117 ip netns exec namespace <daemon> -N namespace
118
119 PROCESS CREDENTIALS
120 -u, --user user
121 (default: frr)
122
123 -g, --group group
124 (default: frr)
125
126 Change the user/group which the daemon will switch to.
127
128 -S, --skip_runas
129 Skip setting the process effective user and group.
130
131 Note that there is an additional group, frrvty, which controls group
132 ownership of the VTY sockets. The name of this group cannot currently
133 be changed, and user must be a member of this group.
134
135 VTY SETUP
136 These following options control the daemon's VTY (interactive command
137 line) interface. The interface is available over TCP, using the telnet
138 protocol, as well as through the vtysh frontend.
139
140 -A, --vty_addr vty-addr
141 Specify an IP/IPv6 address to bind the TCP VTY interface to. It
142 is generally recommended to specify ::1 or 127.0.0.1. For rea‐
143 sons of backwards compatibility, the default is to listen on all
144 interfaces.
145
146 -P, --vty_port vty-port
147 Override the daemon's default TCP VTY port (each daemon has a
148 different default value upwards of 2600, listed below.) Speci‐
149 fying 0 disables the TCP VTY interface.
150
151 Default ports are::
152
153 zebra 2601
154 ripd 2602
155 ripngd 2603
156 ospfd 2604
157 bgpd 2605
158 ospf6d 2606
159 isisd 2608
160 babeld 2609
161 nhrpd 2610
162 pimd 2611
163 ldpd 2612
164 eigrpd 2613
165 pbrd 2615
166 staticd 2616
167 bfdd 2617
168 fabricd 2618
169 vrrpd 2619
170
171 Port 2607 is used for ospfd's Opaque LSA API.
172
173 --vty_socket vty-path
174 Overrides the directory used for the <daemon>.vty sockets.
175 vtysh connects to these sockets in order to access each daemon's
176 VTY. Default: /var/run/frr[/<pathspace>]
177
178 NB: Unlike the other options, this option specifies a directory,
179 not a full path.
180
181 This option is primarily used by the SNAP packaging system, its
182 semantics may change. It should not be necessary in most other
183 scenarios.
184
185 MODULE LOADING
186 frr supports optional dynamically loadable modules, although these can
187 only be loaded at startup. The set of available modules may vary
188 across distributions and packages, and modules may be available for in‐
189 stallation as separate packages.
190
191 -M, --module module[:options]
192 Load a module named module, optionally passing options to it.
193
194 If there is a ´/´ character in module, the value is assumed to
195 be a pathname to a module.
196
197 If there is no ´/´ character, the module directory (see next op‐
198 tion) is searched first for a module named "<daemon>_<mod‐
199 ule>.so", then for "<module>.so". This allows for a module to
200 exist in variations appropriate for particular daemons, e.g. ze‐
201 bra_snmp and bgp_snmp, with the correct one selected by -M snmp.
202
203 The meaning of options is specific to the module being loaded.
204 Most modules currently ignore it.
205
206 Modules are loaded in the order as listed on the command line.
207 This is not generally relevant.
208
209 --moduledir module-path
210 Look for modules in the module-path directory instead of the de‐
211 fault /usr/lib/frr/modules. (This path is not affected by the
212 -N option.)
213
214 The list of loaded modules can be inspected at runtime with the show
215 modules VTY command.
216
217 -p, --bgp_port <port>
218 Set the bgp protocol's port number. When port number is 0, that
219 means do not listen bgp port.
220
221 -l, --listenon
222 Specify a specific IP address for bgpd to listen on, rather than
223 its default of 0.0.0.0 / ::. This can be useful to constrain
224 bgpd to an internal address, or to run multiple bgpd processes
225 on one host.
226
227 -n, --no_kernel
228 Do not install learned routes into the linux kernel. This op‐
229 tion is useful for a route-reflector environment or if you are
230 running multiple bgp processes in the same namespace. This op‐
231 tion is different than the --no_zebra option in that a ZAPI con‐
232 nection is made.
233
234 -e, --ecmp
235 Run BGP with a limited ecmp capability, that is different than
236 what BGP was compiled with. The value specified must be greater
237 than 0 and less than or equal to the MULTIPATH_NUM specified on
238 compilation.
239
240 -Z, --no_zebra
241 Do not communicate with zebra at all. This is different than
242 the --no_kernel option in that we do not even open a ZAPI con‐
243 nection to the zebra process.
244
245 -s, --socket_size
246 When opening tcp connections to our peers, set the socket send
247 buffer size that the kernel will use for the peers socket. This
248 option is only really useful at a very large scale. Experimen‐
249 tation should be done to see if this is helping or not at the
250 scale you are running at.
251
252 LABEL MANAGER
253 -I, --int_num
254 Set zclient id. This is required when using Zebra label manager
255 in proxy mode.
256
258 /usr/lib/frr/bgpd
259 The default location of the bgpd binary.
260
261 /etc/frr/bgpd.conf
262 The default location of the bgpd config file.
263
264 $(PWD)/bgpd.log
265 If the bgpd process is configured to output logs to a file, then
266 you will find this file in the directory where you started bgpd.
267
269 This man page is intended to be a quick reference for command line op‐
270 tions. The definitive document is the info file frr 8.2.2 or the docu‐
271 mentation available on the project website at https://frrouting.org/.
272
274 The daemon may log to standard output, to a VTY, to a log file, or
275 through syslog to the system logs. FRR supports many debugging options,
276 see the Info file, web docs or source for details.
277
279 frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8),
280 frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8),
281 frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8),
282 frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/
283
285 FRR eats bugs for breakfast. If you have food for the maintainers,
286 please email <dev@lists.frrouting.org>.
287
289 2022, FRR
290
291
292
293
2948.2.2 Apr 11, 2022 FRR-BGPD(8)