Mesh Networking

Posted by kenshen 
This forum is currently read only. You can not log in or make any changes. This is a temporary situation.
Now, this forum is in read-only mode. You find details Details hereContinue on /r/PirateBox
Mesh Networking
December 21, 2017 03:46AM
It's been years since I've been on these forms and I'm glad to be back. I want to set pirate boxes up as nodes and was wondering what is the best protocol / back end to use for piratebox?? Cjdns Batman Babel or something else?? Also is there a good guide I can follow??
Re: Mesh Networking
December 21, 2017 08:34PM
*sigh*
Protocol discussion is like doing a conversation about the one and only religion.

TL;DR: Depends on the use case. We prepared a lot to run BATMAN-adv together with a self configuring ipv6 network.

-- long read.
BATMAN-adv is running a layer 2 protocol, which allows broadcasts and other traffic go through.
Our implementation is currently a package for openwrt, even with enabled and working mesh you do not see a real difference. You need to know the remote IPv6 IP to connect through the network to another node. There is a howto to get it working on the Pi with a second wifi adapter. On OpenWrt you have to do the following steps
/etc/init.d/mesh enable
/etc/init.d/piratebox avahi
sync && reboot
cjdns is ideal if your want to have encrypted traffic, which can be route-able through internet as well. But no broadcast per default.
BABEL or other Layer3 protocol need an instance which gives you an IP address to avoid duplicate entries. If you have the control over each node, it is a possible solution.
Re: Mesh Networking
December 21, 2017 10:30PM
So have you guys thought about building it into pirate box? A mesh protocol I mean
Re: Mesh Networking
December 22, 2017 06:08AM
Creating an own mesh network protocol is out of scope.
But I guess your are not talking about the networking and but about syncing? I am regular investigating what can be done, which suits the case PirateBox. But I haven’t found a solution or an implementation which I can do for myself (still the one is the highest % of dedication to the project)
Re: Mesh Networking
December 22, 2017 04:48PM
Sort of I was thinking about pre packaging the most common / popular protocols as optional installable packages that are pre configured ie. When I ssh into pirate box I see a list of commands that I can run to enable optional features for piratebox like the image board etc. It'd be nice if there was a mesh network option on that list that allowed me to select from a list of popular protocols to setup with.
Re: Mesh Networking
December 23, 2017 07:44AM
But what do you want to achieve with such a preconfigured list of protocols?
Do you want to connect to existing mesh networks? Nope, that won't work because each of (for example Freifunk) has different configuration aspects, which we can't cover.

Please tell us about your idea.
Re: Mesh Networking
December 23, 2017 05:13PM
I was thinking that pirate box would be a great way to start a newb friendly mesh network or at least more newb friendly then following the long complicated list of steps to install cjdns Batman etc from scratch. I imagine IT Billy down the street being able to easily mass produce these for his neighbors because

A. Pirate box is already very Node like in configuration in the sense of it essentially being a routed website if you connect several of them together there's a good back end for a mesh.

B. Is very easy to install or at least the raspberry pi version is although I'd imagine particular focus on the openwrt side and even then it's very easy to install openwrt and configure pirate box.

C. The mesh network would be easy to install having a preconfigured set of popular protocols that are pre installed and could be just as easily enabled as the image board or php etc is in piratebox already.

So basically my idea stems from the fact that I think piratebox is an easily installed piece of software that has a lot of potential in making easily deployed mesh networks. I think if you just prepackaged some of the more popular protocols with an easy to install script it'd make deploying a community mesh net a lot easier.



Edited 2 time(s). Last edit at 12/23/2017 05:49PM by kenshen.
Re: Mesh Networking
December 23, 2017 08:33PM
I am following your points to 100%, aside the different protocol question. The reason is that different protocols makes it difficult as hell to understand what to do. Especially if you want to go further then a few mesh nodem it becomes really a task to manage it.

OpenWrt - Batman etc. is preinstalled - two commands and the mesh is ready to go.
RPi - Batman etc. is preinstalled. We are missing a set of configuration and a few scripts to get it ready to go ( RPi mesh mod.

But after activating the mesh network.. it let the user be clueless what to do next.

If you want to have a -ready to go- mesh network image: have a look at Byzantium. (seems the project is dead?! :-((( *sigh*) - Or Subnodes.

Our statements of direction:
a) PirateBox is a piece of software which should easily do local filesharing.
b) PirateBox collects no access or connection logs.
c) We have an education purpose in terms of Linux & network learning.
d) The PirateBox network (AP) should be open to easy networking with other clients.
e) PirateBox is customizable and gives the user the possiblity to share his world (in terms of thoughts, files, visions) with other people.

These are the main goals of the project. The Mesh-Network was ment to be an easy way to have a Node to Node synchronization. I always have in focus to open up the networking layer in a way to no limit the purpose of the project.

But before we focus on adding more and more features to the Box, we try to get the stuff we currently have forward..
- to have one programming language in the build
- Easier customable directory listing
- Easily activate-able mesh network, which is transparent to the user experience.
Re: Mesh Networking
December 24, 2017 12:24AM
I guess when I said the popular protocols I was just reading your post above an some other threads about how not one protocol serves all issues surrounding but beyond that I totally get what your saying. So batman is already preinstalled I actually didn't know that huh. Well thanks for being so open to suggestions :-) is there anything I can do to help you guys / this project?? I'm not the best programmer but I'm slowly learning beyond that though I can help.
Re: Mesh Networking
December 24, 2017 05:26AM
Any help is welcome! Thank you for your offer!

If you want to support us with coding, you have different ways what to do.
I think an interesting task could be to port the directory listing of LibraryBox over to PirateBox ( Github Issue 143).
This includes
- deactivating statistic functions
- adjusting style , look and feel to current PirateBox directory listing

I recommend starting with a v1.2 Pi alpha build (which is a snapshot of latest development branch of PirateBox). But you can use the daily builds for OpenWrt/LEDE based systems, too.

If you want to dig more into the mesh topic, you should have at least two RPis or two OpenWrt based hardware.