]> git.puffer.fish Git - mirror/frr.git/commitdiff
doc: Update Building Doc for RedHat-style Distro's (CentOS / Fedora) 802/head
authorMartin Winter <mwinter@opensourcerouting.org>
Wed, 12 Jul 2017 01:37:02 +0000 (18:37 -0700)
committerMartin Winter <mwinter@opensourcerouting.org>
Wed, 12 Jul 2017 01:37:02 +0000 (18:37 -0700)
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
doc/Building_FRR_on_CentOS6.md
doc/Building_FRR_on_CentOS7.md
doc/Building_FRR_on_Fedora24.md

index 9f40418fffdceec52e1d5c7a42a527a5d379f63c..8499340122b76f1ff84f9414b0a76cbc89014086 100644 (file)
@@ -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
@@ -48,12 +54,12 @@ Install newer version of autoconf and automake (Package versions are too old)
 
 Install `Python 2.7` in parallel to default 2.6 (needed for `make check` to 
 run unittests). 
-Make sure you've install EPEL (`epel-release` as above). Then install current 
-`python2.7` and `pytest`
+Pick correct EPEL based on CentOS version used. Then install current `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
+    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
@@ -75,17 +81,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
+    git checkout stable/3.0
     ./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 \
@@ -98,9 +105,11 @@ them if you are not building on a x86_64 architecture
         --disable-exampledir \
         --enable-watchfrr \
         --enable-tcp-zebra \
+        --disable-ldpd \
         --enable-fpm \
+        --enable-nhrpd \
         --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
@@ -115,11 +124,21 @@ 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 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 
@@ -132,28 +151,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
index 0ab5c0ff548ebdf6f8f59b68e3998ae95620437f..653efc6e603b45be31b29a08b7a42c4f2b07c40f 100644 (file)
@@ -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
 
 Get FRR, compile it and install it (from Git)
 ---------------------------------------------
@@ -38,17 +39,19 @@ 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
+    git checkout stable/3.0
     ./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 +63,11 @@ them if you are not building on a x86_64 architecture
         --disable-exampledir \
         --enable-watchfrr \
         --enable-tcp-zebra \
+        --disable-ldpd \
         --enable-fpm \
+        --enable-nhrpd \
         --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion   
+        --with-pkg-extra-version=-MyOwnFRRVersion
     make
     make check
     sudo make install
@@ -78,11 +83,21 @@ 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 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 +109,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
index 1f5f12b9cc2074479758f7350b0aa0769bc1bce3..4e2647c62bbd01381fc03caf35ed6e6b723519f4 100644 (file)
@@ -1,15 +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 perl-XML-LibXML c-ares-devel \
-       python3-devel
+      readline-devel texinfo net-snmp-devel groff pkgconfig \
+      json-c-devel pam-devel bison flex pytest perl-XML-LibXML \
+      c-ares-devel
 
 Get FRR, compile it and install it (from Git)
 ---------------------------------------------
@@ -28,17 +32,18 @@ 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
+    git checkout stable/3.0
     ./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 \
@@ -51,9 +56,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 \
         --with-pkg-git-version \
-        --with-pkg-extra-version=-MyOwnFRRVersion    
+        --with-pkg-extra-version=-MyOwnFRRVersion
     make
     make check
     sudo make install
@@ -76,6 +83,15 @@ them if you are not building on a x86_64 architecture
     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 
@@ -95,41 +111,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