Mesh Networks

At Offline Camp Oregon I had the pleasure of joining with many others to discuss a future of the web that devolves power and control over the physical networks that connect us, and grants it to the communities that these systems serve. With nation-states having become net neutrality’s last line of defense, and with many of those states in regulatory capture by telecoms, it becomes clearer every day that a libre web will require that we establish redundant, alternative physical infrastructure to support it. As long as the telcos own the wires, our traffic is subject to their whims.

One way we can lay that infrastructure is through mesh networks. A mesh network is a form of ad-hoc network where routers in the network “connect directly, dynamically, and non-hierarchically” (Wikipedia) in order to route data between clients efficiently. By placing mesh routers in an area, you can establish connectivity between all clients in range, and all of them can pass traffic as equals. As you add more routers to the mesh, more paths between clients appear, and so bandwidth increases as each path can handle a portion of the request. This fortifies the network against loss of nodes.

Mesh network diagram (Image credit: Wikipedia)

The Border Gateway Protocol

As a comparison, the systems we use today rely on heavily centralized and hierarchical infrastructure: when you visit a web page, your request goes through your router to a system of regional switches that eventually make it to the network backbone, where gateway servers following the Border Gateway Protocol (BGP) determine which regional switch to pass the request to. The BGP is a trustful routing system where routers declare rules like “I am the best path between point X and Y” and other routers just… believe them.

This system gets your request to the intended host, and ferries back the response. Its trustfulness has been a boon and a curse to nation-states, who have largely assumed responsibility for the network’s functioning. A centralized system can be turned off with a few phone calls from authorities, but just as easily a gateway server controlled by a hostile entity can declare itself the best route for traffic that it has no business intercepting. By doing this, an entity could intercept sensitive traffic as it passes through the gateway.

BGP incidents happen, but the BGP is so arcane and so critical that nation-states afford each other a great deal of slack in these cases. If they decided to escalate the situation, it would call into question the integrity of the network. If the United States decided to accuse China of manipulating routing information, they would have little choice but to bring down the whole system.

Likewise, a nation-state can shut down local gateways to prevent traffic from reaching the network backbone, effectively shutting down the web in an area. This also happens, and the only way to get around it is to deploy alternative infrastructure that can’t be turned off so easily. Mesh networks are ideal for this.

Disaster Planning

When networking infrastructure fails, whether by natural disaster or political directive, the need for networking does not diminish. Much of our lives occur over networks now. It’s how we communicate and share, how we organize ourselves and our activities. We treat the web like a file system, and websites like software applications. Losing access to the network complicates finding a job or a place to live. In a disaster scenario, losing the network deprives survivors of a means to reach their families or rescue workers, and eliminates a way for rescue workers to coordinate their efforts.

In a mesh network where routers maintain numerous routes to destinations, routers can overcome damage to physical infrastructure by using these auxiliary routes. Rescue workers can also lay down mesh infrastructure after a disaster as a workaround to restoring underground cables or power lines, allowing them to coordinate and communicate wirelessly.

Folks affected by disasters (such as those in Puerto Rico and Detroit) often develop and maintain their own mesh networks. Purveyors of centralized networking infrastructure often refuse to lay wire to them because it’s too expensive, or they dawdle on restoring existing infrastructure for similar reasons. The people understand their own need for the network.

Volunteers in Detroit work to set up a mesh network. (Image Credit: Motherboard)

How Mesh Works

Routers within a mesh forward traffic according to the routing protocol used by the mesh. For example, rather than trusting authoritative gateway servers, a routing protocol might instruct each router to maintain a list of routes by traversing the network, rather than by believing the routes that others publish. Some routing protocols traverse the network at random or regular intervals so that their list of routes is up to date when they are asked to pass traffic; this is called proactive routing. Other protocols traverse it only when they are asked to pass traffic; this is called reactive routing. Some do both. Still others rely on an internal hierarchy that remains ad-hoc but allows administrators to afford some routers more trust than others.

Freedombone is a software distribution that allows you to host a community mesh network. It uses the routing protocols used by batman-adv. Freifunk, a group operating one of the largest mesh networks in the world, maintains a software distribution called meshkit that builds on OpenWRT, “a Linux distribution for embedded devices” that can be installed on commodity and commercial routers, converting them for use in a mesh. Piratebox, a kind of wi-fi dead-drop, also builds on OpenWRT.

Inexpensive hardware can be used to build a community mesh network. (Image credit: Piratebox)

If you’ve never heard of mesh networking, it’s not because nobody is working on it. The need for redundant, alternative, accessible networking infrastructure grows and grows, but the need did not start recently. People have been hacking on this problem for decades, and we now have the opportunity to utilize their work to devolve network governance to the communities they serve.

We can do this. We are already doing it. Together, we can put networks in the hands of the communities they serve. Together we can build a better web.

Editor’s Note: Curious to learn more about the decentralized web? Check out this collection of articles on mesh networks, peer-to-peer web browsers, and more.