Setting Up an Access Point
This part of the guide will show you how to set up wimoved on your OpenWrt Access Point.
Info
OpenWrt is available for a large number of different types of access points. Different APs may use different processor architectures. For this reason, you need a version of wimoved that is compatible with your architecture.
We try to provide builds for as many architectures as reasonably possible. If you have OpenWrt hardware you would like to see supported, please open an issue.
Tip
The AP needs to have an internet connection to be able to install dependencies.
Preparing Your AP
- Verify that you have SSH connectivity to the access point. If not, take a look at the OpenWrt guide for SSH.
Info
Unless specified otherwise, all commands given in this guide should be run in the shell of the Access Point.
Setting Up Hostapd
Installing The Correct Version of Hostapd
Regular OpenWrt setups come with a stripped-down version of hostapd called wpad
or wpad-mini
. These do however not come with all features we require for our setup.
- Uninstall the unneeded
wpad-mini
opkg update opkg remove wpad-mini opkg install hostapd
- Reboot the Access Point
Configuring Hostapd
OpenWrt generates the hostapd configuration file hostapd.conf
from the OpenWrt wireless configuration.
This configuration can be edited via the web interface or by modifying the file located at /etc/config/wireless
. We will now guide you on how to set up hostapd on your AP.
- Go to the web interface of the AP and configure a WPA2-PSK wireless network for each radio you wish to use. Make sure to press save at the end.
-
Open the file
/etc/config/wireless
in a text editor.Tip
OpenWrt only comes with a version of
vi
out of the box. If you are not comfortable with vim, you can also install the nano editor by runningopkg update && opkg install nano
-
Go to the end of the file. There, you should find a section for each wireless network you configured in the previous step.
-
Add the following lines to each of these sections and save the file.
option isolate '1' option per_sta_vif '1' option vlan_file '/etc/hostapd.vlan'
-
Create a file called
/etc/hostapd.vlan
with the following content* vlan#
-
Restart the AP
When connecting to the Wi-Fi network you just created, you should see that an interface with the name vlan*
gets created where * is an arbitrary number. The interface should disappear after the station disconnects. If you do not see the interfaces, recheck that you followed the guide exactly.
Setting Up FRR
FRRouting is used to enable the control plane of the underlying VXLAN EVPN networks. It needs to be installed on each AP and configured to talk to the route reflector in your network.
-
Install
frr
by runningopkg update && opkg install frr-bgpd frr-zebra frr-watchfrr frr-vtysh
-
Create the file
/etc/frr/frr.conf
with the following content and replacing the placeholders with the corresponding IP addresses in your network:/etc/frr/frr.conf
log syslog informational ip nht resolve-via-default ip6 nht resolve-via-default router bgp 65000 bgp router-id <YOUR AP IP> no bgp default ipv4-unicast neighbor fabric peer-group neighbor fabric remote-as 65000 neighbor fabric capability extended-nexthop neighbor fabric ebgp-multihop 5 ! BGP sessions with route reflectors neighbor <YOUR ROUTE REFLECTOR IP> peer-group fabric ! address-family l2vpn evpn neighbor fabric activate advertise-all-vni exit-address-family ! !
-
Create the file
/etc/frr/daemons
with the following content:/etc/frr/daemons
bgpd=yes ospfd=no ospf6d=no ripd=no ripngd=no isisd=no pimd=no ldpd=no nhrpd=no eigrpd=no babeld=no sharpd=no pathd=no pbrd=no bfdd=no fabricd=no vrrpd=no vtysh_enable=yes zebra_options=" -A 127.0.0.1 -s 90000000" bgpd_options=" -A 127.0.0.1" ospfd_options=" -A 127.0.0.1" ospf6d_options=" -A ::1" ripd_options=" -A 127.0.0.1" ripngd_options=" -A ::1" isisd_options=" -A 127.0.0.1" pimd_options=" -A 127.0.0.1" ldpd_options=" -A 127.0.0.1" nhrpd_options=" -A 127.0.0.1" eigrpd_options=" -A 127.0.0.1" babeld_options=" -A 127.0.0.1" sharpd_options=" -A 127.0.0.1" pbrd_options=" -A 127.0.0.1" staticd_options="-A 127.0.0.1" bfdd_options=" -A 127.0.0.1" fabricd_options="-A 127.0.0.1" vrrpd_options=" -A 127.0.0.1"
-
Restart
frr
by runningservice frr restart
.
You can check the configuration of FRR using the vtysh
command. This command provides a stateful shell to manipulate FRR. More detailed documentation about vtysh can be found here.
Setting Up wimoved
wimoved is the daemon we provide that enables all Access Point features required for WiMoVE. It as well as all other dependencies need to be installed in every AP in your Wi‑Fi system.
Obtaining the Correct Binary
- Find out which architecture your access point uses by looking it up on the OpenWrt Table of Hardware.
- Get the package for the matching architecture for your access point. There are three ways to achieve this:
- Download the binary from the latest release on the Releases Page
- Download the binary from a recent pipeline run in our GitHub Repository
- Cross-Compile it yourself. See the Development Guide for details.
Copying Wimoved to Your AP Via SSH
Info
The commands in this section need to be run on your computer, not the AP
-
Copy the package from your computer to the access point via SCP
scp -O <Path to WiMoVE on your machine> root@<YOUR AP IP-ADDRESS>:
-
Login to you AP via ssh
All further commands will now again need to be run on your AP.ssh root@<YOUR AP IP-ADDRESS>
Installing Wimoved
-
Install the package on your access point via
opkg update && opkg install <Path to wimoved>`
-
Run
wimoved
. You should see an error message, showing that wimoved was installed successfully.
Configuring Wimoved
The wimoved config file is located at /etc/wimoved/config
.
Before we can use the AP, you need to fill this file with some information about your installation.
- Create a file located at
/etc/wimoved/config
and fill it with the following lines:# The location of the hostapd sockets. Leave like this for regular OpenWrt setup hapd_sockdir=/var/run/hostapd # Access group for hostapd sockets. Leave unchanged. hapd_group=network # Interval (seconds) after which interfaces for disconnected stations are removed cleanup_interval=30 # Number of VNIs the stations are assigned to. wimoved will use VNI 1 to n. max_vni=20
Info
There are some more configuration options that can be found in the GitHub repository's readme file. If you have any configuration needs that are not provided by the current configuration options, feel free to open an issue.
After a successful configuration, you can run wimoved
and it should start without any errors. When connecting with a client, you should see log messages.