The reference tool for dynamic routing is currently quagga
, from the similarly-named package; it used to be zebra
until development of the latter stopped. However, quagga
kept the names of the programs for compatibility reasons which explains the zebra
commands below.
Quagga 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. The zebra
daemon collects information from other daemons and handles static routing tables accordingly. The other daemons are known as bgpd
, ospfd
, ospf6d
, ripd
, ripngd
, isisd
, and babeld
.
Daemons are enabled by editing the /etc/quagga/daemons
file and creating the appropriate configuration file in /etc/quagga/
; this configuration file must be named after the daemon, with a .conf
extension, and belong to the quagga
user and the quaggavty
group, in order for the /etc/init.d/quagga
script to invoke the daemon.
The configuration of each of these daemons requires knowledge of the routing protocol in question. These protocols cannot be described in detail here, but the
quagga-doc provides ample explanation in the form of an
info
file. The same contents may be more easily browsed as HTML on the Quagga website:
In addition, the syntax is very close to a standard router's configuration interface, and network administrators will adapt quickly to quagga
.