Home » Articles » A Noob’s Guide to Mesh Networking
Click Here To Hide Tor

A Noob’s Guide to Mesh Networking

Have you ever seen Shadowmaster’s Web Hierarchy Primer? A Redditor once referred to it as “the REAL guide to the deep web.”

I mention this because one section of it describes what are called “Private Networks,” and I quote:

These networks do not require Internet access. Examples: PANs (Personal Area Networks), LANs (Local Area Networks),WANs (Wide Area Networks). PANs are very short-range networks, connecting devices with technologies like bluetooth. LANs are short-range networks, connecting devices via routers or Ethernet cables. WANs are broad-range networks, capable of spanning the globe.

So where do open mesh networks fit into all this? A wireless mesh network is created by connecting wireless access points at each user’s location. They would probably be analogous to the Personal Area Networks or Local Area Networks.

What’s interesting about them is that they could potentially provide competition for the traditional internet infrastructure as we know it – independent of ISPs. I discussed two of these networks in the article Netsukuku and GNUnet: Viable Tor Alternatives?

Though those networks are some of the better known mesh protocols, there are over 70 competing schemes for routing packets across mesh networks in existence, with more in development – which is why I’ll only elaborate on a few here.

CCNx

CCNx was one of the first mesh networks I was able to connect to. In their words, “The vision of Project CCNx® is to develop, promote and evaluate a new approach to a communication architecture we call content-centric networking.”

Project CCNx is sponsored by the Palo Alto Research Center (PARC). They have created a new networking architecture that they call Content-Centric Networking (CCN). As opposed to IP-based Internet architecture, CCN makes content directly addressable and routable through a name-based system.

The main principles of the system are:

  • Content should be reachable by name, as opposed to a machine address. The process of using names to access information is more efficient than using IP and MAC addresses.
  • Content should be safeguarded, instead of the connection (e.g. HTTPS); the data is what’s most important, so that’s what should be defended.
  • Computing and memory can be programmed into the network as well, making up a full P2P network.

To see CCNx’s protocol architecture in more detail, read CCNx 1.0 Protocol Architecture.

You may wonder, can I actually connect to this network? Yes, in fact, you can, although like its mesh-routing peers, CCNx requires at least some prior knowledge. The source code is available at CCNx Sources. PARC encourages developers to experiment with it and create original apps, etc.

I also found a mobile CCNx relay for Android devices (developed by Razortooth Communications), which you can download at CCNx TxRxRelay. I can vouch that it works, although I have yet to connect to any peers. Anybody else want to be my wireless mesh neighbor?

This is quite a condensement of the material, but some of the links will explain in greater detail. As the network catches on with more people, it’s likely that it will have more functionality.

Cjdns

Cjdns, like CCNx, is a networking protocol. Its creator, Caleb James DeLisle (a.k.a. cjdelisle), wanted to create a network that was simple to set up, but also fast and secure.

The protocol implements an encrypted IPv6 network. It allocates addresses using public-key cryptography, while using a distributed hash table (DHT) for routing. In this way, it’s very similar to the Tox instant messenger, the YaCy search engine, and Freenet.

Cjdns communicates with other computer programs through a TUN device; the computer interprets this as a network interface that would accept IP datagrams.

You may ask, so, why should I care? Well, if you’re a user of Tor, I2P, or other anonymity networks, then this is right up your alley! Cjdns only allows computers to communicate with one another after they have been verified cryptographically, therefore leaving very little chance for an intruder to spy on their traffic.

Like Tor’s hidden services, cjdns addresses are generated via a secure hash algorithm. In this case, the addresses are the first 16 bytes (128 bits) of the double SHA-512 of the public key. It is required, however, that all addresses begin with the byte 0xFC, which is a private address (a.k.a. a unique local address or ULA). Follow so far?

If not, DeLisle’s Github repository for cjdns may explain a bit further.

The main point is that cjdns was designed with security as a top priority, yet it doesn’t have to load slowly either (as is one of the common complaints about the Tor network). I suggest you try it.

I should also mention that there’s another network by the name of Hyperboria that uses the cjdns routing protocol. Hyperboria is a P2P IPv6 network that features such things as:

  • Automatic end-to-end encryption
  • Distributed IP address allocation
  • DHT-based Source Routing

Hyperboria’s motto is “The privacy friendly network without borders.” If you have the opportunity to connect to cjdns and like it, then I would further recommend you try out Hyperboria as well.

Heck, how can you not like a network who took part in the Wireless Battle of the Mesh?

Libre Mesh (LiMe)

The Libre Mesh project (LiMe) was started in 2013, by a group of network activists from a number of different countries.

Like CCNx, the project was founded with several philosophical goals in mind:

  • It’s an open network; anyone can connect with the right hardware.
  • It’s neutral; there are no restrictions on the type, origin, or destination of the data.
  • It’s free, hence the Spanish word “libre”; it has no restrictions.

The “project” isn’t one piece of hardware or software in and of itself – it consists of the development of several tools. Libre Mesh’s firmware will create the possibility to deploy automatically configurable multi-radio mesh networks.

The network architecture, as you can see in the above diagram, is based in two layers:

  • Cloud Layer 2: this uses the dynamic routing protocol known as BATMAN-ADV. B.A.T.M.A.N. stands for “Better Approach to Mobile Ad-Hoc Networking.” (They have their own site at WikiStart – OpenMesh – B.A.T.M.A.N.)
  • Network Layer 3: this uses, by default, the routing protocol BMX (BatMan-eXperimental). BMX6 (and its latest version, BMX7) is an IPV6 native dynamic routing protocol that boasts advanced features.

To see more details about how Libre Mesh works, visit Libre Mesh: Objectives to Achieve. I have yet to actually connect to LiMe, but I’ll leave that up to you, my fellow dark web explorers. You can download the precompiled binaries at Index of /community_chaos.

Let’s not forget – they also have a GitHub repository at Libre Mesh.

The Network is Out There…

Besides the three networks above, there are dozens of other mesh networks that are either active, or being developed. So, if none of those interest you, check out some of these links:

OLPC Mesh Network

Digitata

SMesh

Babel

SolarMESH

Ronja

That being said, it looks as though there’s a much larger “dark web” than I ever could have imagined. Time to explore, is it not?

3 comments

  1. great article, thank you deepdotweb!

  2. great article, can’t wait for more.

  3. Hello, I’m a CJDNS developer, @kylerschin . I just want to thank you for making this awesome article. We could really use your help! Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

Captcha: *