Multi-container access point

Good afternoon,

We have Fin’s running multiple containers. One of them we have set up as an access point for devices to connect to.

Currently it does not provide internet access to anything connected to it. The Fin itself has internet (either via ethernet or 3/4G modem) - could someone point us in the right direction (or give us the entire solution at once, that’d be nice) for information about what we need to do to get this AP providing internet connectivity to its connected devices.

Thanks.

Hi @krenom,

In the ipv4 section of your NetworkManager AP connection profile you need to set the method property to shared. This will set everything up for you including launching dnsmasq as a DHCP server.

The example we have in our docs does exactly that: https://www.balena.io/docs/reference/OS/network/2.x/#creating-a-hotspot

Thanks,
Zahari

Hi @majorz,

Thanks for the response.

Our AP is already up and running using hostapd and dnsmasq all kicked off and controlled with some python scripts (the usage of the AP is fairly specific and we need to integrate with the AP handles and whatnot).

So, we have the hotspot portion of the functionality down and working but we need to bridge (or something) the hotspot interface (wlan0) to … x… that provides connected devices with internet access.

I think that your solution might cause conflicts with that, unless I’m mistaken?

If you are using hostapd, then you may add some NAT rules to enable Internet connection sharing: https://nikunjlahoti.wordpress.com/2016/09/10/share-internet-soft-ap-hostapd-via-nat/

In addition to the usual rules you may need to add something specific to our OS - iptables -P FORWARD ACCEPT.

Depending on the use-case you may either go with pure NetworkManager supported solution like the first one I described, or if you have to parametrize more settings then you may do the custom hostapd/dnsmasq solution. NetworkManager under the hood also uses those, however it does not allow so much parametrization, although it should be sufficient for the majority of the use-cases.

Thanks,
Zahari

Hi @majorz,

Thanks for the pointers, we’ll give it a look and will update with results.