1

Simple Issue: I cannot ping the Internet after creating a bridge on a mesh node.

A Raspberry Pi mesh node, part of a batman-adv mesh network and set up as an access point with hostapd, cannot access internet after its batman-adv interface is bridged for the AP. Classic example that points to the routes/gateways being incorrect, but I've tried all that; I think batman-adv makes this more complex...

On a mesh node, setup as an access point [AP node], at the point that bat0 [i.e. the batman-adv interface] and wlan1 [i.e. the AP wireless interface] are bridged to br1, the AP nodes loses connectivity to the internet locally [e.g. ping fails 8.8.8.8]. This makes sense because prior to the bridge, batman-adv creates the gateway over bat0 to connect to the server node and gain internet access via dhcp provided by server node to client node [i.e. AP node]. Now the bridge, br1, enslaves interface, bat0, thus we cannot connect to it any longer. Similarly, it makes sense that after the br1 creation, the AP works just fine [i.e. connect laptops, mobile devices reach the Internet through the AP]. This tells me the connection between br1 and the internet works fine.

I just cannot figure out how to create an interface that can be used locally on the AP node to reach the internet as well after br1 is created. I think this is a very basic networking thing, but I’m learning from all different angles and really do not understand routes, IPs and bridges fundamentally to understand where to go from here.

On the AP node, I can ping other nodes and, obviously, see other nodes via batman-adv [i.e. sudo batctl -m bat0 o]. I’ve tried manually creating routes, but that doesn’t work; neither does a static IP. I’ve tried putting in various nat’ing on the server node [and AP node], but that doesn't seem to help either. I’m refraining from any log files and just hoping to get some theoretical guidance. Believe me, I’ve been in the weeds for nearly a week - I’ve read a ton of tutorials and other posts on the technical side. I think I’m missing something very high level.

Lastly, I have tried to create an interface via iw dev wlan0 add interface loca_internet_access type ad-hoc [also tried all other types], but I continuously get “device or resource busy (-16)” error. This happens even after the plain vanilla Jessie-Lite install- does RPis have an issue with assigning an interface to wlan0? More likely, I think I do not understand fundamentally how virtual interfaces are created on top of physical or wireless interfaces.

Thanks in advance for the help!!!

In case that isn’t clear enough of the setup...

Functional setup: I have created a mesh network of several Raspberry Pi 3s [RPis]. I am using the RPis for a variety of things [e.g. streaming video, audio announcements] as well as an AP to allow people to connect their mobile devices for internet access. Internet access is given via multiple ISP modems via an RPi.

RPi and Mesh Technical details: All RPis have vanilla Jessie-Lite [i.e. ubuntu]. All nodes have batman-adv installed. All nodes communicate via batctl over wlan0 [i.e. the onboard RPi WiFi]. Nodes connected to ISP modems are configured as batman-adv server nodes. All others are configured as client nodes.

Networking and AP Technical details: On the server nodes [i.e. those with eth0 hard-wired to the ISP modem], I have added nat’ing, though I do not think this is necessary as the system works as-is without it [and doesn’t work with it]. I do NOT run a DHCP server as the ISP handles this [except in the case of the current issue]. Due to the current issue, I have AP nodes and “worker” nodes. The AP nodes have hostapd running. These nodes also have the wlan1 as the AP access point via USB WiFi adapter.

0 Answers0