]>
Commit | Line | Data |
---|---|---|
d3135b01 DL |
1 | FreeBSD 13 |
2 | ========== | |
3 | ||
4 | FreeBSD 13 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 without | |
9 | MPLS | |
10 | - PIM for IPv6 is not currently supported on ``FreeBSD``. | |
11 | ||
12 | Install required packages | |
13 | ------------------------- | |
14 | ||
15 | Add packages: (Allow the install of the package management tool if this | |
16 | is first package install and asked) | |
17 | ||
18 | .. code-block:: shell | |
19 | ||
20 | pkg install git autoconf automake libtool gmake json-c pkgconf \ | |
21 | bison py39-pytest c-ares py39-sphinx texinfo libunwind libyang2 | |
22 | ||
23 | .. include:: building-libunwind-note.rst | |
24 | ||
25 | Get FRR, compile it and install it (from Git) | |
26 | --------------------------------------------- | |
27 | ||
28 | **This assumes you want to build and install FRR from source and not using any | |
29 | packages** | |
30 | ||
31 | Add frr group and user | |
32 | ^^^^^^^^^^^^^^^^^^^^^^ | |
33 | ||
34 | .. code-block:: shell | |
35 | ||
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 | ||
42 | Download Source, configure and compile it | |
43 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
44 | ||
45 | (You may prefer different options on configure statement. These are just | |
46 | an example) | |
47 | ||
48 | .. code-block:: shell | |
49 | ||
50 | git clone https://github.com/frrouting/frr.git frr | |
51 | cd frr | |
52 | ./bootstrap.sh | |
53 | export MAKE=gmake LDFLAGS=-L/usr/local/lib CPPFLAGS=-I/usr/local/include | |
54 | ./configure \ | |
55 | --sysconfdir=/usr/local/etc/frr \ | |
56 | --enable-pkgsrcrcdir=/usr/pkg/share/examples/rc.d \ | |
57 | --localstatedir=/var/run/frr \ | |
58 | --prefix=/usr/local \ | |
59 | --enable-multipath=64 \ | |
60 | --enable-user=frr \ | |
61 | --enable-group=frr \ | |
62 | --enable-vty-group=frrvty \ | |
63 | --enable-configfile-mask=0640 \ | |
64 | --enable-logfile-mask=0640 \ | |
65 | --enable-fpm \ | |
66 | --with-pkg-git-version \ | |
67 | --with-pkg-extra-version=-MyOwnFRRVersion | |
68 | gmake | |
69 | gmake check | |
70 | sudo gmake install | |
71 | ||
72 | Create empty FRR configuration files | |
73 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
74 | ||
75 | .. code-block:: shell | |
76 | ||
77 | sudo mkdir /usr/local/etc/frr | |
78 | ||
79 | For integrated config file: | |
80 | ||
81 | .. code-block:: shell | |
82 | ||
83 | sudo touch /usr/local/etc/frr/frr.conf | |
84 | ||
85 | For individual config files: | |
86 | ||
87 | .. note:: Integrated config is preferred to individual config. | |
88 | ||
89 | .. code-block:: shell | |
90 | ||
91 | sudo touch /usr/local/etc/frr/babeld.conf | |
92 | sudo touch /usr/local/etc/frr/bfdd.conf | |
93 | sudo touch /usr/local/etc/frr/bgpd.conf | |
94 | sudo touch /usr/local/etc/frr/eigrpd.conf | |
95 | sudo touch /usr/local/etc/frr/isisd.conf | |
96 | sudo touch /usr/local/etc/frr/ldpd.conf | |
97 | sudo touch /usr/local/etc/frr/nhrpd.conf | |
98 | sudo touch /usr/local/etc/frr/ospf6d.conf | |
99 | sudo touch /usr/local/etc/frr/ospfd.conf | |
100 | sudo touch /usr/local/etc/frr/pbrd.conf | |
101 | sudo touch /usr/local/etc/frr/pimd.conf | |
102 | sudo touch /usr/local/etc/frr/ripd.conf | |
103 | sudo touch /usr/local/etc/frr/ripngd.conf | |
104 | sudo touch /usr/local/etc/frr/staticd.conf | |
105 | sudo touch /usr/local/etc/frr/zebra.conf | |
106 | sudo chown -R frr:frr /usr/local/etc/frr/ | |
107 | sudo touch /usr/local/etc/frr/vtysh.conf | |
108 | sudo chown frr:frrvty /usr/local/etc/frr/vtysh.conf | |
109 | sudo chmod 640 /usr/local/etc/frr/*.conf | |
110 | ||
111 | Enable IP & IPv6 forwarding | |
112 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ | |
113 | ||
114 | Add the following lines to the end of ``/etc/sysctl.conf``: | |
115 | ||
116 | :: | |
117 | ||
118 | # Routing: We need to forward packets | |
119 | net.inet.ip.forwarding=1 | |
120 | net.inet6.ip6.forwarding=1 | |
121 | ||
122 | **Reboot** or use ``sysctl`` to apply the same config to the running system. |