summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorMartin Winter <mwinter@opensourcerouting.org>2017-07-12 03:30:04 +0200
committerMartin Winter <mwinter@opensourcerouting.org>2017-07-12 03:30:04 +0200
commita63edb356c742dda8d95a76656c21189d1bab743 (patch)
tree5c1064a99249bd5e426fb56b77749eba99b8c2a8 /doc
parentredhat: Add missing pimd & babels to startup scripts and config (diff)
downloadfrr-a63edb356c742dda8d95a76656c21189d1bab743.tar.xz
frr-a63edb356c742dda8d95a76656c21189d1bab743.zip
doc: Update Building Doc for RedHat-style Distro's (CentOS / Fedora)
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
Diffstat (limited to 'doc')
-rw-r--r--doc/Building_FRR_on_CentOS6.md85
-rw-r--r--doc/Building_FRR_on_CentOS7.md84
-rw-r--r--doc/Building_FRR_on_Fedora24.md83
3 files changed, 136 insertions, 116 deletions
diff --git a/doc/Building_FRR_on_CentOS6.md b/doc/Building_FRR_on_CentOS6.md
index d88f8144a..45477a6bb 100644
--- a/doc/Building_FRR_on_CentOS6.md
+++ b/doc/Building_FRR_on_CentOS6.md
@@ -1,6 +1,10 @@
Building FRR on CentOS 6 from Git Source
========================================
+(As an alternative to this installation, you may prefer to create a FRR
+rpm package yourself and install that package instead. See instructions
+in redhat/README.rpm_build.md on how to build a rpm package)
+
Instructions are tested with `CentOS 6.8` on `x86_64` platform
CentOS 6 restrictions:
@@ -16,13 +20,15 @@ Install required packages
Add packages:
- sudo yum install git autoconf automake libtool make gawk readline-devel \
- texinfo net-snmp-devel groff pkgconfig json-c-devel pam-devel \
- flex c-ares-devel epel-release rpm-build libcap-devel texi2html
+ sudo yum install git autoconf automake libtool make gawk \
+ readline-devel texinfo net-snmp-devel groff pkgconfig \
+ json-c-devel pam-devel flex epel-release perl-XML-LibXML \
+ c-ares-devel
Install newer version of bison (CentOS 6 package source is too old) from
CentOS 7
+ sudo yum install rpm-build
curl -O http://vault.centos.org/7.0.1406/os/Source/SPackages/bison-2.7-4.el7.src.rpm
rpmbuild --rebuild ./bison-2.7-4.el7.src.rpm
sudo yum install ./rpmbuild/RPMS/x86_64/bison-2.7-4.el6.x86_64.rpm
@@ -46,13 +52,14 @@ Install newer version of autoconf and automake (Package versions are too old)
sudo make install
cd ..
-Install `Python 2.7` in parallel to default 2.6
+Install `Python 2.7` in parallel to default 2.6.
Make sure you've install EPEL (`epel-release` as above). Then install current
-`python2.7` and `pytest`
+`python27`, `python27-devel` and `pytest`
- rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
- yum install python27 python27-devel python27-pip
- pip2.7 install pytest
+ sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
+ sudo rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
+ sudo yum install python27 python27-pip python27-devel
+ sudo pip2.7 install pytest
Please note that `CentOS 6` needs to keep python pointing to version 2.6
for `yum` to keep working, so don't create a symlink for python2.7 to python
@@ -74,17 +81,17 @@ any packages**
(You may prefer different options on configure statement. These are just
an example.)
-You may want to pay special attention to `/usr/lib64` paths and change
-them if you are not building on a x86_64 architecture
-
git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
+ --bindir=/usr/bin \
+ --sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
- --libdir=/usr/lib64/frr \
- --libexecdir=/usr/lib64/frr \
+ --libdir=/usr/lib/frr \
+ --libexecdir=/usr/lib/frr \
--localstatedir=/var/run/frr \
+ --with-moduledir=/usr/lib/frr/modules \
--disable-pimd \
--enable-snmp=agentx \
--enable-multipath=64 \
@@ -97,9 +104,13 @@ them if you are not building on a x86_64 architecture
--disable-exampledir \
--enable-watchfrr \
--enable-tcp-zebra \
+ --disable-ldpd \
--enable-fpm \
+ --enable-nhrpd \
+ --enable-eigrpd \
+ --enable-babeld \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check PYTHON=/usr/bin/python2.7
sudo make install
@@ -114,11 +125,23 @@ them if you are not building on a x86_64 architecture
sudo touch /etc/frr/isisd.conf
sudo touch /etc/frr/ripd.conf
sudo touch /etc/frr/ripngd.conf
+ sudo touch /etc/frr/nhrpd.conf
+ sudo touch /etc/frr/eigrpd.conf
+ sudo touch /etc/frr/babeld.conf
sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvt /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf
+### Install daemon config file
+ sudo install -p -m 644 redhat/daemons /etc/frr/
+ sudo chown frr:frr /etc/frr/daemons
+
+### Edit /etc/frr/daemons as needed to select the required daemons
+
+Look for the section with `watchfrr_enable=...` and `zebra=...` etc.
+Enable the daemons as required by changing the value to `yes`
+
### Enable IP & IPv6 forwarding
Edit `/etc/sysctl.conf` and set the following values (ignore the other
@@ -131,28 +154,16 @@ settings)
# Controls source route verification
net.ipv4.conf.default.rp_filter = 0
-**Reboot** or use `sysctl` to apply the same config to the running system
+Load the modifed sysctl's on the system:
+
+ sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
### Add init.d startup files
- sudo cp redhat/bgpd.init /etc/init.d/bgpd
- sudo cp redhat/isisd.init /etc/init.d/isisd
- sudo cp redhat/ospfd.init /etc/init.d/ospfd
- sudo cp redhat/ospf6d.init /etc/init.d/ospf6d
- sudo cp redhat/ripngd.init /etc/init.d/ripngd
- sudo cp redhat/ripd.init /etc/init.d/ripd
- sudo cp redhat/zebra.init /etc/init.d/zebra
- sudo chkconfig --add zebra
- sudo chkconfig --add ripd
- sudo chkconfig --add ripngd
- sudo chkconfig --add ospf6d
- sudo chkconfig --add ospfd
- sudo chkconfig --add bgpd
- sudo chkconfig --add isisd
-
-### Enable required daemons at startup
-Only enable zebra and the daemons which are needed for your setup
-
- sudo chkconfig zebra on
- sudo chkconfig ospfd on
- sudo chkconfig bgpd on
- [...] etc (as needed)
+ sudo install -p -m 755 redhat/frr.init /etc/init.d/frr
+ sudo chkconfig --add frr
+
+### Enable frr daemon at startup
+ sudo chkconfig frr on
+
+### Start FRR manually (or reboot)
+ sudo /etc/init.d/frr start
diff --git a/doc/Building_FRR_on_CentOS7.md b/doc/Building_FRR_on_CentOS7.md
index 0ab5c0ff5..932459167 100644
--- a/doc/Building_FRR_on_CentOS7.md
+++ b/doc/Building_FRR_on_CentOS7.md
@@ -1,6 +1,10 @@
Building FRR on CentOS 7 from Git Source
========================================
+(As an alternative to this installation, you may prefer to create a FRR
+rpm package yourself and install that package instead. See instructions
+in redhat/README.rpm_build.md on how to build a rpm package)
+
CentOS 7 restrictions:
----------------------
@@ -13,13 +17,10 @@ Install required packages
Add packages:
- sudo yum install git autoconf automake libtool make gawk readline-devel \
- texinfo net-snmp-devel groff pkgconfig json-c-devel pam-devel \
- bison flex pytest c-ares-devel python-devel rpm-build
-
-To build from git (in difference to building from distribution tar.gz as created by `make dist`), the python development libraries are needed. (Make sure you've installed EPEL libraries as shown above for this to work)
-
- yum install python34-devel
+ sudo yum install git autoconf automake libtool make gawk \
+ readline-devel texinfo net-snmp-devel groff pkgconfig \
+ json-c-devel pam-devel bison flex pytest c-ares-devel \
+ perl-XML-LibXML python-devel
Get FRR, compile it and install it (from Git)
---------------------------------------------
@@ -38,17 +39,18 @@ any packages**
(You may prefer different options on configure statement. These are just
an example.)
-You may want to pay special attention to `/usr/lib64` paths and change
-them if you are not building on a x86_64 architecture
-
git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
+ --bindir=/usr/bin \
+ --sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
- --libdir=/usr/lib64/frr \
- --libexecdir=/usr/lib64/frr \
+ --libdir=/usr/lib/frr \
+ --libexecdir=/usr/lib/frr \
--localstatedir=/var/run/frr \
+ --with-moduledir=/usr/lib/frr/modules \
+ --enable-pimd \
--enable-snmp=agentx \
--enable-multipath=64 \
--enable-ospfclient=yes \
@@ -60,9 +62,13 @@ them if you are not building on a x86_64 architecture
--disable-exampledir \
--enable-watchfrr \
--enable-tcp-zebra \
+ --disable-ldpd \
--enable-fpm \
+ --enable-nhrpd \
+ --enable-eigrpd \
+ --enable-babeld \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
@@ -78,11 +84,23 @@ them if you are not building on a x86_64 architecture
sudo touch /etc/frr/ripd.conf
sudo touch /etc/frr/ripngd.conf
sudo touch /etc/frr/pimd.conf
+ sudo touch /etc/frr/nhrpd.conf
+ sudo touch /etc/frr/eigrpd.conf
+ sudo touch /etc/frr/babeld.conf
sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvt /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf
+### Install daemon config file
+ sudo install -p -m 644 redhat/daemons /etc/frr/
+ sudo chown frr:frr /etc/frr/daemons
+
+### Edit /etc/frr/daemons as needed to select the required daemons
+
+Look for the section with `watchfrr_enable=...` and `zebra=...` etc.
+Enable the daemons as required by changing the value to `yes`
+
### Enable IP & IPv6 forwarding
Create a new file `/etc/sysctl.d/90-routing-sysctl.conf` with the
@@ -94,33 +112,19 @@ following content:
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
-**Reboot** or use `sysctl` to apply the same config to the running system
+Load the modifed sysctl's on the system:
-### Install Service files
- sudo install -p -m 644 redhat/zebra.service /usr/lib/systemd/system/zebra.service
- sudo install -p -m 644 redhat/isisd.service /usr/lib/systemd/system/isisd.service
- sudo install -p -m 644 redhat/ripd.service /usr/lib/systemd/system/ripd.service
- sudo install -p -m 644 redhat/ospfd.service /usr/lib/systemd/system/ospfd.service
- sudo install -p -m 644 redhat/bgpd.service /usr/lib/systemd/system/bgpd.service
- sudo install -p -m 644 redhat/ospf6d.service /usr/lib/systemd/system/ospf6d.service
- sudo install -p -m 644 redhat/ripngd.service /usr/lib/systemd/system/ripngd.service
- sudo install -p -m 644 redhat/pimd.service /usr/lib/systemd/system/pimd.service
- sudo install -p -m 644 redhat/frr.sysconfig /etc/sysconfig/frr
- sudo install -p -m 644 redhat/frr.logrotate /etc/logrotate.d/frr
+ sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
+
+### Install frr Service and redhat init files
+ sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
+ sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
### Register the systemd files
- sudo systemctl preset zebra.service
- sudo systemctl preset ripd.service
- sudo systemctl preset ospfd.service
- sudo systemctl preset bgpd.service
- sudo systemctl preset ospf6d.service
- sudo systemctl preset ripngd.service
- sudo systemctl preset pimd.service
-
-### Enable required daemons at startup
-Only enable zebra and the daemons which are needed for your setup
-
- sudo systemctl enable zebra
- sudo systemctl enable ospfd
- sudo systemctl enable bgpd
- [...] etc (as needed)
+ sudo systemctl preset frr.service
+
+### Enable required frr at startup
+ sudo systemctl enable frr
+
+### Reboot or start FRR manually
+ sudo systemctl start frr
diff --git a/doc/Building_FRR_on_Fedora24.md b/doc/Building_FRR_on_Fedora24.md
index bb5b52c62..c161b9b12 100644
--- a/doc/Building_FRR_on_Fedora24.md
+++ b/doc/Building_FRR_on_Fedora24.md
@@ -1,14 +1,19 @@
Building FRR on Fedora 24 from Git Source
=========================================
+(As an alternative to this installation, you may prefer to create a FRR
+rpm package yourself and install that package instead. See instructions
+in redhat/README.rpm_build.md on how to build a rpm package)
+
Install required packages
-------------------------
Add packages:
sudo dnf install git autoconf automake libtool make gawk \
- readline-devel texinfo net-snmp-devel groff pkgconfig \
- json-c-devel pam-devel c-ares-devel python3-devel
+ readline-devel texinfo net-snmp-devel groff pkgconfig \
+ json-c-devel pam-devel perl-XML-LibXML pytest bison flex \
+ c-ares-devel python3-devel
Get FRR, compile it and install it (from Git)
---------------------------------------------
@@ -27,17 +32,17 @@ using any packages**
(You may prefer different options on configure statement. These are just
an example.)
-You may want to pay special attention to `/usr/lib64` paths and change
-them if you are not building on a x86_64 architecture
-
git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
+ --bindir=/usr/bin \
+ --sbindir=/usr/lib/frr \
--sysconfdir=/etc/frr \
- --libdir=/usr/lib64/frr \
- --libexecdir=/usr/lib64/frr \
+ --libdir=/usr/lib/frr \
+ --libexecdir=/usr/lib/frr \
--localstatedir=/var/run/frr \
+ --with-moduledir=/usr/lib/frr/modules \
--enable-pimd \
--enable-snmp=agentx \
--enable-multipath=64 \
@@ -50,7 +55,11 @@ them if you are not building on a x86_64 architecture
--disable-exampledir \
--enable-watchfrr \
--enable-tcp-zebra \
+ --enable-ldpd \
--enable-fpm \
+ --enable-nhrpd \
+ --enable-eigrpd \
+ --enable-babeld \
--with-pkg-git-version \
--with-pkg-extra-version=-MyOwnFRRVersion
make
@@ -70,11 +79,22 @@ them if you are not building on a x86_64 architecture
sudo touch /etc/frr/pimd.conf
sudo touch /etc/frr/ldpd.conf
sudo touch /etc/frr/nhrpd.conf
+ sudo touch /etc/frr/eigrpd.conf
+ sudo touch /etc/frr/babeld.conf
sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvt /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf
+### Install daemon config file
+ sudo install -p -m 644 redhat/daemons /etc/frr/
+ sudo chown frr:frr /etc/frr/daemons
+
+### Edit /etc/frr/daemons as needed to select the required daemons
+
+Look for the section with `watchfrr_enable=...` and `zebra=...` etc.
+Enable the daemons as required by changing the value to `yes`
+
### Enable IP & IPv6 forwarding (and MPLS)
Create a new file `/etc/sysctl.d/90-routing-sysctl.conf` with the
@@ -94,41 +114,26 @@ to `net.mpls.conf.eth0.input=1`)
net.mpls.conf.eth2.input=1
net.mpls.platform_labels=100000
+Load the modifed sysctl's on the system:
+
+ 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
-**Reboot** or use `sysctl` to apply the same config to the running system
-
-### Install Service files
- install -p -m 644 redhat/zebra.service /usr/lib/systemd/system/zebra.service
- install -p -m 644 redhat/isisd.service /usr/lib/systemd/system/isisd.service
- install -p -m 644 redhat/ripd.service /usr/lib/systemd/system/ripd.service
- install -p -m 644 redhat/ospfd.service /usr/lib/systemd/system/ospfd.service
- install -p -m 644 redhat/bgpd.service /usr/lib/systemd/system/bgpd.service
- install -p -m 644 redhat/ospf6d.service /usr/lib/systemd/system/ospf6d.service
- install -p -m 644 redhat/ripngd.service /usr/lib/systemd/system/ripngd.service
- install -p -m 644 redhat/pimd.service /usr/lib/systemd/system/pimd.service
- install -p -m 644 redhat/ldpd.service /usr/lib/systemd/system/ldpd.service
- install -p -m 644 redhat/frr.sysconfig /etc/sysconfig/frr
- install -p -m 644 redhat/frr.logrotate /etc/logrotate.d/frr
-
-### Register the systemd files
- systemctl preset zebra.service
- systemctl preset ripd.service
- systemctl preset ospfd.service
- systemctl preset bgpd.service
- systemctl preset ospf6d.service
- systemctl preset ripngd.service
- systemctl preset pimd.service
- systemctl preset ldpd.service
-
-### Enable required daemons at startup
-Only enable zebra and the daemons which are needed for your setup
-
- systemctl enable zebra
- systemctl enable ospfd
- systemctl enable bgpd
- [...] etc (as needed)
+And load the kernel modules on the running system:
+
+ sudo modprobe mpls-router mpls-iptunnel
+
+### Install frr Service and redhat init files
+ sudo install -p -m 644 redhat/frr.service /usr/lib/systemd/system/frr.service
+ sudo install -p -m 755 redhat/frr.init /usr/lib/frr/frr
+
+### Enable required frr at startup
+ sudo systemctl enable frr
+
+### Reboot or start FRR manually
+ sudo systemctl start frr