Mesh Node HOWTO: Difference between revisions
(→cjdns) |
|||
Line 40: | Line 40: | ||
===olsrd=== | ===olsrd=== | ||
=== | Optimized Link State Routing Daemon is packaged in Debian. | ||
https://packages.debian.org/search?suite=jessie&searchon=names&keywords=olsrd | |||
===Babel=== | |||
Babel is the routing protocol developed by HacDC's Byzantium project. | |||
===BATMAN=== | ===BATMAN=== | ||
Better Approach to Mobile Ad-Hoc Networking is a project related in some way to FreiFunk. | |||
====batmand==== | ====batmand==== | ||
====batctl==== | ====batctl==== |
Revision as of 21:13, 3 December 2016
Following are instructions to set up a mesh-networking node in Debian. This guide assumes Debian Stable, jessie or later. If you are unsure of which release of Debian you are using, try the command lsb_release -a
This is a step-by-step guide to help in understanding the process. If you want easy deployment, see http://libre-mesh.org/howitworks.html, OpenWRT, or other projects that will be listed here.
Set up hardware
First you will need to verify that your radio supports mesh mode or IBSS mode. These two modes are the new version of what used to be called "Repeater" and "Ad Hoc" modes. No mode called "Ad Hoc" exists any more in the
iw
tool.
iwconfig
in Jessie still supports Ad-Hoc mode. https://wireless.wiki.kernel.org/en/users/drivers uses the mesh / IBSS terminology, so this guide will standardize on that.
The difference between the two modes
https://wireless.wiki.kernel.org/en/users/documentation/modes
From the
iwconfig
man page:
The mode can be Ad-Hoc (network composed of only one cell and without Access Point), Managed (node connects to a network composed of many Access Points, with roaming), Master (the node is the synchronisation master or acts as an Access Point), Repeater (the node forwards packets between other wire‐ less nodes), Secondary (the node acts as a backup mas‐ ter/repeater), Monitor (the node is not associated with any cell and passively monitor all packets on the frequency) or Auto.
Firmware
Once you have verified that your radio hardware supports the requisite mode, you must ensure that the correct firmware is installed to make it work properly. Some radios will still work with limited functionality without the correct firmware file installed, which can be confusing.
Kernel module / driver
https://wireless.wiki.kernel.org/en/users/drivers contains a list and feature matrix of available kernel modules.
Of course, your system should detect and use the correct kernel module on its own; use
lsmod
to check once you have verified the correct chipset ID of the radio hardware using lspci / lsusb as appropriate.
Choosing and installing a mesh routing program
cjdns
CJDNS is an all-in-one networking stack authored mostly (entirely?) by Caleb James Delisle (cjd, not to be confused with [djb]). It offers a host of excellent features such as end-to-end encryption, zeroconf, and other nice things. It has a strange build system (nodejs - based, but not one of the existing node libs for this purpose) and can be difficult in deployment. Joining a cjdns mesh requires interaction with a human being to acquire a key. To my knowledge cjdns is not packaged for any Linux distribution.
olsrd
Optimized Link State Routing Daemon is packaged in Debian.
https://packages.debian.org/search?suite=jessie&searchon=names&keywords=olsrd
Babel
Babel is the routing protocol developed by HacDC's Byzantium project.
BATMAN
Better Approach to Mobile Ad-Hoc Networking is a project related in some way to FreiFunk.
batmand
batctl
batman-adv
Setting up the device
Preparing the interface
Adding the interface to the mesh
Setting up services
When you have verified that the