HOW TO INSTALL QUAGGA ON ORACLE LINUX 8 FROM SOURCE CODE

 





ROUTER FOR LINUX - QUAGGA


First some background... Quagga is an add on to the original Zebra router developed many moons ago. Quagga supports many dynamic routing protocols, and a number of vendors who make mods to the base. In general on some linux distributions (Debian, Ubuntu, Centos7) it is supported by simply typing apt-get install quagga with a base directory configuration of /etc/quagga/ but if compiling from source it would default to /usr/local/etc/quagga.... if you dont add the switches below.

QUAGGA IS COMPATIBLE AND INTEROPERATES WITH CISCO, ADTRAN, AND JUNIPER BGP STACKS WHICH IS VERY IMPORTANT. IT MAKES EVERY HOST A ROUTER FOR FREE AND USUALLY INSIDE 100MB OF RAM...VERSUS CISCO CSR's WHICH REQUIRE 2GB OF MEMORY AND 4 CORES. BUT ONLY FOR BASIC SERVICES AND ROUTING PROTOCOLS, CISCO AND JUNIPER SUPPORT 10S OF THOUSANDS OF FEATURES WHICH QUAGGA DOESNT. BUT IF YOU NEED TO ROUTE A SINGLE PREFIX OR TWO ITS A VERY GOOD CHOICE. WE WOULD CALL IT A BIT BEYOND EXPERIMENTAL AND IS NOW IN MAINLINE UNIX DISTRIBUTIONS LIKE UBUNTU MEANING THEY SUPPORT IT NOW.

Quagga to start can be started by typing the commands in Step 7 below. Again on some distributions the daemon file includes all of the subservices and you simply type service start quagga and everything loads. But on Debian Linux you have to load each process seperately (systemctl enable zebra, systemctl enable bgpd, systemctl enable ospfd, etc)....then service start bgpd, service start zebra, etc...

But on Oracle Linux 8 none of this works... the Oracle Linux 8 repos do not include Quagga or Zebra and it must be added from source. Furthermore the SNAP install doesnt work on Oracle 8 as it compiles libraries to non-working directories. Thus Quagga source.

BEFORE YOU START - YOU NEED TO BE A SYSADMIN TO RUN THIS SCRIPT

/etc/sudoers must include your username or you have to be logged in as root user.


STEP1 - DOWNLOAD SOURCE

mkdir /opt/quagga

cd /opt/quagga

dnf install git

git clone https://github.com/Quagga/quagga.git /opt/quagga

cd /opt/quagga


STEP2 - MAKE SURE AUTOMAKE IS INSTALLED AND PREQS

sudo dnf install automake cmake gcc

sudo dnf install readline-devel

sudo dnf install c-ares-devel

sudo dnf install texinfo

sudo dnf install groff

sudo dnf install pam-devel

sudo dnf intall libcap-devel



STEP3 - DOWNLOAD REQUIRED FILES FROM GITHUB

WELL YOU CAN USE OUR STEPS BELOW... BUT WE RECOMMEND FOLLOWING THESE

git clone https://github.com/Quagga/quagga.git

next download the gz from the github site as follows

The instructions for building the source are 

in quagga/redhat/README.rpm_build.md

****STEP3 ALT - COMPILE (OUR STEPS ARE MUCH LESS COMPLICATED BUT HAVE SOME CHALLENGES)

***./bootstrap.sh                                                     ***** (Runs automake (creates configure))

****./configure                                                         **** from /opt/quagga

****OR MORE SPECIFIC OPTIONS

*****./configure --prefix=prefix --sysconfdir=/etc/quagga  --localstatedir=dir OR ALTERNATIVE PATH0

*****make

*****make install

****SEE REFERENCE HERE

****Quagga (http://www.quagga.net): The Configure script and its options


STEP4 CREATE BASELINE FILES FOR VTYSH

#####pico /etc/quagga/daemons

          pico /etc/quaggq/zebra.conf


STEP 5 - CREATE DYNAMIC ROUTING CONFIG FILES AS NECESSARY

pico /etc/quagga/bgpd.conf

pico /etc/quagga/isis.conf

pico /etc/quagga/ripd.conf


STEP6 - INSTALL RPMS

go to /opt/quagga/rpmbuild/RPMS directory

sudo rpm -ivh *.rpm 


STEP7 - ENABLE AND START SERVICES

systemctl enable zebra

//PICK ONE OR MORE DYNAMIC ROUTING PROTOCOLS IF YOU DONT KNOW PICK RIPD WHICH IS SUPPORT ON NEARLY EVERY ROUTER IN THE UNIVERSE

systemctl enable bgpd

systemctl enable isisd

systemctl enable ripd    ** THIS WILL WORK EVEN WITH CHEAP HOME ROUTERS.

systemctl enable ospfd

service start quagga (will start any service enabled in daemons file)


SAMPLE DAEMONS FILE

/usr/local/etc/quagga/daemons or /etc/quagga/daemons


zebra=yes
bgpd=no
ospfd=yes
ospf6d=no
ripd=no
ripngd=no


Comments