Quagga routing on RHEL 7.x
Quagga has become the dominant 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) yum(8)
from the Carroll-Net repo and 3) compile Quagga from source.yum(8)
Install Quagga with yum
from Redhat’s Repo
yum
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 ripd(8)
command line utility does not permit creating distribute lists to control which addresses you share with neighbor routers. vtysh(1)
If you need
and choose the 0.99.4 branch, you’ll need to edit the change into the distribute lists
file and restart the service after each edit. Alternatively, you can use the /etc/quagga/ripd.conf
management interface. ripd(8)
uses TCP port 2602 by default which can be accessed with telnet; e.g., ripd(8)
.telnet localhost 2602
To install a more modern version of Quagga that resolves the
limitation use either of the next two procedures.distribute list
Install Quagga with yum
from Carroll-Net’s Repo
yum
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./etc/quagga/
# 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 quagga/redhat/README.rpm_build.md
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.
Carroll-Net was founded in 1994 with the singular goal of providing datacenter services our clients require at a price they can afford, delivered everywhere they need them. The industry now calls this cloud services — we call it common sense.