]>
Commit | Line | Data |
---|---|---|
278fb111 MW |
1 | Building FRR on Debian 8 from Git Source |
2 | ======================================== | |
3 | ||
4 | Debian 8 restrictions: | |
5 | ---------------------- | |
6 | ||
7 | - MPLS is not supported on `Debian 8` with default kernel. MPLS requires | |
8 | Linux Kernel 4.5 or higher (LDP can be built, but may have limited use | |
9 | without MPLS) | |
10 | ||
11 | Install required packages | |
12 | ------------------------- | |
eb651bbc | 13 | |
278fb111 MW |
14 | Add packages: |
15 | ||
eb651bbc MW |
16 | sudo apt-get install git autoconf automake libtool make gawk \ |
17 | libreadline-dev texinfo libjson-c-dev pkg-config bison flex \ | |
18 | python-pip | |
278fb111 | 19 | |
eb651bbc MW |
20 | Install newer pytest (>3.0) from pip |
21 | ||
22 | sudo pip install pytest | |
278fb111 | 23 | |
278fb111 MW |
24 | Get FRR, compile it and install it (from Git) |
25 | --------------------------------------------- | |
26 | ||
eb651bbc MW |
27 | **This assumes you want to build and install FRR from source and not using |
28 | any packages** | |
278fb111 MW |
29 | |
30 | ### Add frr groups and user | |
31 | ||
eb651bbc MW |
32 | sudo addgroup --system --gid 92 frr |
33 | sudo addgroup --system --gid 85 frrvty | |
34 | sudo adduser --system --ingroup frr --groups frrvty --home /var/run/frr/ \ | |
278fb111 MW |
35 | --gecos "FRR FreeRangeRouting suite" --shell /bin/false frr |
36 | sudo usermode | |
37 | ||
38 | ### Download Source, configure and compile it | |
eb651bbc MW |
39 | (You may prefer different options on configure statement. These are just |
40 | an example.) | |
41 | ||
42 | git clone https://github.com/freerangerouting/frr.git frr | |
43 | cd frr | |
44 | git checkout stable/2.0 | |
45 | ./bootstrap.sh | |
46 | ./configure \ | |
47 | --enable-exampledir=/usr/share/doc/frr/examples/ \ | |
48 | --localstatedir=/var/run/frr \ | |
49 | --sbindir=/usr/lib/frr \ | |
50 | --sysconfdir=/etc/frr \ | |
51 | --enable-vtysh \ | |
52 | --enable-isisd \ | |
53 | --enable-pimd \ | |
54 | --enable-watchfrr \ | |
55 | --enable-ospfclient=yes \ | |
56 | --enable-ospfapi=yes \ | |
57 | --enable-multipath=64 \ | |
58 | --enable-user=frr \ | |
59 | --enable-group=frr \ | |
60 | --enable-vty-group=frrvty \ | |
61 | --enable-configfile-mask=0640 \ | |
62 | --enable-logfile-mask=0640 \ | |
63 | --enable-rtadv \ | |
64 | --enable-tcp-zebra \ | |
65 | --enable-fpm \ | |
66 | --with-pkg-git-version \ | |
67 | --with-pkg-extra-version=-MyOwnFRRVersion | |
68 | make | |
69 | make check | |
70 | sudo make install | |
278fb111 MW |
71 | |
72 | ### Create empty FRR configuration files | |
eb651bbc MW |
73 | sudo install -m 755 -o frr -g frr -d /var/log/frr |
74 | sudo install -m 775 -o frr -g frrvty -d /etc/frr | |
75 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/zebra.conf | |
76 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf | |
77 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf | |
78 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf | |
79 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf | |
80 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf | |
81 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf | |
82 | sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf | |
83 | sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf | |
278fb111 MW |
84 | |
85 | ### Enable IP & IPv6 forwarding | |
86 | ||
eb651bbc MW |
87 | Edit `/etc/sysctl.conf` and uncomment the following values (ignore the |
88 | other settings) | |
278fb111 | 89 | |
eb651bbc MW |
90 | # Uncomment the next line to enable packet forwarding for IPv4 |
91 | net.ipv4.ip_forward=1 | |
278fb111 | 92 | |
eb651bbc MW |
93 | # Uncomment the next line to enable packet forwarding for IPv6 |
94 | # Enabling this option disables Stateless Address Autoconfiguration | |
95 | # based on Router Advertisements for this host | |
96 | net.ipv6.conf.all.forwarding=1 | |
278fb111 MW |
97 | |
98 | **Reboot** or use `sysctl` to apply the same config to the running system |