From ed52903b5dbe5bebc263a697b6475e05373eadff Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 5 Sep 2015 10:07:25 +0100 Subject: [PATCH] Starting on mesh documentation --- README.md | 3 +-- doc/EN/mesh.org | 41 +++++++++++++++++++++++++++++++++++++++++ doc/EN/variants.org | 3 +-- 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 doc/EN/mesh.org diff --git a/README.md b/README.md index 69af4654..7a895dc4 100644 --- a/README.md +++ b/README.md @@ -10,8 +10,7 @@ The Freedombone system can be installed onto a Beaglebone Black, or any system c - **Writer**: Host your blog and wiki - **Chat**: Encrypted IRC, XMPP, Tox and VoIP services for one-to-one and many-to-many chat - **Developer**: Host your own git projects with a Github-like user interface - - **Mesh**: mesh network bridge to the internet - - **Nonmailbox**: Installs eveything except for the email server + - **Mesh**: A wireless mesh network which is like the internet, but not the internet Freedombone has an emphasis on security and privacy, and when installed on a Beaglebone Black it uses the built-in hardware random number generator as an entropy source. All communications with the box are encrypted by default using the recommendations from https://bettercrypto.org. The firewall is configured to only allow communications on the necessary ports and to drop all other packets, icmp is disabled by default, emails are stored in encrypted form using your public key and time synchronisation occurs via TLS only. Backups are also encrypted and can be local or remote. diff --git a/doc/EN/mesh.org b/doc/EN/mesh.org new file mode 100644 index 00000000..c592964c --- /dev/null +++ b/doc/EN/mesh.org @@ -0,0 +1,41 @@ +#+TITLE: +#+AUTHOR: Bob Mottram +#+EMAIL: bob@robotics.uk.to +#+KEYWORDS: freedombox, debian, beaglebone, red matrix, email, web server, home server, internet, censorship, surveillance, social network, irc, jabber +#+DESCRIPTION: Turn the Beaglebone Black into a personal communications server +#+OPTIONS: ^:nil toc:nil +#+BEGIN_CENTER +[[./images/logo.png]] +#+END_CENTER + +| [[What is a mesh network?]] | [[The Freedombone Mesh]] | [[Installation]] | + +* What is a mesh network? +The internet as it currently exists is mostly organised according to a client/server model. Servers run the web services and store the data and clients are the laptops, desktops and other devices accessing the servers. In a mesh network there isn't any clear division between clients and servers. The computers on a mesh network are known as "peers" and they can perform the functions of both clients and servers. Commonly this is also known as a "peer to peer" network. + +The client/server and mesh network models have advantages and disadvantages. If the server in a client/server system fails then you can have catastrophic service outages which affect many users. If a peer in a mesh network fails then the other peers may be mostly unaffected and communications can continue. The disadvantage of mesh networks is that each peer relays data for other peers and so the bandwidth usage by each peer may be higher than for a client in a client/server system. However, with modern hardware that's not much of an issue. + +Mesh networks are useful for building local and highly resillient communications infrastructure which can be put together rapidly, in situations where the ordinary internet is either unavailable or untrustworthy. + +Example use cases would be: + + * Conferences / Exhibitions + * Local community networks, not run by telcos or ISPs + * Emergency services / Disaster relief + * Camp sites + * War zones + * Scientific expeditions to remote areas + * Onboard ships + * Underground (mines/caves) + * Protests + +* The Freedombone Mesh +The Freedombone mesh is offline - in the sense of not being part of the larger internet - and consists of a set of computers with the system installed communicating wirelessly using ordinary wifi. Peers can enter or leave the network and it will adjust automatically. All communications between peers is end-to-end encrypted, so although it's easy to join the network it's not easy to passively evesdrop. +* Installation +** Two types of system +Installation is split into two categories, /routers/ and /user devices/. + +A router is a computer which is dedicated to moving network traffic and building out the mesh infrastructure. It's not primarily intended to have a user interface. Hardware such as the Beaglebone Black is ideal for this, because it's small, inexpensive and doesn't consume much electrical power and so can be fitted in any location where an electricity supply is available. Small computers can also be battery operated or solar powered so that the mesh need not be statically sited. They could be included in a backpack for camping, fitted within moving vehicles, or on protest placards to help provide a local and transient communications system. + +User devices are the computers with which you would typically access the internet - laptops, desktop machines, netbooks or any other device which can run a Debian-based distro with a working wifi connection. +** Installing on routers diff --git a/doc/EN/variants.org b/doc/EN/variants.org index ffd893e4..3f547887 100644 --- a/doc/EN/variants.org +++ b/doc/EN/variants.org @@ -19,5 +19,4 @@ Freedombone may be installed either in its entirety or as different variants wit | *Writer* | Host your blog and wiki | | *Chat* | Encrypted IRC and XMPP services for one-to-one and many-to-many chat | | *Developer* | Github-like system to host your software projects | -| *Mesh* | Mesh network bridge to the internet | -| *Nonmailbox* | Installs eveything except for the email server | +| *Mesh* | A wireless mesh network which is like the internet, but not the internet |