blob: aa10f1118dabc18860a82c299fe4b745c9abd3e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
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 \
readline-devel texinfo net-snmp-devel groff pkgconfig json-c-devel \
pam-devel python3-pytest bison flex c-ares-devel python3-devel \
python3-sphinx perl-core patch libcap-devel \
elfutils-libelf-devel libunwind-devel
.. include:: building-libunwind-note.rst
.. include:: building-libyang.rst
Building & Installing FRR
-------------------------
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
Compile
^^^^^^^
.. include:: include-compile.rst
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
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:
::
#
# 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 modified 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:
::
# 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
.. note::
Fedora ships with the ``firewalld`` service enabled. You may run into some
issues with the iptables rules it installs by default. If you wish to just
stop the service and clear `ALL` rules do these commands:
.. code-block:: console
sudo systemctl disable firewalld.service
sudo systemctl stop firewalld.service
sudo iptables -F
Install frr Service
^^^^^^^^^^^^^^^^^^^
.. code-block:: console
sudo install -p -m 644 tools/frr.service /usr/lib/systemd/system/frr.service
sudo systemctl enable frr
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``.
Start FRR
^^^^^^^^^
.. code-block:: frr
sudo systemctl start frr
|