* SAFETY MEASURES:
The quagga package used to have a debconf option to abort during the upgrade
process to avoid inadvertently dropping routes and/or causing BGP flaps. This
has been removed as it was a violation of Debian Policy. Instead, please
consider setting this package "on hold" after installation by typing:
# apt-mark hold quagga
And verifying this using:
$ apt-mark showhold
Setting a package "on hold" means that it will not automatically be upgraded.
Instead apt-get only displays a warning saying that a new version would be
available forcing you to explicitly type "apt-get install quagga" to upgrade it.
* Daemon Selection and Control:
Each routing daemon can be brought up or down independently. E.g.
# systemctl start bgpd
This will also automatically start the `zebra` service, which is a dependency
of all the quagga routing daemons. Restart an individual daemon in the usual
# systemctl restart bgpd
And restart or stop all daemons by targeting the `zebra` dependency:
# systemctl restart zebra
# systemctl stop zebra
IMPORTANT NOTE: Before starting (and so, by extension, on restart), the `zebra`
service will flush all existing zebra/quagga routes from the kernel routing
table. To override this behaviour, copy /lib/systemd/system/zebra.service to
/etc/systemd/system/zebra.service, and remove the "flush" line.
The packaged initscripts will not start the daemons unless the relevant .conf
file exists, e.g. for bgpd /etc/quagga/bgpd.conf. This matches how the
systemd unit files work.
Also, on package install/upgrade the daemons are not automatically started or
restarted. This means that you can upgrade the software without it restarting
and dropping all your routes, leaving it so that you can restart the daemons
when you're ready.
The watchquagga init script relies on the WATCH_DAEMONS setting in
/etc/default/quagga, if you want to use watchquagga then set that to the list
of daemons to watch.
* What is quagga?
> Quagga is a routing software suite, providing implementations of OSPFv2,
> OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for Unix platforms, particularly
> FreeBSD and Linux and also NetBSD, to mention a few. Quagga is a fork of GNU
> Zebra which was developed by Kunihiro Ishiguro. Development of GNU Zebra
> slowed dramatically to the point where eventually GNU Zebra was forked into
> The Quagga tree is an attempt to provide a zebra tree with at least the
> bug-fixes, which have accumulated, applied, while tracking any significant
> changes made to the zebra.org tree. Ultimately, this tree hopes to revitalise
> development of this code base.
I packaged zebra-pj which was then renamed to quagga to get people used to it
and offer Debian users the choice which versions they like to use. I hope this
brings quagga some feedback and helps it evolving to a good successor of the
-- Christian Hammers <firstname.lastname@example.org>, Jul/Aug 2003
* Why has SNMP support been disabled?
Quagga used to link against the NetSNMP libraries to provide SNMP
support. Those libraries sadly link against the OpenSSL libraries
to provide crypto support for SNMPv3 among others.
OpenSSL now is not compatible with the GNU GENERAL PUBLIC LICENSE (GPL)
licence that Quagga is distributed under. For more explanation read:
Updating the licence to explecitly allow linking against OpenSSL
would requite the affirmation of all people that ever contributed
a significant part to Zebra or Quagga and thus are the collective
"copyright holder". That's too much work.
It is allowed by the used licence mix that you fetch the sources and
build Quagga yourself with SNMP with
<remove the "grep ^smux" block at the end of debian/quagga.preinst>
# export WANT_SNMP=1
# apt-get -b source quagga
Just distributing it in binary form, linked against OpenSSL, is forbidden.
* Error message "privs_init: initial cap_set_proc failed":
This error message means that "capability support" has to be built
into the kernel.
* Error message "netlink-listen: overrun: No buffer space available":
If this message occurs the receive buffer should be increased by adding the
following to /etc/sysctl.conf and "--nl-bufsize" to /etc/quagga/debian.conf.
> net.core.rmem_default = 262144
> net.core.rmem_max = 262144
See message #4525 from 2005-05-09 in the quagga-users mailing list.
* vtysh immediately exists:
Check /etc/pam.d/quagga, it probably denies access to your user. The passwords
configured in /etc/quagga/*.conf are only for telnet access.
* /etc/quagga/Quagga.conf has no effect:
Quagga in Debian ignores the integrated configuration file by default (upstream
recommends against using it at all). If you want to use it anyway, please copy
the relevant .service files from /lib/systemd/system/ into /etc/systemd/system/
and patch out "-f *.conf".