DEV Community

Cover image for Installing FRR
Syed Ibrahim
Syed Ibrahim

Posted on

Installing FRR

FRRouting (FRR) is an IP routing protocol suite for Linux and Unix platforms. It includes protocol daemons for BGP, IS-IS, LDP, OSPF, PIM, and RIP.

Since the FRR project was forked from Quagga, another routing protocol suite for Linux, FRR includes the fundamentals that made Quagga so popular as well as many other enhancements.

In this blogpost we will focus on how to install FRR on Debian based OS (such as Ubuntu) and on CentOS.

via https://docs.cumulusnetworks.com/cumulus-linux-41/Layer-3/FRRouting-Overview/

Installing on Ubuntu ( and other Debian based OS):

# add GPG key
curl -s https://deb.frrouting.org/frr/keys.asc | sudo apt-key add -

# possible values for FRRVER: frr-6 frr-7 frr-stable
# frr-stable will be the latest official stable release
FRRVER="frr-stable"
echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | sudo tee -a /etc/apt/sources.list.d/frr.list

# update and install FRR
sudo apt update && sudo apt install frr frr-pythontools
Enter fullscreen mode Exit fullscreen mode

Installing in CentOS:

# possible values for FRRVER: frr-6 frr-7 frr-stable
# frr-stable will be the latest official stable release
FRRVER="frr-stable"

# add RPM repository on CentOS 6
curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el6.noarch.rpm
sudo yum install ./$FRRVER*

# add RPM repository on CentOS 7
curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el7.noarch.rpm
sudo yum install ./$FRRVER*

# add RPM repository on CentOS 8
curl -O https://rpm.frrouting.org/repo/$FRRVER-repo-1-0.el8.noarch.rpm
sudo yum install ./$FRRVER*

# install FRR
sudo yum install frr frr-pythontools
Enter fullscreen mode Exit fullscreen mode

Configuring FRR for the first time

Enable IP forwarding

There are several kernel parameters that impact overall operation of FRR when using Linux as a router. Generally these parameters should be set in a sysctl related configuration file, e.g., /etc/sysctl.conf on Ubuntu based systems and a new file /etc/sysctl.d/90-routing-sysctl.conf on Centos based systems.

net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
Enter fullscreen mode Exit fullscreen mode
Enable BGPD daemon

After a fresh install, starting FRR will do nothing. This is because daemons must be explicitly enabled by editing a file in your configuration directory. This file is usually located at /etc/frr/daemons and determines which daemons are activated when issuing a service start / stop command via init or systemd. To enable a particular daemon, simply change the corresponding ‘no’ to ‘yes’. Subsequent service restarts should start the daemon.

To enable bpd daemon, in /etc/frr/daemons change bgpd=no to

bgpd=yes
Enter fullscreen mode Exit fullscreen mode
Restart and enable FRR

Once you have enabled daemon, now restart FRR and enable FRR systemd service to start at boot using following commands.

systemctl restart frr.service
systemctl enable frr.service
Enter fullscreen mode Exit fullscreen mode

Links for reference:

  1. frrouting.org
  2. Learn Frrouting - Cumulus
  3. FRR User Manual
  4. FRR Releases
  5. FRR Overview - Cumulus
Image Source:

https://docs.cumulusnetworks.com/cumulus-linux-41/Layer-3/FRRouting-Overview/

Top comments (0)