2 ========================================
4 (As an alternative to this installation, you may prefer to create a FRR
5 rpm package yourself and install that package instead. See instructions
6 in redhat/README.rpm\_build.md on how to build a rpm package)
11 - MPLS is not supported on ``CentOS 7`` with default kernel. MPLS
12 requires Linux Kernel 4.5 or higher (LDP can be built, but may have
13 limited use without MPLS)
15 Install required packages
16 -------------------------
22 sudo yum install git autoconf automake libtool make gawk \
23 readline-devel texinfo net-snmp-devel groff pkgconfig \
24 json-c-devel pam-devel bison flex pytest c-ares-devel \
25 python-devel systemd-devel python-sphinx
27 .. include:: building-libyang.rst
29 Get FRR, compile it and install it (from Git)
30 ---------------------------------------------
32 **This assumes you want to build and install FRR from source and not
35 Add frr groups and user
36 ^^^^^^^^^^^^^^^^^^^^^^^
40 sudo groupadd -g 92 frr
41 sudo groupadd -r -g 85 frrvty
42 sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \
43 -c "FRR FRRouting suite" -d /var/run/frr frr
45 Download Source, configure and compile it
46 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
48 (You may prefer different options on configure statement. These are just
53 git clone https://github.com/frrouting/frr.git frr
58 --sbindir=/usr/lib/frr \
59 --sysconfdir=/etc/frr \
60 --libdir=/usr/lib/frr \
61 --libexecdir=/usr/lib/frr \
62 --localstatedir=/var/run/frr \
63 --with-moduledir=/usr/lib/frr/modules \
64 --enable-snmp=agentx \
65 --enable-multipath=64 \
68 --enable-vty-group=frrvty \
69 --enable-systemd=yes \
70 --disable-exampledir \
73 --with-pkg-git-version \
74 --with-pkg-extra-version=-MyOwnFRRVersion
79 Create empty FRR configuration files
80 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
84 sudo mkdir /var/log/frr
86 sudo touch /etc/frr/zebra.conf
87 sudo touch /etc/frr/bgpd.conf
88 sudo touch /etc/frr/ospfd.conf
89 sudo touch /etc/frr/ospf6d.conf
90 sudo touch /etc/frr/isisd.conf
91 sudo touch /etc/frr/ripd.conf
92 sudo touch /etc/frr/ripngd.conf
93 sudo touch /etc/frr/pimd.conf
94 sudo touch /etc/frr/nhrpd.conf
95 sudo touch /etc/frr/eigrpd.conf
96 sudo touch /etc/frr/babeld.conf
97 sudo chown -R frr:frr /etc/frr/
98 sudo touch /etc/frr/vtysh.conf
99 sudo chown frr:frrvty /etc/frr/vtysh.conf
100 sudo chmod 640 /etc/frr/*.conf
102 Install daemon config file
103 ^^^^^^^^^^^^^^^^^^^^^^^^^^
107 sudo install -p -m 644 redhat/daemons /etc/frr/
108 sudo chown frr:frr /etc/frr/daemons
110 Edit /etc/frr/daemons as needed to select the required daemons
111 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
113 Look for the section with ``watchfrr_enable=...`` and ``zebra=...`` etc.
114 Enable the daemons as required by changing the value to ``yes``
116 Enable IP & IPv6 forwarding
117 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
119 Create a new file ``/etc/sysctl.d/90-routing-sysctl.conf`` with the
126 # Routing: We need to forward packets
127 net.ipv4.conf.all.forwarding=1
128 net.ipv6.conf.all.forwarding=1
130 Load the modifed sysctl's on the system:
134 sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
136 Install frr Service and redhat init files
137 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
141 sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
142 sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
144 Register the systemd files
145 ^^^^^^^^^^^^^^^^^^^^^^^^^^
149 sudo systemctl preset frr.service
151 Enable required frr at startup
152 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
156 sudo systemctl enable frr
158 Reboot or start FRR manually
159 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
163 sudo systemctl start frr