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

  
 
  

home | help
FRR-ZEBRA(8)			       FRR			    FRR-ZEBRA(8)

NAME
     frr-zebra - a routing manager for use with associated FRRouting components.

SYNOPSIS
     zebra [-h] [-v]

     zebra [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u
     user]  [-g  group]  [-A  vty-addr]  [-P vty-port] [-M module[:options]] [-N
     pathspace] [--vty_socket vty-path] [--moduledir module-path]

DESCRIPTION
     zebra is a routing manager that implements the zebra  route  engine.  zebra
     supports all protocol daemons in the FRRouting suite.

OPTIONS
     OPTIONS available for the zebra command:

   HELP AND VERSION
     -h, --help
	    Print a short description of the daemon's command line options.

     -v, --version
	    Print version and build information for the daemon.

     Both of these options inhibit normal operation and will immediately exit.

   PROCESS CONTROL
     These options control background operation:

     -d, --daemon
	       Launches  the  process in background/daemon mode, forking and de-
	       taching from the terminal.

	    The parent process will delay its exit until  the  daemon/child  has
	    finished  its  initialization and has entered its main loop. This is
	    important for zebra startup because the other daemons  will  attempt
	    to connect to zebra. A return from zebra -d guarantees its readiness
	    to accept these connections.

     -t, --terminal
	    Opens  an interactive VTY session on the terminal, allowing for both
	    state and configuration operations.  Note that the	terminal  starts
	    operating after startup has completed and the configuration file has
	    been loaded.

	    The  process will exit when end of file is detected on the terminal.
	    It is possible to daemonize a process started with -t  (but  without
	    -d)  by  sending  SIGQUIT to the process (normally mapped to a ^key-
	    press.)

     The combination of --daemon and --terminal will delay the daemon from going
     into background until the terminal session ends (by end of file.)

     If the process receives SIGINT (e.g. a ^C keypress) in this mode,	it  will
     exit instead of daemonizing.

     It  is  safe  to  suspend (SIGTSTP / ^Z) the terminal session opened by the
     previous two options;  this will only stop the terminal but not the  proto-
     col daemon itself (which runs in a separate second process.)

   CONFIGURATION AND PATHS
     The  following  options control configuration and file system locations for
     frr processes:

     -f, --config_file config-file
	    Specify a configuration file to  be  used  instead	of  the  default
	    /etc/frr/<daemon>.conf file.

	    Note that the daemon will attempt to write to this file if the write
	    file command is issued on its VTY interface or through vtysh.

     -C, --dryrun
	    Load the configuration file and check its validity, then exit.

     -i, --pid_file pid-file
	    Output   a	 pid   file   to  a  location  other  than  the  default
	    /var/run/frr/<daemon>.pid.

     -z, --socket zclient-path
	    Override the path of the ZAPI socket used to communicate between ze-
	    bra   and	the   various	protocol   daemons.   The   default   is
	    /var/run/frr/zserv.api.   The  value of this option must be the same
	    across all daemons.

     -N, --pathspace pathspace
	    Insert pathspace into all default paths, changing the defaults to:

	    /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid
	    /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

	    '.' and '/' characters will not be accepted in  pathspace,	but  the
	    empty string will be accepted.

	    Note  that	this only changes the respective defaults, it has no ef-
	    fect on the respective path if the -f, -i, -z  or  --vty_socket  op-
	    tions are used.

	    The  purpose  of  this option is to easily group all file system re-
	    lated bits together for  running  multiple	fully-separate	"logical
	    routers"  on  a  system, particularly with Linux network namespaces.
	    Groups of daemons running with distinct  pathspace	values	will  be
	    completely unaware of each other and not interact in any way.

	    This  option does not do any system setup (like network namespaces.)
	    This must be done by the user, for example by running:

	    ip netns exec namespace <daemon> -N namespace

   PROCESS CREDENTIALS
     -u, --user user
	    (default: frr)

     -g, --group group
	    (default: frr)

	    Change the user/group which the daemon will switch to.

     -S, --skip_runas
	    Skip setting the process effective user and group.

     Note that there is an additional group, frrvty, which controls group owner-
     ship of the VTY sockets.  The  name  of  this  group  cannot  currently  be
     changed, and user must be a member of this group.

   VTY SETUP
     These following options control the daemon's VTY (interactive command line)
     interface.  The interface is available over TCP, using the telnet protocol,
     as well as through the vtysh frontend.

     -A, --vty_addr vty-addr
	    Specify  an IP/IPv6 address to bind the TCP VTY interface to.  It is
	    generally recommended to specify ::1 or 127.0.0.1.	For  reasons  of
	    backwards compatibility, the default is to listen on all interfaces.

     -P, --vty_port vty-port
	    Override  the  daemon's default TCP VTY port (each daemon has a dif-
	    ferent default value upwards of 2600, listed below.)   Specifying  0
	    disables the TCP VTY interface.

	    Default ports are::

	       zebra	       2601
	       ripd	       2602
	       ripngd	       2603
	       ospfd	       2604
	       bgpd	       2605
	       ospf6d	       2606
	       isisd	       2608
	       babeld	       2609
	       nhrpd	       2610
	       pimd	       2611
	       ldpd	       2612
	       eigrpd	       2613
	       pbrd	       2615
	       staticd	       2616
	       bfdd	       2617
	       fabricd	       2618
	       vrrpd	       2619

	    Port 2607 is used for ospfd's Opaque LSA API.

     --vty_socket vty-path
	    Overrides  the  directory  used for the <daemon>.vty sockets.  vtysh
	    connects to these sockets in order to access each daemon's VTY.  De-
	    fault: /var/run/frr[/<pathspace>]

	    NB: Unlike the other options, this option specifies a directory, not
	    a full path.

	    This option is primarily used by the SNAP packaging system, its  se-
	    mantics  may  change.  It should not be necessary in most other sce-
	    narios.

   MODULE LOADING
     frr supports optional dynamically loadable modules, although these can only
     be loaded at startup.  The set of available modules may vary across distri-
     butions and packages, and modules may be available for installation as sep-
     arate packages.

     -M, --module module[:options]
	    Load a module named module, optionally passing options to it.

	    If there is a '/' character in module, the value is assumed to be  a
	    pathname to a module.

	    If there is no '/' character, the module directory (see next option)
	    is	searched  first  for a module named "<daemon>_<module>.so", then
	    for "<module>.so".	This allows for a module to exist in  variations
	    appropriate  for  particular  daemons, e.g. zebra_snmp and bgp_snmp,
	    with the correct one selected by -M snmp.

	    The meaning of options is specific to the module being loaded.  Most
	    modules currently ignore it.

	    Modules are loaded in the order as listed on the command line.  This
	    is not generally relevant.

     --moduledir module-path
	    Look for modules in the module-path directory instead of the default
	    /usr/lib/frr/modules.  (This path is not affected by the -N option.)

     The list of loaded modules can be inspected at runtime with the  show  mod-
     ules VTY command.

     -b, --batch
	    Runs in batch mode, zebra parses its config and exits.

     -s, --nl-bufsize <netlink-buffer-size>
	    Set  netlink receive buffer size. There are cases where zebra daemon
	    can't handle flood of netlink messages from kernel. If you ever  see
	    "recvmsg overrun" messages in zebra log, you are in trouble.

	    Solution  is to increase receive buffer of netlink socket. Note that
	    kernel < 2.6.14 doesn't allow increasing it over maximum  value  de-
	    fined in /proc/sys/net/core/rmem_max. If you want to do it, you have
	    to increase maximum before starting zebra.

	    Note that this affects Linux only.

     -n, --vrfwnetns
	    Enable  namespace VRF backend. By default, the VRF backend relies on
	    VRF-lite support from the Linux kernel. This option permits  discov-
	    ering  Linux named network namespaces and mapping it to FRR VRF con-
	    texts.

   ROUTES
     -r, --retain
	    When the program terminates, do not flush routes installed by  zebra
	    from the kernel.

     -R, --routing-table <tableno>
	    Specify  which  kernel  routing table Zebra should communicate with.
	    If this option is not specified the default table (RT_TABLE_MAIN) is
	    used.

FILES
     /usr/lib/frr/zebra
	    The default location of the zebra binary.

     /etc/frr/zebra.conf
	    The default location of the zebra config file.

     $(PWD)/zebra.log
	    If the zebra process is configured to output logs to  a  file,  then
	    you will find this file in the directory where you started zebra.

WARNING
     This man page is intended to be a quick reference for command line options.
     The  definitive  document	is  the info file frr 9.1.3 or the documentation
     available on the project website at https://frrouting.org/.

DIAGNOSTICS
     The daemon may log to standard output, to a VTY, to a log file, or  through
     syslog  to  the  system  logs. FRR supports many debugging options, see the
     Info file, web docs or source for details.

SEE ALSO
     frr-zebra(8),   vtysh(1),	 frr-ripd(8),	 frr-ripngd(8),    frr-ospfd(8),
     frr-ospf6d(8),   frr-bgpd(8),  frr-isisd(8),  frr-babeld(8),  frr-nhrpd(8),
     frr-pimd(8),  frr-pbrd(8),  frr-ldpd(8),	frr-eigrpd(8),	 frr-staticd(8),
     frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

BUGS
     FRR  eats	bugs for breakfast. If you have food for the maintainers, please
     email <dev@lists.frrouting.org>.

COPYRIGHT
     2017, FRR

9.1.3				  Sep 01, 2026			    FRR-ZEBRA(8)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=frr-zebra&sektion=8&manpath=FreeBSD+Ports+15.1.quarterly>

home | help