<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />
  </head>
  <body>
      <p>–
layout: post
title:  Mesh-Technik der Firmware
author: Joda Stößer
date:   2018-07-18 17:57:58 +0200

Wir <a href="./Firmware-Status-Quo.html">schrieben über den Status Quo der Firmware</a>, hier wollen wir kurz auf die dahinter liegende Mesh-Technik eingehen.</p>

<p>Aktuell basiert das Bremer Freifunk Netz auf dem Mesh-Protokoll <code class="highlighter-rouge">b.a.t.m.a.n</code> und nutzt für Kommunikation zwischen den Knoten die <code class="highlighter-rouge">Ad-hoc</code> oder <code class="highlighter-rouge">IBSS</code>-Technik. Beide waren als sie bei uns eingeführt wurden, aus unserer Sicht die besten Optionen zu der Zeit.</p>

<h6><code class="highlighter-rouge">b.a.t.m.a.n</code></h6>
<p>Dieses Mesh-Protokoll baut ein Layer2-Netzwerk auf. Dies bedeutet, alle Geräte im Bremer Freifunk Netz sind so mit einander verbunden, als würden sie alle an dem gleichen Netzwerkswitch hängen.<br>
Dies hat den Vorteil, dass die eigenen Geräte ihre IP-Adressen behalten, wenn sie sich mit einem anderen Freifunk-Gerät verbinden. Dadurch werden Verbindungen zu Servern und Diensten nicht unterbrochen. Das inkludiert zum Beispiel SSH, andere Fernwartungssoftware und manchmal auch Videos. Davon profitieren vor allem Fußgänger die sich durch ihre Bewegung ständig mit einem neuen Freifunk-Gerät verbinden.</p>

<p>Jedoch war <code class="highlighter-rouge">b.a.t.m.a.n</code> nie für große Mengen an Geräten und Knoten ausgelegt. Um seine Funktion aufrecht zu erhalten, muss jedes Gerät mit allen anderen Geräten im Netzwerk dauerhaft Informationen austauschen. Dies sorgt für ein erhebliches Grundrauschen, verringert die nutzbare Bandbreite sowie Geschwindigkeit im Freifunk und macht besonders an sehr langsamen Anschlüssen Probleme.<br>
Auch sind einige der internen Metriken zum Unterscheiden einer guten, stabilen und durchsatzstarken Verbindung von einer instabilen nicht genügend.</p>

<h6>
<code class="highlighter-rouge">Ad-hoc</code>/<code class="highlighter-rouge">IBSS</code>
</h6>
<p>Typischerweise gibt es bei der WLAN-Nutzung eine Station, den Router, und einen Client, das Nutzgerät. Der Client wählt sich bei der Station ein und eine Verbindung kommt zu Stande.<br>
Zwischen Freifunk-Knoten ist dies jedoch unbrauchbar. Alle Geräte sind gleichbereichtig, keiner ist Station, keiner Client. Dafür gibt es die <code class="highlighter-rouge">Ad-hoc</code>/<code class="highlighter-rouge">IBSS</code>-Technik. Diese ermöglicht zwei Computern sich trotz Gleichberechtigung miteinander zu verbinden.</p>

<p>Jedoch unterstützen nicht alle Geräte diese Technik wenn sie gleichzeitig auch ein Stations-Netz ausstrahlen. Manche Geräte unterstützen sie sogar komplett nicht.</p>

<h5>Zukunft</h5>
<p>Schon seit einigen Jahren wird in der <code class="highlighter-rouge">Gluon</code>-Gemeinschaft an Nachfolgetechnologien gearbeitet, jedoch haben sie erst kürzlich einen benutzbaren Zustand erreicht.<br>
Als Mesh-Protokoll geht es um <code class="highlighter-rouge">babel</code> in Zusammenspiel mit <code class="highlighter-rouge">l3roamd</code> und als Verbindungstechnik <code class="highlighter-rouge">11s</code>.</p>

<h6><code class="highlighter-rouge">babel</code></h6>
<p>Als eines der jüngeren Mesh-Protokolle, baut <code class="highlighter-rouge">babel</code> ein Layer3 Netz auf. Im Gegensatz zu <code class="highlighter-rouge">b.a.t.m.a.n</code> benötigt es massiv weniger Hintergrundkommunikation mit den anderen Knoten des Netzes. Das deutlich geringere Grundrauschen verbesserte die Performance im ganzen Netz.<br>
Auch die gewählten Routen und Wege für Pakete durch das Netz, sollen besser sein. Darüber gibt es aber jedoch keine eindeutigen Studien, vor allem nicht mit größeren Netzen.</p>

<h5><code class="highlighter-rouge">l3roamd</code></h5>
<p>Damit auch beim Einsatz von <code class="highlighter-rouge">babel</code>, Geräte, welche sich von einem Freifunk-Knoten zum nächsten bewegen, ihre IP-Adresse behalten können und somit keine Verbindungsabbrüche erfahren, muss eine zusätzliche Software eingesetzt werden: <code class="highlighter-rouge">l3roamd</code><br>
Wie der Name schon sagt, sorgt diese dafür, dass Geräte auch im Layer3-Netz “roamen”, sich also frei bewegen können, und von neuen Freifunk-Knoten wiedererkannt werden.<br>
Die Kommunikation zwischen den Freifunk-Knoten für diese Funktion, wird erneut für etwas Grundrauschen sorgen, jedoch sind wir der Hoffnung, dass sich dies in Grenzen halten wird.</p>

<h6><code class="highlighter-rouge">11s</code></h6>
<p>Eigentlich <code class="highlighter-rouge">802.11s</code> genannt, ist <code class="highlighter-rouge">11s</code> ein WLAN-Standard welcher speziell für Mesh-Netzwerke geschaffen wurde und aus zwei Teilen besteht:</p>

<ol>
  <li>einem Mesh-Protokoll</li>
  <li>einer Kommunikationstechnik</li>
</ol>

<p>Da wir unsere eigenen Mesh-Protokolle einsetzen, interessiert uns der erste Punkt nicht. Die Kommunikationstechnik hat jedoch immense Vorteile für uns.<br>
Deutlich mehr Geräte unterstützen <code class="highlighter-rouge">11s</code> im Gegensatz zu <code class="highlighter-rouge">Ad-hoc</code>/<code class="highlighter-rouge">IBSS</code> und ermöglichen das gleichzeitige Ausstrahlen eines Stations-Netzes auf vorher komplett inkompatiblen Geräten.</p>

<h5>der Wechsel</h5>
<p>Ein Wechsel von so tiefgreifender Technik ist nicht einfach umzusetzen. Nicht jeder Freifunk-Knoten hat eine direkte Verbindung zum Internet, um sich das nötige Update zu laden.<br>
Geräte die nur über das Mesh-Netzwerk ins Internet kommen, könnten durch ein Update eines benachbarten Knotens vom Rest des Netzes abgeschnitten werden, da sie die neue Technik nicht unterstützen.</p>

<p>Um allen Betreibern im Bremer Freifunk Netz einen entspannten Wechsel zu bieten, haben wir uns für die Weiterentwicklung des aktuellen Autoupdaters eingesetzt und Vorschläge eingereicht.<br>
Damit kann ein Knoten, der keinen Internetzugang hat und vom Rest des Meshes abgeschnitten wurde, über ein offenes WLAN in seiner Umgebung sich das neue Update laden. Das wäre typischerweise das WLAN eines anderen Freifunk-Routers, kann aber auch jedes andere beliebige freie Netzwerk sein.</p>

<p>Wir hoffen diese Version des Autoupdaters noch dieses Jahr auf unsere Geräte spielen zu können, müssen aber noch abwarten.<br>
In der Zwischenzeit werden wir die Technologien intern und auf der Breminale 2018 als Team testen und verbessern.</p>

<p>Für detaillierte und aktuelle Änderungen an der Firmware lohnt sich wie immer ein Blick in unser <a href="https://wiki.bremen.freifunk.net/Firmware/Changelog">Firmware-Changelog</a>.</p>
<br><a href="http://bremen.freifunk.net/blog/2018/07/18/firmware-mesh-technik.html">http://bremen.freifunk.net/blog/2018/07/18/firmware-mesh-technik.html</a>
  </body>
</html>