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 (1)

Collapse
 
__4a1a70bbc2cb profile image
Кирилл Басов

Чтобы выполнить задачу по установке FRRouting вам необходимо:

  1. Добавить репозитории в sources.list по пути /etc/apt/sources.list, чтобы отредактировать файл используйте nano. deb ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware # deb-src ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware
  2. Обновляем cdrom командой apt update.
  3. Устанавливаем frr командой apt install frr. Чтобы выполнить задачу по настройке FRRouting вам необходимо:
  4. Активируем протокол ospf для этого заходим в конфигурационный файл по пути /etc/frr/daemons и переводим его в значение yes. Чтобы выполнить задачу по установке FRRouting вам необходимо:
  5. Добавить репозитории в sources.list по пути /etc/apt/sources.list, чтобы отредактировать файл используйте nano. deb ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware # deb-src ftp.debian.org/debian/ bookworm contrib main non-free non-free-firmware
  6. Обновляем cdrom командой apt update.
  7. Устанавливаем frr командой apt install frr. Чтобы выполнить задачу по настройке FRRouting вам необходимо:
  8. Активируем протокол ospf для этого заходим в конфигурационный файл по пути /etc/frr/daemons и переводим его в значение yes.
  9. Теперь можно настроить ospf для этого на вводим команду router ospf, после чего указываем router id командой ospf router-id и пишем ip loopback интерфейса назначенный ранее.
  10. Не выходя из этого режима, настраиваем сети командой network (доступная сеть) area
  11. Так же важно ввести команду ip forwarding из режима глобальной конфигурации, иначе ничего не заработает, это касается всех устройств на которых мы настраиваем frr.
  12. Важно!!! После настройки сохранить конфигурацию, для этого выйдете из режима конфигурирования командой exit и введите команду wr mem.
  13. Важно!!! После сохранения ни хрена не работает, для начала работы нужно перезапустить сам frr командой systemctl reload frr. (не забывайте выйти из оболочки frr командой exit и только потом пробуйте перезапускать)
  14. Внимание сюрприз!!! Нужно настроить пересылку пакетов про которую я забыл в прошлый раз(( Для этого заходим в nano /etc/sysctl.conf Тута снимаем комментирование строки net.ipv4.ip_forward=1, не забываем сохранить изменения. Эту тему нужно провернуть на машинах

conf t
interface lo
ip address 1.1.1.1/32
router ospf
ospf router-id 1.1.1.1
network 1.1.1.1/32 area 0
network ....