[announce] Afrimesh Dashboard

30 views
Skip to first unread message

Antoine van Gelder

unread,
Feb 24, 2009, 5:42:18 PM2/24/09
to village-...@googlegroups.com, Wireless Africa, afri...@googlegroups.com
Dear mesh networkers,

It is with great pleasure that I get to make the initial announcement
of the Afrimesh dashboard project!
The ability to easily create an IP network in rural areas, developing
countries and disaster zones can significantly contribute to the
ability of people to communicate with each other.

Afrimesh builds on top of the most excellent B.A.T.M.A.N. project to
provide a simple management dashboard which enables network operators
to create and sustain a resilient communications network with a
minimum of fuss.

For the first release we are working hard towards simplifying common
tasks such as managing clients, maintaining network maps, monitoring
the network and managing bandwidth.

A live demo, managing the Afrimesh development testbed, can be viewed
at:

http://afrimesh.7degrees.co.za [1]

The current status of the software should still be considered pre-
alpha and it is only recommended that you check out the source code if
you are comfortable with a unix shell, know your way around a text
editor and are able to find and follow the badly written directions on
the wiki.

Binary packages are coming and will support the following environments:

* FreeBSD

* OpenWRT

* OpenWRT + R.O.B.I.N.

* Ubuntu

Future development direction will be largely determined by demand from
users but some ideas that have already come up include customer
billing management, telephony integration and support for building
social apps that connect mesh users with each other.

The source code is licensed under the New BSD License and is hosted at:

http://code.google.com/p/afrimesh


Finally, a very big thank you to each of Ajay, Chris, George & Kobus
from the Meraka Institute of the CSIR, Sebastian from wire.less.dk and
Steve from the Shuttleworth Foundation for the many contributions that
have made this project possible.

- antoine

[1] Yes, my routers have stickers on them. No, they are not at the
mapped locations but are in fact all on the same property. Yes,
transmitter power has been attenuated to a fraction of legally
permissible power output. No, you may not have my routers nor come
onto my property unless you have all of your paperwork in order!


--
http://7degrees.co.za
"Libré software for human education."

Antoine van Gelder

unread,
Feb 25, 2009, 3:50:18 AM2/25/09
to Ismail Dhorat, Wireless Africa

On 25 Feb 2009, at 09:47 , Ismail Dhorat wrote:

> Hi Antoine,
>
> I would like to write up a post on this.
>
> Can you tell me what the purpose of it is?


Dear Ismail,

With wireless mesh networking we are in a similar place to where we
were with normal wireless networking ten years ago.

About ten years ago you needed a high level of engineering expertise
if you wanted to have any hope of dealing with the complexities of
setting up a wireless network.

Nowadays you can walk into any computer store and buy WiFi equipment
which, without needing any special skills, you can connect together to
create a small wireless network for your office or home.

So why don't we just use normal WiFi networks for deployments in rural
areas, disaster zones or developing countries?

The answer is that, largely, we do exactly that but often folk are
running into trouble when they try to grow the network past a certain
size.

In a normal wireless network there is usually a master node on the
network which acts as the place where all the people on the network
make their connection to.

The problems start because it becomes more and more difficult for the
technology to work the bigger the ground area needing to be covered by
the master node and the more people wanting to talk to it at the same
time. In many countries there are also legal issues associated with
transmitting at higher power outputs.

The way a mesh network solves this problem is that if all the problem
are being caused by the master node not being able to keep up with the
growth of the community then let's make the network not need one and
just get rid of it!

Now, without a central point on the network to take care of passing
messages how does a message travel between different points on the
network?

The answer is that messages travel exactly in the way that it does
between people in communities using that most ancient of all
communication protocols: Word of mouth!

For instance, if I have a network node on one side of the village and
another network node on the other side of the village then in a
wireless mesh network our messages will simply be passed along by each
of the network nodes between us.

Without a central node we no longer have the problem where everyone is
trying to talk to the master node at the same time and overwhelming
its ability to pass on messages. Our transmission power now also only
has to be high enough to reach our neighbors which simplifies legal
issues and also makes more efficient use of the existing spectrum.

One of the most elegant technologies for creating this kind of mesh
network is the B.A.T.M.A.N. [1] project at http://www.open-mesh.net

The goal of the Afrimesh project is to build on their most excellent
work with software which makes it as easy to set up and sustain a
B.A.T.M.A.N. network as the consumer WiFi equipment you can buy at
your local computer dealer.

I hope I have answered your question Ismail, please do ask if you have
any more questions!

Some nice articles on these topics can also be found on Wikipedia:

http://en.wikipedia.org/wiki/Wireless_community_network
http://en.wikipedia.org/wiki/Wireless_mesh_network
http://en.wikipedia.org/wiki/Mesh_network

- antoine

[1] B.A.T.M.A.N. stands for: "Better Approach To Mobile Ad-hoc
Networking"

Antoine van Gelder

unread,
Mar 2, 2009, 1:31:48 PM3/2/09
to village-...@googlegroups.com, Wireless Africa

On 02 Mar 2009, at 17:22 , Steve Song wrote:
> Sorry for the delayed reply. Have been on leave for a week. I have
> had
> a look at the latest Afrimesh dashboard and it looks very cool.
>
> Now I have a bunch of questions.
> 1) First, just to confirm, this is all running on a Linksys WRT or
> similar?


The particular instance you're looking at on the web is installed on
an Inveneo box running FreeBSD but the systems in the development
testbed include:

. Linksys WRT54's (both older and newer versions of the hardware)
. A large cardboard box full of Meraki Minis
. A couple of Open-Mesh.com routers
. A 5ghz and a 2.4ghz Ubiquity Nanostation
. A couple of Macintoshes running OSX
. Various virtualized Linux & FreeBSD instances

The officially supported build targets will be OpenWRT, FreeBSD and
Ubuntu.


> 2) How is network authentication managed? If I have a 10 node network
> with Afrimesh running on each one, how do I add nodes to the network?
> Would the Afrimesh software just pick up on the BATMAN routing table?
> How would that all work? Is there admin and user level authentication
> for Afrimesh?


A mouthful of a question! Let me try to break it down into two chunks:

Adding nodes
------------

Network nodes and routes are picked up automatically by polling the
BATMAN visualization daemon.

Nodes can be positioned on the map either by the user as part of the
initial installation procedure or on the Network->Map by a mesh
administrator.

The way configuration information is managed also allows for initial
location and/or live location updates to occur via an embedded GPS
device.

Also, information about network routers & routes from sources _other_
than a BATMAN vis daemon can be transparently incorporated into the
system.

This allow us the option to, for example, add support for mapping an
OLSR mesh network or even non-mesh networks.


Authentication
--------------

There are two kinds of authentication we can talk about:

* Authorization to use the mesh management interface - currently I
have no access control configured on the demo page but unless anyone
wants to twist my rubber arm with a set of use-cases to support a more
complex schema I reckon we just use the built in authentication
mechanisms offered by the web server.

* Authorization for mesh clients to access the network and/or any
Internet gateways. This is currently managed by a standard Radius [1]
server which allows pretty much any kind of authentication schema you
can imagine as well as some you would rather not. I have also spoken
to Alberto about the possibility of writing a Radius authentication
module that would allow mesh nodes to authenticate against A2Billing.

[1] http://en.wikipedia.org/wiki/RADIUS

> 3) How modular is Afrimesh? For the Village Telco, we will want to
> add
> in node information related to telephone calls, numbers, usage, etc.
> How open is Afrimesh design to adding on things like this?


The short answer to your question is: Highly and very.

The long answer is this:

----------------------------------------------------------------------
WARNING WARNING - Hairy technical details ahead - WARNING WARNING

Step 1: Configure/hack the system you want to interface with to output
data in XML or JSON [2] format. These days this is not as
hard as
it used to be.

Step 2: Tell Afrimesh what the data looks like, where it lives on the
network and how it relates to the other data it knows about.
This is all done in Javascript.

Step 3: Implement any views you wish on that data in standard
HTML/Javascript. (The Map view is also implemented as HTML &
Javascript so there is no special magic or server-side
mangling required to extend the range of information that
can be overlaid.)

[2] http://www.json.org/

----------------------------------------------------------------------


The converse also applies where Afrimesh can itself act as a data
source and serve any of the information it aggregates about the
network in real-time.

> 4) For me the gold standard in mesh management interfaces is still
> OpenMesh/Meraki. I think Afrimesh comes pretty close in terms of how
> the map interface is evolving but the network graphing is obviously
> not
> there at least on a graphical level. Are there plans to integrate
> some
> graphical representations of bandwidth use?


There is a plan to integrate more graphing but there is also still a
conversation about whether it will be easier to rely on existing
software such as Nagios [3] or to build our own flashy Ajax-y ones [4]
or maybe even some kind of middle way which gives us a delicious user
experience without having to spend a lot of time re-inventing wheels.

One thing I would like to point out though is that if you look at the
Network->Health page you will see a live graph displaying Internet
traffic which is being pulled directly from my gateway router using
the standard SNMP [5] protocol.

So to give some perspective to our conversation, using afrimesh.js as
a foundation boils the implementation of that graph down to less than
twenty lines of very simple Javascript.

This holds true for any other data source on the network (SNMP or
otherwise)

Most importantly, the same technique which places the graph you're
looking at on a web page can also be used to embed it in the popups
from the Network->Map view.


Maybe a good pair of constructive questions to ask to help this
conversation along are:

1. Specifically, what kind of graphs would everyone like to see?
2. What, specifically, will being able to see each of those graphs
help you to do?

[3] http://www.nagios.org/
[4] See for e.g. http://code.google.com/p/flot/
[5] http://en.wikipedia.org/wiki/SNMP

> I have more questions but this seems like a good start. Looking
> forward
> to more. Awesome work!


Thank you Steve :)

- antoine

Ismail Dhorat

unread,
Mar 3, 2009, 4:41:03 AM3/3/09
to wireles...@googlegroups.com, village-...@googlegroups.com, afri...@googlegroups.com
Hi All,

I have written up a post on the project at:

http://www.startupafrica.com/2009/03/afrimesh-wireless-mesh-networking/

Regards,
Ismail
Reply all
Reply to author
Forward
0 new messages