Ich habe mich nun endlich mal damit beschäftigt, wie ich Dienste oder Inhalte im freifunk-Netz anbieten kann. Eine bemerkenswerte Diskussion ging dem voraus: Das freifunk-Netz („Berlin Backbone“) reicht um den ganzen S-Bahn-Ring herum… und wozu nutzen wir das jetzt, außer, um den Zugang zum „eigentlich Interessanten“, dem Internet, zu bieten? Da entsteht ein weitreichendes eigenes und unabhängiges Netz, das eben nicht unbedingt auf eine Verbindung zum Internet angewiesen ist, und wir diskutieren lange (!) darüber, was wir damit nun eigentlich machen wollen. Denn alles Interessante ist auch im Internet. Eine Person fand, dass sich freifunk-Netze vor allem dafür eignen, sehr ortsbezogene Inhalte (Kulturprogramme, Spielen über das freifunk-Netz) anzubieten, denn alles andere ist ja eh im Internet zugänglich. Ich dagegen habe mir eher vorgestellt, was besonders gut zu haben wäre, wenn morgen unsere Internetzugänge weg wären und wir nur noch das freifunk-Netz hätten.
Mir fielen deshalb als erstes folgende zwei Nutzungen des freifunk-Netzes ein:
- Mirrors wichtiger Websites oder Fileserver anbieten (etwa die Downloads, die für freifunk essenziellen OpenWRT-Images mit der freifunk-Firmware, um die Selbsterhaltung von freifunk ohne Internetzugang zu ermöglichen)
- dezentrale Kommunikationsdienste aufbauen
Ich habe also geguckt, was ich finde. Jeder Router zeigt unter „Services“ die Dienste an, die im freifunk-Netz dudeln. Webcams auf teilnehmenden Kirchtürmen, Websites, Jabber-Server, und auf die Idee mit der freifunk-Firmware war natürlich auch schon jemand gekommen. 🙂
Schön, also angenommen, ich habe mich für einen Dienst entschieden, den ich gerne anbieten würde, wie geht das dann? Ein Raspberry Pi mit Debian Linux eignet sich ganz gut dafür. Er ist klein und er kostet nicht zu viel Geld.
- Raspbian auf dem Pi installieren (Installationsanleitung)
- Zumindest das Passwort ändern, besser noch das Login nur per ssh-Key erlauben.
- Für SSL-Verschlüsselung: Ein selbstsigniertes SSL-Zertifikat erstellen. Ich habe das direkt für die IP-Adresse erstellt, die der Pi im freifunk-Netz bekommt, da ich bisher keine Namensauflösung ins .olsr-Netz habe. Idealerweise fragt dann später die Anwendung (der Browser, der Jabber-Client oder was es eben ist), ob sie diesem Zertifikat vertrauen soll.
- Euren Dienst darauf installieren und konfigurieren
Einbindung ins freifunk-Netz
Jetzt installiert Ihr entweder olsrd auf dem Pi, dann mesht er selbst mit. Oder Ihr nutzt einen schon vorhandenen freifunk-Router, um dem Netz mitzuteilen, dass über diesen Router noch ein weiterer Knoten aus dem Netz erreichbar ist – eben der Pi. Diese Mitteilung heißt HNA-Announcement. So habe ich es gemacht. Da nicht jeder der folgenden Schritte allgemein gültig ist, fragt bei Fragen am besten, Eure lokale freifunk-Community (Infos zum Mitmachen für Berlin).
Loggt Euch per ssh auf dem freifunk-Router ein und editiert die Datei /etc/config/olsrd. Entweder gibt es schon einen Abschnitt, der mit „config Hna4“ (bei IPv4) beginnt, oder Ihr legt in an. (Bei netaddr steht dann Eure freifunk-IP von dem zu anzukündigenden Gerät.)
config Hna4
option netmask ‚255.255.255.255‘
option netaddr ‚104.xxx.xxx.xxx‘
In derselben Datei tragt Ihr auch ein, welchen Dienst Ihr anbietet. Das also, was auf allen Routern unter „Services“ auftaucht. Sucht folgenden Abschnitt:
config LoadPlugin
option services_file ‚/var/etc/services.olsr‘
option library ‚olsrd_nameservice.so.0.3‘
option suffix ‚.olsr‘
Fügt für einen eigenen Dienst nur die erste der beiden folgenden Zeilen hinzu, bei zwei Diensten beide Zeilen. (Bei mehr Diensten analog zur zweiten noch weitere.)
option service ‚http://104.xxx.xxx.xxx:80|tcp|Unverschlüsselte Website‘
list service ‚https://104.xxx.xxx.xxx:443|tcp|SSL-verschlüsseltes Blog‘
Eine IP-Adresse aus dem Berliner freifunk-Netz besorgen und sie als statische IP auf dem Pi einstellen
auto lo
iface lo inet loopback
iface eth0 inet static
address 104.xxx.xxx.xxx # (die IP-Adresse des Pi)
netmask zzz.zzz.zzz.zzz # (Hier kommt es darauf an, wie Euer Setup ist.)
gateway 104.yyy.yyy.yyy # (die IP-Adresse des freifunk-Routers)
Fast fertig, jetzt noch auf dem Router /etc/init.d/olsrd restart und auf dem Pi /etc/init.d/networking restart (oder den Pi neustarten). Dann auf dem Router unter Services gucken. Wenn alles stimmt, dann seht Ihr Euren Dienst jetzt auf allen Routern im Netz unter „Services“.