Meet Terry Gillett. Terry joined the Village Telco community early this year and purchased a couple of Mesh Potatoes. He immediately saw the opportunity that Mesh Potatoes might have for smaller networks such as a campus or small firm. However, the existing firmware for Mesh Potato was very focused on voice communication in a structured Village Telco environment. Of course it is possible to configure Mesh Potatoes in a 100 different ways but those alternative configurations can be somewhat arcane and a real barrier to alternative uses of the Mesh Potato.
Setting “smart defaults” is a key to masking complexity and lowering the barrier to uptake. Think of Google’s search minimalism after Altavista et al or Apple’s simplification of so many applications that were filled with twiddly knobs, checkboxes, and radio buttons in other operating systems that shall remain nameless. Wordpress is another great example of an application that is capable of impressive sophistication for “blogging software” yet pretty much “just works” after completely a bare minimum of setup information. Terry has taken us one giant step closer towards WordPress-like usability with his Small Enterprise – Campus Network (SECN) setup for Mesh Potatoes.
His goal to be able to serve a local network of modest size offering seamless voice and data. He wanted any Mesh Potato to pick up Internet connectivity via the ethernet port, if it could find it, and for each Mesh Potato to offer a local WiFi access point. After experimenting a little bit, he chose to install the BATMAN-ADV mesh protocol instead of BATMAN protocol we currently use. The big difference between the two protocols is that BATMAN-ADV runs at Layer 2 and BATMAN at Layer 3 of the OSI layer model. What does that mean? Well the simplest explanation is that BATMAN-ADV makes Mesh Potatoes behave as if they were all part of one big network switch which means that IP addressing and routing for the network is dramatically simplified as each Mesh Potato is effectively transparent to the IP network. This effectively removes the hassle of figuring out network addressing and Network Address Translation for Mesh Potatoes. Everything is just one flat network which means that devices can easily communicate with each other on the network. The flip side of this is that you have to be careful about what you put on the network because a poorly configured or worse infected computer can generate a lot of local network traffic. This is something we’re exploring but for a small network, BATMAN-ADV seems to work exceedingly well.
With Terry’s modifications, an SECN configured Mesh Potato network will now:
- offer an encrypted, WPA-enabled, wireless access point as well as a peer-to-peer wireless connection on each mesh Potato. This is done by creating a Virtual Access Point (VAP) on the same radio interface as the mesh. Initially we chose not to enable this by default on the core Mesh Potato distribution because we were concerned about network data load have an impact on voice quality but Terry’s work makes me think that this was a mistake. Much better to encourage use and solve the problem of over-use rather than ensure a functional but underused network;
- pick up a network connection from any DHCP-enabled Internet-connected device it is connected to the ethernet port on the Mesh Potato;
- transparently carry DHCP requests over the network to devices connected to Mesh Potatoes whether by ethernet or WiFi; and,
- offer simple on-network and also VoIP service provider configurable phone calling. Local phones can be dialed simply by entering the last 3 digits of the IP address of the Mesh Potato you want to call or the Mesh Potatoes can be registered with any VoIP service provider.
The long and short of this is that if you plug in a bunch of SECN-configured Mesh Potatoes and make sure at least one is connected to something simple like a DHCP-enabled ADSL router, then you have a transparent, highly-adaptable technology for creating a robust local telephone and data network with no wires.
So, did Terry do this all by himself? Without Terry’s interest and hard work at testing, reconfiguring, debugging the SECN version might never have happened but one of the great things about Open Source is that one is rarely starting from scratch. He was able to build on the configuration that Elektra built for the Mesh Potato which in turn built on great Open Source initiatives like OpenWRT, Asterisk, and others. And at least a dozen people in the Village Telco community were there to help him solve problems and answer questions. Better still his work inspired others to try out new configurations with the Mesh Potato and Elektra was inspired to take the set of instructions that he had developed and embed them in a new Mesh Potato firmware distribution that people can use to set up smaller Village Telco networks to serve both voice and data.
If you’re interested in trying this out yourself, you’ll need a few Mesh Potatoes to start and then you’ll want to download the latest SECN firmware and flash the Mesh Potatoes with this new firmware. Terry has been developing the documentation for the SECN, the latest version of which is here. Because this is still at an early stage, that URL may change. Best to check in with the Village Telco google group to find the latest version.