1Ubuntu 14.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 python3-sphinx install-info build-essential \
17      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 14.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 the init.d service
115^^^^^^^^^^^^^^^^^^^^^^^^^^
116
117.. code-block:: console
118
119   sudo install -m 755 tools/frr /etc/init.d/frr
120
121Enable daemons
122^^^^^^^^^^^^^^
123
124Open :file:`/etc/frr/daemons` with your text editor of choice. Look for the
125section with ``watchfrr_enable=...`` and ``zebra=...`` etc.  Enable the daemons
126as required by changing the value to ``yes``.
127
128Start the init.d service
129^^^^^^^^^^^^^^^^^^^^^^^^
130
131.. code-block:: console
132
133  /etc/init.d/frr start
134
135Use ``/etc/init.d/frr status`` to check its status.
136