]> git.proxmox.com Git - mirror_frr.git/blame - doc/Building_FRR_on_FreeBSD11.md
doc: Fixed a few typos on Building Doc's, Changed Tab's to spaces and limited line...
[mirror_frr.git] / doc / Building_FRR_on_FreeBSD11.md
CommitLineData
278fb111
MW
1Building FRR on FreeBSD 11 from Git Source
2==========================================
3
4FreeBSD 11 restrictions:
5------------------------
6
7- MPLS is not supported on `FreeBSD`. MPLS requires a Linux Kernel
8 (4.5 or higher). LDP can be built, but may have limited use
9 without MPLS
10
11Install required packages
12-------------------------
13
14Add packages:
eb651bbc
MW
15(Allow the install of the package managment tool if this is first package
16install and asked)
278fb111 17
eb651bbc
MW
18 pkg install git autoconf automake libtool gmake gawk json-c pkgconf \
19 bison flex py27-pytest
278fb111 20
eb651bbc
MW
21Make sure there is no /usr/bin/flex preinstalled (and use the newly
22installed in /usr/local/bin):
23(FreeBSD frequently provides a older flex as part of the base OS which
24takes preference in path)
25
26 rm -f /usr/bin/flex
278fb111 27
278fb111
MW
28Get FRR, compile it and install it (from Git)
29---------------------------------------------
30
eb651bbc
MW
31**This assumes you want to build and install FRR from source and not
32using any packages**
278fb111
MW
33
34### Add frr group and user
35
eb651bbc
MW
36 pw groupadd frr -g 101
37 pw groupadd frrvty -g 102
38 pw adduser frr -g 101 -u 101 -G 102 -c "FRR suite" \
39 -d /usr/local/etc/frr -s /usr/sbin/nologin
40
41(You may prefer different options on configure statement. These are just
42an example)
43
44 git clone https://github.com/freerangerouting/frr.git frr
45 cd frr
46 git checkout stable/2.0
47 ./bootstrap.sh
48 export MAKE=gmake
49 export LDFLAGS="-L/usr/local/lib"
50 export CPPFLAGS="-I/usr/local/include"
51 ./configure \
52 --sysconfdir=/usr/local/etc/frr \
53 --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \
54 --localstatedir=/var/run/frr \
55 --prefix=/usr/local \
56 --enable-ospfclient=yes \
57 --enable-ospfapi=yes \
58 --enable-multipath=64 \
59 --enable-user=frr \
60 --enable-group=frr \
61 --enable-vty-group=frrvty \
62 --enable-configfile-mask=0640 \
63 --enable-logfile-mask=0640 \
64 --enable-rtadv \
65 --enable-tcp-zebra \
66 --enable-fpm \
67 --with-pkg-git-version \
68 --with-pkg-extra-version=-MyOwnFRRVersion
69 gmake
70 gmake check
71 sudo gmake install
278fb111
MW
72
73### Create empty FRR configuration files
eb651bbc
MW
74 sudo mkdir /usr/local/etc/frr
75 sudo touch /usr/local/etc/frr/zebra.conf
76 sudo touch /usr/local/etc/frr/bgpd.conf
77 sudo touch /usr/local/etc/frr/ospfd.conf
78 sudo touch /usr/local/etc/frr/ospf6d.conf
79 sudo touch /usr/local/etc/frr/isisd.conf
80 sudo touch /usr/local/etc/frr/ripd.conf
81 sudo touch /usr/local/etc/frr/ripngd.conf
82 sudo touch /usr/local/etc/frr/pimd.conf
83 sudo chown -R frr:frr /usr/local/etc/frr
84 sudo touch /usr/local/etc/frr/vtysh.conf
85 sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf
86 sudo chmod 640 /usr/local/etc/frr/*.conf
278fb111
MW
87
88### Enable IP & IPv6 forwarding
89
90Add the following lines to the end of `/etc/sysctl.conf`:
91
eb651bbc
MW
92 # Routing: We need to forward packets
93 net.inet.ip.forwarding=1
94 net.inet6.ip6.forwarding=1
278fb111
MW
95
96**Reboot** or use `sysctl` to apply the same config to the running system