The reference tool for dynamic routing is currently frr
from the similarly-named package; it used to be quagga
, and before that zebra
until development of these stopped. However, frr
kept the names of the programs for compatibility reasons which explains the zebra
commands below.
FRR (FRRouting) is a set of daemons cooperating to define the routing tables to be used by the Linux kernel; each routing protocol (most notably BGP, OSPF and RIP) provides its own daemon(s). The zebra
and staticd
daemons, which are always started, collect information from other daemons and handle static routing tables accordingly. The other daemons are known as bgpd
, ospfd
, ospf6d
, ripd
, ripngd
, isisd
, etc.
Daemons are enabled by creating the /etc/frr/daemon.conf
config file, daemon being the name of the daemon to use, and editing the /etc/frr/daemons
configuration file. The daemon config file must belong to the frr
user and group with permissions of 0640
in order for the /etc/init.d/frr
script or the frr.service
systemd service file to invoke the daemon. The package frr provides configuration examples under /usr/share/doc/frr/examples/
.
The configuration of each of these daemons requires knowledge of the routing protocol in question. These protocols cannot be described in detail here, but
frr-doc provides ample explanation in the form of both
info
and HTML files. The same contents may be more browsed on the project's website:
In addition, the syntax is very close to a standard router's configuration interface, and network administrators will adapt quickly to frr
.