Fedora 24+ ========== This document describes installation from source. If you want to build an RPM, see :ref:`packaging-redhat`. These instructions have been tested on Fedora 24+. Installing Dependencies ----------------------- .. code-block:: console 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 python2-sphinx \ perl-core patch .. include:: building-libyang.rst Building & Installing FRR ------------------------- 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 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 \ --with-libyang-pluginsdir=/usr/lib/frr/libyang_plugins \ --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 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 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 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``. 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: .. code-block:: console # # 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 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: .. code-block:: console # 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 Install service files ^^^^^^^^^^^^^^^^^^^^^ .. code-block:: console 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