Byzantium, a bootable Linux with "Ad-hoc wireless mesh networking for the zombie apocalypse"

The Doctor [412/724/301/703] [ZS] sez, "Project Byzantium is a working group of the HacDC hackerspace, and is a live distribution of Linux for easily and rapidly deploying ad-hoc wireless mesh networks for the purpose of emergency communications. They presented last weekend in New York City at HOPE Number Nine and announced their second major release (v0.2a) on stage. They also gave away 500 copies on CD-ROM at the conference. They held workshops all weekend on how to use and test Byzantium Linux, and now they've released the .iso image of this release to the Internet. (Thanks, The Doctor [412/724/301/703]!)


  1. …I am going ot have to try this out. The problem is i need several devices to test out the meshability of it. Still. For folk like me that think it’s a neat idea but don’t know how ot make the whole ‘mesh’ thing work. Seems like steps in the right direction.

  2. I’ve long wondered about why mesh networking hasn’t taken off, especially in densely populated areas (like my Brooklyn).  I’m interested to see what others think the barriers to adoption are.

    1. Unless I’m horribly misunderstanding things, the routing protocols used by mesh networks don’t really scale larger than a few hundred nodes. In order to route a network of networks, you’ll need a BGP-like protocol.

      Not coincidentally, this is what I’ve had on my mind for the past few days.

      (EDIT: Also, the need to secure one’s administrative domain will not be going away.)

        1. Several thousands of nodes in three or four countries at a time?
          I have been to one of the BMeshes and there were no more than  40 nodes, deployed in a small campus.

    2.  Several big problems:
      – Getting mesh to work right is harder than it looks, especially if you care about latency.
      – Most current applications are built for accessing big web servers, not peer-to-peer, so you really need a lot of big upstream connections, and having lots of users in the mesh doesn’t make that unnecessary.
      – Most ISPs, particularly cable, discourage sharing your service.
      – Wifi range isn’t really that far, and Bluetooth is shorter.  The stuff that’s got a long range is used by the cell phone companies, and the equipment that supports it uses the cellular data connection.
      – Mesh networking needs a lot of participants with their machines turned on and active if it’s going to accomplish anything.  Most people don’t leave laptops on when they’re walking, and iPhone users probably don’t leave the Wifi on for power reasons.  So the places that you really have a bunch of potentially friendly mesh participants are coffee shops and classrooms, which already have Wifi, and mesh doesn’t really gain you a lot of range in that environment.

      1. In some scenarios, those are valid arguments.  However, mesh routing protocols have advanced in the past ten or fifteen years and don’t have those problems anymore; there are still problems but they are protocol and use case specific.  Hence, the research we did before picking a protocol.  While you /can/ hook a Byzantium node into the Net to act as a gateway, you don’t have to.  In fact, our primary use case is for emergency communication, when there probably isn’t a viable way to set up a gateway to the Net.

        In our use cases, cellular isn’t really viable, either.  Sure, you need a few machines but they’re commodity computers and not exotic hardware that you probably can’t get in a hurry.

        As for not getting enough coverage, there isn’t a technical fix for that.  The best one can do is ask others for help (which, in emergencies, one would probably be doing anyway).

        1.  Have you heard of the Serval Project? We’re attempting to build cryptographically secure, voice calls and store & forward message passing. And we are also focussed on emergency and other under-served communication needs.
          We’re trying to support use cases that don’t assume continuous network coverage, so we’ve made a few assumptions that currently won’t scale well on a large IP based mesh network.
          Though our focus is currently on supporting android phones. Our back end daemon could be run on just about anything, though it still needs a lot of work.

          1.  Yes, we have – you’re aiming for Android and using the BATMAN-advanced protocol, if I recall correctly.  You’re on our radar but we want to finish up with Commotion and the FNF first (because they use the same routing protocol, which we already have integrated with Byzantium Linux).  We already have a BATMAN-adv in package control.

    1. Yeah, the developers had to agree to limit usage to the zombie end times, at the request of the DHS.  It may limit the usefulness of Byzantium, but I’ll be laughing and posting on Facebook while the zombies eat your brains.

    2.  It’s a joke that not all of us are into, but you have to admit, that makes it memorable.  Plus, it’s said that if you’re ready for zombies, you’re ready for anything.

  3. I wonder if OpenFlow could manage mesh networks. Each node could dynamically join a distributed heirarchy of routers and co-operatively decide how to distribute traffic, containing a complete picture of the local section of mesh, routing around downed nodes or saturated links.

    1. It’s an interesting idea, but mesh networks are inherently non-hierarchical.  Hierarchical networks often have single points of failure that make it possible to partition the network with a single failure.  Plus, they require a certain amount of collusion, and in an emergency you don’t have time for that sort of thing.  Meshes built with Byzantium Linux automatically converge without any user interaction.  Also, mesh nodes by definition have a view of the local mesh because they exchange IP routes with one another to know where to send traffic to and through.

    1.  This is our second major release, plus we’ve been deploying it in public for stress testing (like guerilla wireless at the US Science and Engineering Festival a few months back).

    1.  It’s a great idea, and you can do this.. but in an emergency (say, Katrina or the storm that blew through DC a few weekends ago) do you really have time to dig through your wireless routers, see if they can run OpenWRT, try to download babeld.apk (uh-oh – no connectivity, bit of a problem there)…?

      You don’t need a big computer as a mesh router, either.  I test on an $80us netbook bought from a local drugstore (800MHz, 1GB RAM) and it works just fine.

      The idea is that you can take a spare laptop or netbook that’s you don’t use anymore because it’s too old (or pick up a chinzy one at a thrift store), boot from a USB key, and with a few mouse clicks be up, running, and doing something else.

      1. In an emergency, I’m not really going to be able to do download Byzantium off the Internet and configure a computer system from scratch for it either.
        I actually already have two tp-link routers sitting here running Open WRT. They cost me a total of about $40.

        1.  For what it’s worth, we have copies of Byzantium floating around in our daily carry.  After it boots, the boot media can be ejected and handed off to someone else to boot another node.

          By the bye, if you install the babeld APK on your routers, you’ll be good to go to interoperate with us, just set the right BSSID in addition to running babeld.

    2. There are already plenty of other mesh networking projects that are targeting OpenWRT, some of which we are working with to ensure interoperability. However, when a disaster strikes, you probably won’t have time to order special parts from NewEgg to build your network. Even if you had the Internet access to get your order through, how would they deliver it to you if the roads are flooded (Katrina) or the port is grid-locked with ships bringing food and medical supplies (Port-au-Prince)?

      If you happen to have that hardware on hand already, then by all means use it. Prep it now, before you need it. All the software you need is already available in the OpenWRT repository.

    3.  You do realize that OpenWRT is just another linux distribution, right? There is nothing that prevents one from taking the magic sauce from Byzantium and putting it on some consumer routing hardware, such as your TP-LINK router.

      1. The point was that they should have started with Open WRT and helped it, not created a new Linux distro meant for full computer systems to do a router’s job.

        1. OpenWRT is already capable of it.  I don’t know how long the APK’s been in their package repos, but I’d guess for better than two years (judging by our first two dev sprints in early 2011).

        2. Like I said, there are plenty of projects already doing just that, and we are working in cooperation with them. We are focused on building a platform for rapidly bootstrapping a temporary mesh network in an emergency. Normal x86 hardware is far more common than obscure OpenWRT compatible devices. Both will play a part in the final, real-world solution. We’re just providing another option which we believe would be valuable in situations where having enough OpenWRT routers is not a given. If you have an OpenWRT router, great! But what about your neighbors? What about their neighbors? Byzantium can help fill those gaps.

          I would also point out that we’re not trying to build a mesh networking solution for all possible use cases of mesh networking. We’re focused specifically on temporary, emergency mesh network. If you’re building a municipal or community wireless network, there are other projects we could recommend which DO use OpenWRT firmwares, such as Commotion Wireless. And we are in contact with the Commotion developers working towards interoperability of our networks so that Byzantium and Commotion will seamlessly interoperate and plug each others holes in coverage.

    1.  Kellis-Amberlee disease amplifies in mammals over about 40 pounds, and dogs that are smaller than that aren’t much use in stopping zombies.

      Mira Grant sleeps with a machete under her bed, and thinks you should too…

    1. I’m rather surprised they went with ‘Byzantium’ nomenclature. Between the connotations of ‘byzantine’ as synonym for needlessly obscure and over-complex, the cultural tradition of blinding and crippling those who fell afoul of local politics, the outsourcing of defence to a bunch of mercenaries, the centuries of vicious theological infighting, and, of course, the whole KO’ed by Turk OS thing, it’s hardly a well-omened name.

      1. We actually took the name from Byzantine fault tolerance:

        As for the connotations you state we’re shooting for non-obscure (we made it onto Boing Boing, after all) and as easy to set up as a Linksys router (aiming for “click this button and you’re done”).  As for local politics, there is no central body controlling the mesh so local politics are more difficult to use as a weapon.

        Now, if you’d like to help us fix some of these perceived problems, we are an open source project and anyone who would like to help is invited to join our mailing list and contribute.

Comments are closed.