Centralized control is a interesting feature for some kind of network deployments.
Maybe not for communities but for private deployments would be useful (or even a need).
To control the nodes in remote we have a VPN overlay between all the existing nodes of a deployment
and a central server placed somewhere in the Internet.
The VPN is made using TINC software, a decentralized virtual private network where each node only needs to
connect to another one (not like OpenVPN or N2N where all nodes must connect to a central one).
So, the GateWays nodes of the mesh network will connect to the controller server (in the Internet) and the
non-GW nodes will connect to the GW nodes. Thus there won't be extra internet traffic from each node to the
server and the overhead will be very very small.
To simplify the VPN overlay we have created two new packets:
- SyncTincVPN an OpenWRT packet installed in the mesh nodes. It connects to the web server (tincvpn.qmp.cat by default)
and registers himself as a mesh node to get the Tinc configuration from the web front-end. So it is a zero-config program which automatically adds the node to the VPN.
Once the nodes have connection to the VPN and to the control server we are able to control them in remote and
fetch statistics to make a nice web page for the users.
To configure the nodes we are gonna use rUCI which is a small software to push remote UCI configurations. However we are planning to rewrite it to use GIT and add some new features.
To fetch statistics we can use SSH, SNMP or even MUNIN, it is up to the server admin.