forked from Mirror/frr
doc: add building for ubuntu 24.04, and refactor
- All 3 ubutu 2x (20.04, 22.04 and 24.04) have the same instructions so put them in one include file. Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
parent
a962ff7833
commit
901d059614
|
@ -1,163 +1,4 @@
|
|||
Ubuntu 20.04 LTS
|
||||
================
|
||||
|
||||
This document describes installation from source. If you want to build a
|
||||
``deb``, see :ref:`packaging-debian`.
|
||||
|
||||
Installing Dependencies
|
||||
-----------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt update
|
||||
sudo apt-get install \
|
||||
git autoconf automake libtool make libreadline-dev texinfo \
|
||||
pkg-config libpam0g-dev libjson-c-dev bison flex \
|
||||
libc-ares-dev python3-dev python3-sphinx \
|
||||
install-info build-essential libsnmp-dev perl \
|
||||
protobuf-c-compiler libprotobuf-c-dev \
|
||||
libcap-dev libelf-dev libunwind-dev
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
.. include:: building-libyang.rst
|
||||
|
||||
GRPC
|
||||
^^^^
|
||||
If GRPC is enabled using ``--enable-grpc`` the following packages should be
|
||||
installed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install libgrpc++-dev protobuf-compiler-grpc
|
||||
|
||||
|
||||
Config Rollbacks
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
If config rollbacks are enabled using ``--enable-config-rollbacks``
|
||||
the sqlite3 developer package also should be installed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt install libsqlite3-dev
|
||||
|
||||
|
||||
ZeroMQ
|
||||
^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install libzmq5 libzmq3-dev
|
||||
|
||||
Building & Installing FRR
|
||||
-------------------------
|
||||
|
||||
Add FRR user and groups
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo groupadd -r -g 92 frr
|
||||
sudo groupadd -r -g 85 frrvty
|
||||
sudo adduser --system --ingroup frr --home /var/run/frr/ \
|
||||
--gecos "FRR suite" --shell /sbin/nologin frr
|
||||
sudo usermod -a -G frrvty 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
|
||||
|
||||
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.
|
||||
|
||||
Edit :file:`/etc/sysctl.conf` and uncomment the following values (ignore the
|
||||
other settings):
|
||||
|
||||
::
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv4
|
||||
net.ipv4.ip_forward=1
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv6
|
||||
# Enabling this option disables Stateless Address Autoconfiguration
|
||||
# based on Router Advertisements for this host
|
||||
net.ipv6.conf.all.forwarding=1
|
||||
|
||||
Reboot or use ``sysctl -p`` to apply the same config to the running system.
|
||||
|
||||
Add MPLS kernel modules
|
||||
"""""""""""""""""""""""
|
||||
|
||||
Ubuntu 20.04 ships with kernel 5.4; MPLS modules are present by default. To
|
||||
enable, add the following lines to :file:`/etc/modules-load.d/modules.conf`:
|
||||
|
||||
::
|
||||
|
||||
# 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
|
||||
|
||||
If the above command returns an error, you may need to install the appropriate
|
||||
or latest linux-modules-extra-<kernel-version>-generic package. For example
|
||||
``apt-get install linux-modules-extra-`uname -r`-generic``
|
||||
|
||||
Enable MPLS Forwarding
|
||||
""""""""""""""""""""""
|
||||
|
||||
Edit :file:`/etc/sysctl.conf` and the following lines. Make sure to add a line
|
||||
equal to :file:`net.mpls.conf.eth0.input` for each interface used with MPLS.
|
||||
|
||||
::
|
||||
|
||||
# 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
|
||||
|
||||
Install service files
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo install -m 644 tools/frr.service /etc/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 ``watchfrr_enable=...`` and ``zebra=...`` etc. Enable the daemons
|
||||
as required by changing the value to ``yes``.
|
||||
|
||||
Start FRR
|
||||
^^^^^^^^^
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
systemctl start frr
|
||||
.. include:: building-frr-for-ubuntu2x04.rst
|
||||
|
|
|
@ -1,164 +1,4 @@
|
|||
Ubuntu 22.04 LTS
|
||||
================
|
||||
|
||||
This document describes installation from source. If you want to build a
|
||||
``deb``, see :ref:`packaging-debian`.
|
||||
|
||||
Installing Dependencies
|
||||
-----------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt update
|
||||
sudo apt-get install \
|
||||
git autoconf automake libtool make libreadline-dev texinfo \
|
||||
pkg-config libpam0g-dev libjson-c-dev bison flex \
|
||||
libc-ares-dev python3-dev python3-sphinx \
|
||||
install-info build-essential libsnmp-dev perl \
|
||||
libcap-dev libelf-dev libunwind-dev \
|
||||
protobuf-c-compiler libprotobuf-c-dev
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
.. include:: building-libyang.rst
|
||||
|
||||
GRPC
|
||||
^^^^
|
||||
If GRPC is enabled using ``--enable-grpc`` the following packages should be
|
||||
installed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install libgrpc++-dev protobuf-compiler-grpc
|
||||
|
||||
|
||||
Config Rollbacks
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
If config rollbacks are enabled using ``--enable-config-rollbacks``
|
||||
the sqlite3 developer package also should be installed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt install libsqlite3-dev
|
||||
|
||||
|
||||
ZeroMQ
|
||||
^^^^^^
|
||||
This is optional
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install libzmq5 libzmq3-dev
|
||||
|
||||
Building & Installing FRR
|
||||
-------------------------
|
||||
|
||||
Add FRR user and groups
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo groupadd -r -g 92 frr
|
||||
sudo groupadd -r -g 85 frrvty
|
||||
sudo adduser --system --ingroup frr --home /var/run/frr/ \
|
||||
--gecos "FRR suite" --shell /sbin/nologin frr
|
||||
sudo usermod -a -G frrvty 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
|
||||
|
||||
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.
|
||||
|
||||
Edit :file:`/etc/sysctl.conf` and uncomment the following values (ignore the
|
||||
other settings):
|
||||
|
||||
::
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv4
|
||||
net.ipv4.ip_forward=1
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv6
|
||||
# Enabling this option disables Stateless Address Autoconfiguration
|
||||
# based on Router Advertisements for this host
|
||||
net.ipv6.conf.all.forwarding=1
|
||||
|
||||
Reboot or use ``sysctl -p`` to apply the same config to the running system.
|
||||
|
||||
Add MPLS kernel modules
|
||||
"""""""""""""""""""""""
|
||||
|
||||
Ubuntu 20.04 ships with kernel 5.4; MPLS modules are present by default. To
|
||||
enable, add the following lines to :file:`/etc/modules-load.d/modules.conf`:
|
||||
|
||||
::
|
||||
|
||||
# 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
|
||||
|
||||
If the above command returns an error, you may need to install the appropriate
|
||||
or latest linux-modules-extra-<kernel-version>-generic package. For example
|
||||
``apt-get install linux-modules-extra-`uname -r`-generic``
|
||||
|
||||
Enable MPLS Forwarding
|
||||
""""""""""""""""""""""
|
||||
|
||||
Edit :file:`/etc/sysctl.conf` and the following lines. Make sure to add a line
|
||||
equal to :file:`net.mpls.conf.eth0.input` for each interface used with MPLS.
|
||||
|
||||
::
|
||||
|
||||
# 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
|
||||
|
||||
Install service files
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo install -m 644 tools/frr.service /etc/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 ``watchfrr_enable=...`` and ``zebra=...`` etc. Enable the daemons
|
||||
as required by changing the value to ``yes``.
|
||||
|
||||
Start FRR
|
||||
^^^^^^^^^
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
systemctl start frr
|
||||
.. include:: building-frr-for-ubuntu2x04.rst
|
||||
|
|
4
doc/developer/building-frr-for-ubuntu2404.rst
Normal file
4
doc/developer/building-frr-for-ubuntu2404.rst
Normal file
|
@ -0,0 +1,4 @@
|
|||
Ubuntu 24.04 LTS
|
||||
================
|
||||
|
||||
.. include:: building-frr-for-ubuntu2x04.rst
|
162
doc/developer/building-frr-for-ubuntu2x04.rst
Normal file
162
doc/developer/building-frr-for-ubuntu2x04.rst
Normal file
|
@ -0,0 +1,162 @@
|
|||
|
||||
This document describes installation from source. If you want to build a
|
||||
``deb``, see :ref:`packaging-debian`.
|
||||
|
||||
Installing Dependencies
|
||||
-----------------------
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt update
|
||||
sudo apt-get install \
|
||||
git autoconf automake libtool make libreadline-dev texinfo \
|
||||
pkg-config libpam0g-dev libjson-c-dev bison flex \
|
||||
libc-ares-dev python3-dev python3-sphinx \
|
||||
install-info build-essential libsnmp-dev perl \
|
||||
libcap-dev libelf-dev libunwind-dev \
|
||||
protobuf-c-compiler libprotobuf-c-dev
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
.. include:: building-libyang.rst
|
||||
|
||||
GRPC
|
||||
^^^^
|
||||
If GRPC is enabled using ``--enable-grpc`` the following packages should be
|
||||
installed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install libgrpc++-dev protobuf-compiler-grpc
|
||||
|
||||
|
||||
Config Rollbacks
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
If config rollbacks are enabled using ``--enable-config-rollbacks``
|
||||
the sqlite3 developer package also should be installed.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt install libsqlite3-dev
|
||||
|
||||
|
||||
ZeroMQ
|
||||
^^^^^^
|
||||
This is optional
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install libzmq5 libzmq3-dev
|
||||
|
||||
Building & Installing FRR
|
||||
-------------------------
|
||||
|
||||
Add FRR user and groups
|
||||
^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo groupadd -r -g 92 frr
|
||||
sudo groupadd -r -g 85 frrvty
|
||||
sudo adduser --system --ingroup frr --home /var/run/frr/ \
|
||||
--gecos "FRR suite" --shell /sbin/nologin frr
|
||||
sudo usermod -a -G frrvty 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
|
||||
|
||||
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.
|
||||
|
||||
Edit :file:`/etc/sysctl.conf` and uncomment the following values (ignore the
|
||||
other settings):
|
||||
|
||||
::
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv4
|
||||
net.ipv4.ip_forward=1
|
||||
|
||||
# Uncomment the next line to enable packet forwarding for IPv6
|
||||
# Enabling this option disables Stateless Address Autoconfiguration
|
||||
# based on Router Advertisements for this host
|
||||
net.ipv6.conf.all.forwarding=1
|
||||
|
||||
Reboot or use ``sysctl -p`` to apply the same config to the running system.
|
||||
|
||||
Add MPLS kernel modules
|
||||
"""""""""""""""""""""""
|
||||
|
||||
Ubuntu 20.04 ships with kernel 5.4; MPLS modules are present by default. To
|
||||
enable, add the following lines to :file:`/etc/modules-load.d/modules.conf`:
|
||||
|
||||
::
|
||||
|
||||
# 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
|
||||
|
||||
If the above command returns an error, you may need to install the appropriate
|
||||
or latest linux-modules-extra-<kernel-version>-generic package. For example
|
||||
``apt-get install linux-modules-extra-`uname -r`-generic``
|
||||
|
||||
Enable MPLS Forwarding
|
||||
""""""""""""""""""""""
|
||||
|
||||
Edit :file:`/etc/sysctl.conf` and the following lines. Make sure to add a line
|
||||
equal to :file:`net.mpls.conf.eth0.input` for each interface used with MPLS.
|
||||
|
||||
::
|
||||
|
||||
# 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
|
||||
|
||||
Install service files
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo install -m 644 tools/frr.service /etc/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 ``watchfrr_enable=...`` and ``zebra=...`` etc. Enable the daemons
|
||||
as required by changing the value to ``yes``.
|
||||
|
||||
Start FRR
|
||||
^^^^^^^^^
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
systemctl start frr
|
Loading…
Reference in a new issue