Raspberry Pi im Crypto-Mesh

Als kostengünstiger Mini-Rechner eignet sich das Raspberry Pi natürlich für alle Arten von vermeshten Anwendungen, bei denen die Anzahl der Geräte relevanter als ihre individuelle Leistungsfähigkeit ist. Typische Server-Dienste mit geringer Belastung wären beispielsweise Telefonie-Server für eine Haus-Telefonanlage oder - falls du Teil einer der vielen Freifunk-Communities sein solltest - auch gern einer ganzen Stadt. Einstiegsfreudlicher und auch familientauglicher sind aber sicherlich Datenaustausch-Plattformen wie OwnCloud oder SeaFile. Hier lassen sich neben den Familienfotos unter anderem auch Kalender mit nahestehenden Menschen teilen oder auf deinen verschiedenen Geräten synchronisieren ohne die Kontrolle über die eigenen Daten zu verlieren.

Wem die Klartextübertragung privater Daten nicht behagt, der kann mit wenigen Handgriffen ein VPN aufbauen. Die meisten VPN-Systeme zielen dabei auf das sogenannte Roadwarrior-Szenario ab: also die entspannt zuhause oder im Zug sitzenden Tele-Arbeitenden, die direkten Zugriff auf die Datei- und Webserver im Firmennetz brauchen. OpenVPN ist ein solches System: es ist eher komplex zu konfigurieren (gemeinsames Geheimnis oder unhandliche X.509-Zertifikate) und strikt zentralistisch strukturiert. Wollen zwei Clients miteinander kommunizieren, dann muss jedes einzelne Paket über den Server geleitet werden.
 
Vernetzt im Mesh
Für den Raspberry-Pi-Einsatzfall (viele Nodes, verteilt, keine Hierarchie) bietet sich dagegen die Verwendung eines Mesh-basierten VPN-Systems an. Eine ausgereifte Option in diesem Feld ist tinc. Solange ein tinc-Knoten (z.B. dein Raspberry Pi) mit mindestens einem weiteren Knoten des Netzes verbunden ist, kann er mit allen anderen am Mesh beteiligten Knoten kommunizieren. Falls dein Knoten jedoch zusätzlich auch einen direkten Weg zum Ziel-Knoten eines Pakets findet, dann kommuniziert er ohne Umwege mit ihm. Die Authenzifizierung ist ebenfalls dezentral: sobald ein einziger anderer Knoten dich (also deinen Schlüssel) akzeptiert, werden alle anderen Knoten des Meshs dir ebenfalls vertrauen.
 
Diagramm eines beispielhaften Tinc-Meshs
Performance
Während der Austausch von Bildern in einem VPN nur einen eher beschaulichen Netzverkehr auslöst, werden jedoch spätestens bei der verschlüsselten Übertragung der Urlaubsvideos die CPU-Grenzen der beteiligten Knoten spürbar.
Um die Übertragungsgeschwindigkeit in einem Raspberry-Pi-Mesh zu ermitteln, haben wir mit dem praktischen Werkzeug iperf die theoretisch mögliche Übertragungsrate in einem Netzwerk mit der tinc-Standardkonfiguration (Blowfish-Verschlüsselung) gemessen. Das Ergebnis kann sich mit ca. 13 MBit/s durchaus sehen lassen. Übertaktet man den Raspberry Pi auf 1 GHZ, dann sind sogar 15 MBit/s möglich. Im Fall verteilter Knoten wird diese Performancegrenze also erst dann spürbar, wenn du direkt verkabelt oder Teil einer Freifunk-Gemeinschaft bist (moderne 5-GHz-Technik erreicht über viele Kilometer Entfernung leicht 20 oder 30 MBit/s) oder wenn du über einen hochpreisigen Netzzugang mit reichlich Upstream-Bandbreite verfügst. Übliche Konsumenten-Internetzugänge dagegen sind asymmetrisch: beim Hochladen ist dabei nur ein Bruchteil der beworbenen Downstream-Geschwindkeit nutzbar.
 
Da die Einrichtung eines tinc-VPNs sehr einfach ist, werden wir dies im zweiten Teil dieses Artikel kurz im Detail darstellen.