doc: update Fedora 24 build doc style

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2019-03-22 16:19:22 +00:00
parent 749d7a8bcd
commit 63374e1d8b

View File

@ -1,169 +1,158 @@
Fedora 24 Fedora 24
========================================= =========
This document describes installation from source. If you want to build an RPM, This document describes installation from source. If you want to build an RPM,
see :ref:`packaging-redhat`. see :ref:`packaging-redhat`.
Install required packages Installing Dependencies
------------------------- -----------------------
Add packages: .. code-block:: console
:: sudo dnf install git autoconf automake libtool make gawk \
readline-devel texinfo net-snmp-devel groff pkgconfig json-c-devel \
sudo dnf install git autoconf automake libtool make gawk \ pam-devel pytest bison flex c-ares-devel python3-devel python3-sphinx
readline-devel texinfo net-snmp-devel groff pkgconfig \
json-c-devel pam-devel pytest bison flex c-ares-devel \
python3-devel python3-sphinx
.. include:: building-libyang.rst .. include:: building-libyang.rst
Get FRR, compile it and install it (from Git) Building & Installing FRR
--------------------------------------------- -------------------------
**This assumes you want to build and install FRR from source and not Compilation
using any packages** ^^^^^^^^^^^
Add frr groups and user 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
obtained by running ``./configure -h``. The options shown below are examples.
.. code-block:: console
git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
--bindir=/usr/bin \
--sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
--libdir=/usr/lib/frr \
--libexecdir=/usr/lib/frr \
--localstatedir=/var/run/frr \
--with-moduledir=/usr/lib/frr/modules \
--enable-snmp=agentx \
--enable-multipath=64 \
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--disable-exampledir \
--enable-fpm \
--with-pkg-git-version \
--with-pkg-extra-version=-MyOwnFRRVersion
make
sudo make install
Add FRR groups and user
^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: console
sudo groupadd -g 92 frr sudo groupadd -g 92 frr
sudo groupadd -r -g 85 frrvty sudo groupadd -r -g 85 frrvty
sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \ sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \
-c "FRR FRRouting suite" -d /var/run/frr frr -c "FRR FRRouting suite" -d /var/run/frr frr
Download Source, configure and compile it
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
(You may prefer different options on configure statement. These are just
an example.)
::
git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
--bindir=/usr/bin \
--sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
--libdir=/usr/lib/frr \
--libexecdir=/usr/lib/frr \
--localstatedir=/var/run/frr \
--with-moduledir=/usr/lib/frr/modules \
--enable-snmp=agentx \
--enable-multipath=64 \
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--disable-exampledir \
--enable-fpm \
--with-pkg-git-version \
--with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
Create empty FRR configuration files Create empty FRR configuration files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: console
sudo mkdir /var/log/frr sudo mkdir /var/log/frr
sudo mkdir /etc/frr sudo mkdir /etc/frr
sudo touch /etc/frr/zebra.conf sudo touch /etc/frr/zebra.conf
sudo touch /etc/frr/bgpd.conf sudo touch /etc/frr/bgpd.conf
sudo touch /etc/frr/ospfd.conf sudo touch /etc/frr/ospfd.conf
sudo touch /etc/frr/ospf6d.conf sudo touch /etc/frr/ospf6d.conf
sudo touch /etc/frr/isisd.conf sudo touch /etc/frr/isisd.conf
sudo touch /etc/frr/ripd.conf sudo touch /etc/frr/ripd.conf
sudo touch /etc/frr/ripngd.conf sudo touch /etc/frr/ripngd.conf
sudo touch /etc/frr/pimd.conf sudo touch /etc/frr/pimd.conf
sudo touch /etc/frr/ldpd.conf sudo touch /etc/frr/ldpd.conf
sudo touch /etc/frr/nhrpd.conf sudo touch /etc/frr/nhrpd.conf
sudo touch /etc/frr/eigrpd.conf sudo touch /etc/frr/eigrpd.conf
sudo touch /etc/frr/babeld.conf sudo touch /etc/frr/babeld.conf
sudo chown -R frr:frr /etc/frr/ sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvty /etc/frr/vtysh.conf sudo chown frr:frrvty /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf sudo chmod 640 /etc/frr/*.conf
Install daemon config file Install daemon config file
^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: console
sudo install -p -m 644 redhat/daemons /etc/frr/ sudo install -p -m 644 redhat/daemons /etc/frr/
sudo chown frr:frr /etc/frr/daemons sudo chown frr:frr /etc/frr/daemons
Edit /etc/frr/daemons as needed to select the required daemons Edit /etc/frr/daemons
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^
Look for the section with ``watchfrr_enable=...`` and ``zebra=...`` etc. Look for the section with ``watchfrr_enable=...`` and ``zebra=...`` etc.
Enable the daemons as required by changing the value to ``yes`` Enable the daemons as required by changing the value to ``yes``.
Enable IP & IPv6 forwarding (and MPLS) Enable IP & IPv6 forwarding (and MPLS)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the following
following content: (Please make sure to list all interfaces with content (please make sure to list all interfaces with required MPLS similar to
required MPLS similar to ``net.mpls.conf.eth0.input=1``) ``net.mpls.conf.eth0.input=1``):
:: .. code-block:: console
# Sysctl for routing # Sysctl for routing
# #
# Routing: We need to forward packets # Routing: We need to forward packets
net.ipv4.conf.all.forwarding=1 net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1 net.ipv6.conf.all.forwarding=1
# #
# Enable MPLS Label processing on all interfaces # Enable MPLS Label processing on all interfaces
net.mpls.conf.eth0.input=1 net.mpls.conf.eth0.input=1
net.mpls.conf.eth1.input=1 net.mpls.conf.eth1.input=1
net.mpls.conf.eth2.input=1 net.mpls.conf.eth2.input=1
net.mpls.platform_labels=100000 net.mpls.platform_labels=100000
Load the modified sysctl's on the system: Load the modified sysctl's on the system:
:: .. code-block:: console
sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
Create a new file ``/etc/modules-load.d/mpls.conf`` with the following Create a new file ``/etc/modules-load.d/mpls.conf`` with the following
content: content:
:: .. code-block:: console
# Load MPLS Kernel Modules # Load MPLS Kernel Modules
mpls-router mpls-router
mpls-iptunnel mpls-iptunnel
And load the kernel modules on the running system: And load the kernel modules on the running system:
:: .. code-block:: console
sudo modprobe mpls-router mpls-iptunnel sudo modprobe mpls-router mpls-iptunnel
Install frr Service and redhat init files Install system service files
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
::
sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
Enable required frr at startup
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
::
sudo systemctl enable frr
Reboot or start FRR manually
^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
:: .. code-block:: console
sudo systemctl start frr sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
sudo systemctl enable frr
Start FRR
^^^^^^^^^
.. code-block:: frr
sudo systemctl start frr