doc: update Fedora 24 build doc

* Cross reference RPM build docs
* Add perl and patch to build deps
* Add libyang-pluginsdir to ./configure options
* Change instructions to unified config

Verified on Fedora 28.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2019-03-22 18:33:25 +00:00
parent 63374e1d8b
commit ba8083e5ce

View File

@ -11,15 +11,16 @@ Installing Dependencies
sudo dnf install git autoconf automake libtool make gawk \
readline-devel texinfo net-snmp-devel groff pkgconfig json-c-devel \
pam-devel pytest bison flex c-ares-devel python3-devel python3-sphinx
pam-devel pytest bison flex c-ares-devel python3-devel python2-sphinx \
perl-core patch
.. include:: building-libyang.rst
Building & Installing FRR
-------------------------
Compilation
^^^^^^^^^^^
Compile
^^^^^^^
Clone the FRR git repo and use the included ``configure`` script to configure
FRR's build time options to your liking. The full option listing can be
@ -38,6 +39,7 @@ obtained by running ``./configure -h``. The options shown below are examples.
--libexecdir=/usr/lib/frr \
--localstatedir=/var/run/frr \
--with-moduledir=/usr/lib/frr/modules \
--with-libyang-pluginsdir=/usr/lib/frr/libyang_plugins \
--enable-snmp=agentx \
--enable-multipath=64 \
--enable-user=frr \
@ -50,7 +52,7 @@ obtained by running ``./configure -h``. The options shown below are examples.
make
sudo make install
Add FRR groups and user
Add FRR user and groups
^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: console
@ -60,74 +62,61 @@ Add FRR groups and user
sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \
-c "FRR FRRouting suite" -d /var/run/frr frr
Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Install FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
.. code-block:: console
sudo mkdir /var/log/frr
sudo mkdir /etc/frr
sudo touch /etc/frr/zebra.conf
sudo touch /etc/frr/bgpd.conf
sudo touch /etc/frr/ospfd.conf
sudo touch /etc/frr/ospf6d.conf
sudo touch /etc/frr/isisd.conf
sudo touch /etc/frr/ripd.conf
sudo touch /etc/frr/ripngd.conf
sudo touch /etc/frr/pimd.conf
sudo touch /etc/frr/ldpd.conf
sudo touch /etc/frr/nhrpd.conf
sudo touch /etc/frr/eigrpd.conf
sudo touch /etc/frr/babeld.conf
sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvty /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf
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
Install daemon config file
^^^^^^^^^^^^^^^^^^^^^^^^^^
Enable daemons
^^^^^^^^^^^^^^
.. code-block:: console
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``.
sudo install -p -m 644 redhat/daemons /etc/frr/
sudo chown frr:frr /etc/frr/daemons
Edit /etc/frr/daemons
^^^^^^^^^^^^^^^^^^^^^
Look for the section with ``watchfrr_enable=...`` and ``zebra=...`` etc.
Enable the daemons as required by changing the value to ``yes``.
Enable IP & IPv6 forwarding (and MPLS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
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 (please make sure to list all interfaces with required MPLS similar to
``net.mpls.conf.eth0.input=1``):
content:
.. code-block:: console
# Sysctl for routing
#
# Routing: We need to forward packets
# 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
#
#net.mpls.conf.eth0.input=1
#net.mpls.conf.eth1.input=1
#net.mpls.conf.eth2.input=1
#net.mpls.platform_labels=100000
Load the modified sysctl's on the system:
.. note::
MPLS must be invidividually enabled on each interface that requires it. See
the example in the config block above.
Load the modifed 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:
Create a new file ``/etc/modules-load.d/mpls.conf`` with the following content:
.. code-block:: console
@ -141,8 +130,8 @@ And load the kernel modules on the running system:
sudo modprobe mpls-router mpls-iptunnel
Install system service files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Install service files
^^^^^^^^^^^^^^^^^^^^^
.. code-block:: console