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