Quagga routing on RHEL 7.x
Quagga has become the dominate open source routing software for all Linux / Unix installations. Its success is due to its support for a wide range of both interior and exterior routing protocols. It provides implementations for RIP, OSPF and BGP.
An Internet search for routing protocol questions related to Redhat invariably will result in answers that are based on Quagga solutions. This includes answers provided by the Redhat support site itself, making Quagga the definitive solution.
Installing Quagga on Redhat 7.x
There are three mechanisms to install Quagga; 1)
from the Redhat repo, 2)
from the Carroll-Net repo and 3) compile Quagga from source.
Install Quagga with
from Redhat’s Repo
In the Redhat world,
is the canonical way to quickly install the software. In the case of Quagga, as of April, 2019, this will give you Quagga version 0.99.4.
yum install quagga
The 0.99.4 version of Quagga has a limitation that impacts your ability to work with the
daemon. Specifically, the
command line utility does not permit creating distribute lists to control which addresses you share with neighbor routers.
If you need
and choose the 0.99.4 branch, you’ll need to edit the change into the
file and restart the service after each edit. Alternatively, you can use the
uses TCP port 2602 by default which can be accessed with telnet; e.g.,
telnet localhost 2602
To install a more modern version of Quagga that resolves the
limitation use either of the next two procedures.
Install Quagga with
from Carroll-Net’s Repo
Carroll-Net has put together an RPM package of Quagga 1.2.3 and made it public. You can easily install with the command:
yum install http://carroll.net/redhat/pkgs/quagga-1.2.3.el7.x86_64.rpm
This will install the software, man pages and initscripts you need to run Quagga. After you’ve created the Quagga configuration files in
, you can selectively choose which daemons to start.
# If you are running modern systemd systemctl enable zebra systemctl enable ripd systemctl enable ospfd etc… # To start services systemctl start zebra systemctl start ripd systemctl start ospfd
# If you are running and older style init.d chkconfig zebra on chkconfig ripd on chkconfig ospfd on etc … # You can then start the daemons service zebra start service ripd start service ospfd start
Install Quagga from source
This procedure is a bit more complex, but has the advantage of installing the latest version of Quagga. It requires installing a few pre-requisites, but this should not be much of a challenge for most capable administrators.
First, clone the github repo
# git clone https://github.com/Quagga/quagga.git
The instructions for building the source are in
To get the initscripts installed, follow the full set of directions. This includes performing the
rpmbuild(8) step. Afterwards, you can then yum install your created
*.rpm which will deploy LSB style initscripts.