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
, and isisd
.
Daemons are enabled by creating the /etc/quagga/daemon.conf
config file, daemon being the name of the daemon to use; this file must belong to the quagga
user and group in order for the /etc/init.d/zebra
script to invoke the daemon. The package quagga-core provides configuration examples under /usr/share/doc/quagga-core/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
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
.