1Ubuntu 16.04 LTS
2================
3
4This document describes installation from source. If you want to build a
5``deb``, see :ref:`packaging-debian`.
6
7Installing Dependencies
8-----------------------
9
10.. code-block:: console
11
12   apt-get update
13   apt-get install \
14      git autoconf automake libtool make libreadline-dev texinfo \
15      pkg-config libpam0g-dev libjson-c-dev bison flex python3-pytest \
16      libc-ares-dev python3-dev libsystemd-dev python-ipaddress python3-sphinx \
17      install-info build-essential libsystemd-dev libsnmp-dev perl libcap-dev
18
19.. include:: building-libyang.rst
20
21Building & Installing FRR
22-------------------------
23
24Add FRR user and groups
25^^^^^^^^^^^^^^^^^^^^^^^
26
27.. code-block:: console
28
29   sudo groupadd -r -g 92 frr
30   sudo groupadd -r -g 85 frrvty
31   sudo adduser --system --ingroup frr --home /var/run/frr/ \
32      --gecos "FRR suite" --shell /sbin/nologin frr
33   sudo usermod -a -G frrvty frr
34
35Compile
36^^^^^^^
37
38.. include:: include-compile.rst
39
40Install FRR configuration files
41^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42
43.. code-block:: console
44
45   sudo install -m 775 -o frr -g frr -d /var/log/frr
46   sudo install -m 775 -o frr -g frrvty -d /etc/frr
47   sudo install -m 640 -o frr -g frrvty tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
48   sudo install -m 640 -o frr -g frr tools/etc/frr/frr.conf /etc/frr/frr.conf
49   sudo install -m 640 -o frr -g frr tools/etc/frr/daemons.conf /etc/frr/daemons.conf
50   sudo install -m 640 -o frr -g frr tools/etc/frr/daemons /etc/frr/daemons
51
52Tweak sysctls
53^^^^^^^^^^^^^
54
55Some sysctls need to be changed in order to enable IPv4/IPv6 forwarding and
56MPLS (if supported by your platform). If your platform does not support MPLS,
57skip the MPLS related configuration in this section.
58
59Edit :file:`/etc/sysctl.conf` and uncomment the following values (ignore the
60other settings):
61
62::
63
64   # Uncomment the next line to enable packet forwarding for IPv4
65   net.ipv4.ip_forward=1
66
67   # Uncomment the next line to enable packet forwarding for IPv6
68   #  Enabling this option disables Stateless Address Autoconfiguration
69   #  based on Router Advertisements for this host
70   net.ipv6.conf.all.forwarding=1
71
72Reboot or use ``sysctl -p`` to apply the same config to the running system.
73
74Add MPLS kernel modules
75"""""""""""""""""""""""
76
77.. warning::
78
79   MPLS is not supported on Ubuntu 16.04 with the default kernel. MPLS requires
80   kernel 4.5 or higher. LDPD can be built, but may have limited use without
81   MPLS. For an updated Ubuntu Kernel, see
82   http://kernel.ubuntu.com/~kernel-ppa/mainline/
83
84Ubuntu 18.04 ships with kernel 4.15. MPLS modules are present by default.  To
85enable, add the following lines to :file:`/etc/modules-load.d/modules.conf`:
86
87::
88
89   # Load MPLS Kernel Modules
90   mpls_router
91   mpls_iptunnel
92
93
94And load the kernel modules on the running system:
95
96.. code-block:: console
97
98   sudo modprobe mpls-router mpls-iptunnel
99
100Enable MPLS Forwarding
101""""""""""""""""""""""
102
103Edit :file:`/etc/sysctl.conf` and the following lines. Make sure to add a line
104equal to :file:`net.mpls.conf.eth0.input` for each interface used with MPLS.
105
106::
107
108   # Enable MPLS Label processing on all interfaces
109   net.mpls.conf.eth0.input=1
110   net.mpls.conf.eth1.input=1
111   net.mpls.conf.eth2.input=1
112   net.mpls.platform_labels=100000
113
114Install service files
115^^^^^^^^^^^^^^^^^^^^^
116
117.. code-block:: console
118
119   sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
120   sudo systemctl enable frr
121
122Enable daemons
123^^^^^^^^^^^^^^
124
125Open :file:`/etc/frr/daemons` with your text editor of choice. Look for the
126section with ``watchfrr_enable=...`` and ``zebra=...`` etc.  Enable the daemons
127as required by changing the value to ``yes``.
128
129Start FRR
130^^^^^^^^^
131
132.. code-block:: console
133
134   systemctl start frr
135