mirror of
				https://git.proxmox.com/git/mirror_frr
				synced 2025-11-04 01:43:38 +00:00 
			
		
		
		
	Update building docs to reflect this as well. Signed-off-by: Christian Hopps <chopps@labn.net>
		
			
				
	
	
		
			149 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
	
	
openSUSE
 | 
						|
========
 | 
						|
 | 
						|
This document describes installation from source.
 | 
						|
 | 
						|
These instructions have been tested on openSUSE Tumbleweed in a Raspberry Pi 400.
 | 
						|
 | 
						|
Installing Dependencies
 | 
						|
-----------------------
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   zypper in  git autoconf automake libtool make   \
 | 
						|
     readline-devel texinfo net-snmp-devel groff pkgconfig libjson-c-devel\
 | 
						|
     pam-devel python3-pytest bison flex c-ares-devel python3-devel\
 | 
						|
     python3-Sphinx perl patch libcap-devel \
 | 
						|
     libelf-devel libunwind-devel protobuf-c
 | 
						|
 | 
						|
.. include:: building-libunwind-note.rst
 | 
						|
 | 
						|
.. include:: building-libyang.rst
 | 
						|
 | 
						|
Building & Installing FRR
 | 
						|
-------------------------
 | 
						|
 | 
						|
Add FRR user and groups
 | 
						|
^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   sudo groupadd -g 92 frr
 | 
						|
   sudo groupadd -r -g 85 frrvty
 | 
						|
   sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \
 | 
						|
     -c "FRR FRRouting suite" -d /var/run/frr frr
 | 
						|
 | 
						|
Compile
 | 
						|
^^^^^^^
 | 
						|
 | 
						|
.. include:: include-compile.rst
 | 
						|
 | 
						|
Install FRR configuration files
 | 
						|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   sudo install -m 775 -o frr -g frr -d /var/log/frr
 | 
						|
   sudo install -m 775 -o frr -g frrvty -d /etc/frr
 | 
						|
   sudo install -m 640 -o frr -g frrvty tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
 | 
						|
   sudo install -m 640 -o frr -g frr tools/etc/frr/frr.conf /etc/frr/frr.conf
 | 
						|
   sudo install -m 640 -o frr -g frr tools/etc/frr/daemons.conf /etc/frr/daemons.conf
 | 
						|
   sudo install -m 640 -o frr -g frr tools/etc/frr/daemons /etc/frr/daemons
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
        In some platforms like raspberry for performance reasons
 | 
						|
        some directories are in file systems (/var/run, ...) mounted with tempfs 
 | 
						|
        so will disapear after every reboot.
 | 
						|
        In frr the /var/run/frr is used to store pid files for every daemon.
 | 
						|
 | 
						|
Tweak sysctls
 | 
						|
^^^^^^^^^^^^^
 | 
						|
 | 
						|
Some sysctls need to be changed in order to enable IPv4/IPv6 forwarding and
 | 
						|
MPLS (if supported by your platform). If your platform does not support MPLS,
 | 
						|
skip the MPLS related configuration in this section.
 | 
						|
 | 
						|
Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the following
 | 
						|
content:
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
   #
 | 
						|
   # Enable packet forwarding
 | 
						|
   #
 | 
						|
   net.ipv4.conf.all.forwarding=1
 | 
						|
   net.ipv6.conf.all.forwarding=1
 | 
						|
   #
 | 
						|
   # Enable MPLS Label processing on all interfaces
 | 
						|
   #
 | 
						|
   #net.mpls.conf.eth0.input=1
 | 
						|
   #net.mpls.conf.eth1.input=1
 | 
						|
   #net.mpls.conf.eth2.input=1
 | 
						|
   #net.mpls.platform_labels=100000
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   MPLS must be invidividually enabled on each interface that requires it. See
 | 
						|
   the example in the config block above.
 | 
						|
 | 
						|
Load the modified sysctls on the system:
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
 | 
						|
 | 
						|
Create a new file ``/etc/modules-load.d/mpls.conf`` with the following content:
 | 
						|
 | 
						|
::
 | 
						|
 | 
						|
   # Load MPLS Kernel Modules
 | 
						|
   mpls-router
 | 
						|
   mpls-iptunnel
 | 
						|
 | 
						|
And load the kernel modules on the running system:
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   sudo modprobe mpls-router mpls-iptunnel
 | 
						|
 | 
						|
 | 
						|
.. note::
 | 
						|
   The ``firewalld`` service could be enabled. You may run into some
 | 
						|
   issues with the iptables rules it installs by default. If you wish to just
 | 
						|
   stop the service and clear `ALL` rules do these commands:
 | 
						|
 | 
						|
   .. code-block:: console
 | 
						|
 | 
						|
      sudo systemctl disable firewalld.service
 | 
						|
      sudo systemctl stop firewalld.service
 | 
						|
      sudo iptables -F
 | 
						|
 | 
						|
Install frr Service
 | 
						|
^^^^^^^^^^^^^^^^^^^
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   sudo install -p -m 644 tools/frr.service /usr/lib/systemd/system/frr.service
 | 
						|
   sudo systemctl enable frr
 | 
						|
 | 
						|
Enable daemons
 | 
						|
^^^^^^^^^^^^^^
 | 
						|
 | 
						|
Open :file:`/etc/frr/daemons` with your text editor of choice. Look for the
 | 
						|
section with ``bgpd=no`` etc.  Enable the daemons
 | 
						|
as required by changing the value to ``yes``.
 | 
						|
 | 
						|
Start FRR
 | 
						|
^^^^^^^^^
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   sudo systemctl start frr
 | 
						|
 | 
						|
Check the starting messages of frr with
 | 
						|
 | 
						|
.. code-block:: console
 | 
						|
 | 
						|
   journalctl -u frr --follow
 |