#freifunk Router (teilweise) demystified

Netzwerken war für mich immer irgenwie langweilig. Ich hab programmieren gelernt und und alles was vor der dem Netzwerkanschluss an meine Computer passierte, hatte mich nicht interessiert. Wichtig war nur, dass ich Internet hatte.
Das erste Mal, dass ich ein Freifunknetz sah, war im Tante Horst und ich fand es total klasse einfach Internet zu haben ohne nach einem Passwort fragen zu müssen oder etwas zu bezahlen. Ich bin sowieso dafür, dass jeder Mensch einfach freies Internet bekommt, Freifunk ist aber noch mehr. Hier geht es darum ein eigenes Netz aufzubauen, das unabhängig ist von kommerziellen Anbietern. Das ganze läuft dezentral und lebt durch die Community, man kann auch eigene Services anbieten, die selbst dann erreichbar sind, wenn das “richtige” Internet weg ist. Das ganze fand ich sehr sympatisch, aber das jetzt selber bereitzustellen?

Lange Zeit hat sich bei mir nichts in die Richtung bewegt, aber letztes Jahr war ich mit Binco und Thomas beim 30c3, die Freifunker Berlin waren auch da und wenn man schonmal da ist, kann man sich ja informieren. Nachdem uns die Grundlagen erklärt wurden, haben wir auch gleich einen Router gekauft und noch vor Ort geflashed. Das heißt, wir haben die Herstellersoftware auf dem Gerät durch eine von den Freifunkern programmierte ausgetauscht. Zu dem Zeitpunkt habe ich nix von dem verstanden, was ich gemacht habe. Es gab da Devices und Interfaces mit seltsamen Namen und ich hatte keine Peilung was mit was zusammen hängt. Eine Fehlersuche war für mich zu dem Zeitpunkt unmöglich, weil ich einfach nicht verstand, wie ein Router so tickt. Das war schlecht, denn das Konfigurieren mit dem Assistenten in der Bentzeroberfläche wollte einfach nicht funktionieren.

Soweit zur Vorgeschichte. Ich wollte unbedingt, dass wir einen eigenen Zugang zum Freifunknetzwerk anbieten und dadurch die Welt ein bisschen besser machen, also hab ich den Thomas und vor allem den Binco ausgefragt, wie der ganze Netzwerkkram funktioniert. Und jetzt schreib ich hier auf wie unser Router funktioniert, denn das ist der kleine Teil, den ich glaube einigermaßen verstanden zu haben und den ich nicht wieder vergessen will.

image

Das ist unser WLAN Router. Er hat zwei Antennen und fünf Plätze für Netzwerkkabel. Ein Router ist dazu da, mehrere Netzwerke miteinander zu verbinden. Normalerweise ist eines der Netzwerke das große Internet und das andere ist das Zuhausenetzwerk, wo man sich mit seinem Computer oder seinem Handy anschließen kann. Durch die Magie des Routers kann ich dann z.B. Daten von meinem Computer in das andere Netzwerk Internet senden und von da Empfangen.

routermagie

Die nächste Frage also: Wie funktioniert die Magie in einem Router? Innerhalb eines Netzwerks haben alle Geräte eine IP, das ist eine Nummer, die das Gerät identifiziert. Die möglichen Nummern sind immer für ein Netzwerk definiert. Der Router ist Teil eines jeden Netzwerks, das er miteinander verbindet und er kennt jede mögliche Nummer aus den verbundenen Netzwerken. Jedes Routerbauteil über das ich mich mit einem Computer oder Handy zum Router verbinden kann, hat einen Namen und für jedes dieser Bauteile kann ein Netzwerk konfigureirt werden. In unserem Fall haben die beiden WLAN Antennen die Namen radio1 und radio2, ein Steckplatz für ein Netzwerkkabel  hat den Namen eth1 und das Routerbauteil wo man vier andere Netzwerkkabel anschließen kann, heißt eth0. Die beiden WLAN Antennen sind speziell. Die können nämlich jeweils mehr als ein WLAN Netzwerk verteilen.

Die Standardkonfiguration unseres Freifunkrouters hätte eigentlich folgendes machen müssen:

– zwei WLAN Netzwerke auf radio0 (Freifunk auf einer Frequenz)
– zwei WLAN Netzwerke auf radio1 (Freifunk auf einer anderen Frequenz)
– ein Netzwerk auf eth1 (das Internet)
– ein Netzwerk auf die eth0 (Zuhausenetzwerk)

routerbauteile

Hat er aber nicht, deswegen sind Binco und ich in die cbase zum Treffen der Berliner Freifunker gefahren. Dort hat man uns am Userinterface vorbei auf der Konsole des Routers die Netzwerke eingerichtet. Dort habe ich auch angefangen zu verstehen was Interfaces in einem Router sind. Die enthalten nämlich Informationen über die einzelnen Netzwerke und man kann sie mit einander verbinden.

philippsconfig

Im Router gab es jetzt:
-ein Interface mit dem Namen wireless0 für radio0
-ein Interface mit dem Namen wireless1 für radio1
-ein Interface mit dem Namen dhcp
-ein Interface mit dem Namen wan für den Netzwerkanstöpselplatz eth1
-und ein Interface mit dem Namen lan für die Zuhausnetzwerkanstöpselplätze an eth0

Es gibt eine Datei /etc/config/network auf dem Router in der das konfiguriert ist. Hier ein Auszug:

config interface 'wireless0'
   option dns '2002:d596:2a92:1:71:53:: 2002:5968:c28e::53 88.198.178.18 141.54.1.1 212.204.49.83 8.8.8.8 8.8.4.4'
   option ip6assign '64'
   option netmask '255.0.0.0'
   option ipaddr '104.205.0.12'
   option proto 'static'

config interface 'wireless1'
   option dns '2002:d596:2a92:1:71:53:: 2002:5968:c28e::53 88.198.178.18 141.54.1.1 212.204.49.83 8.8.8.8 8.8.4.4'
   option ip6assign '64'
   option netmask '255.0.0.0'
   option ipaddr '104.205.0.14'
   option proto 'static'

config interface 'dhcp'
   option type 'bridge'
   option ipaddr '104.205.0.49'
   option netmask '255.255.255.240'
   option ip6assign '64'
   option proto 'static'

config interface 'lan'
   option ifname 'eth0'
   option type 'bridge'
   option proto 'static'
   option ipaddr '192.168.1.1'
   option netmask '255.255.255.0'
   option ip6assign '60'

config interface 'wan'
   option ifname 'eth1'
   option proto 'dhcp'

wireless0 und wireless1 sind zwei Netzwerke, die nur aus einem Gerät bestehen, nämlich dem Router selbst. Einmal hat der Router die IP 104.205.0.12 und einmal 104.205.0.14. Diese IPs gehören zum großen Freifunknetzt und sie werden später zum Meshen benutzt. Das bedeutet unser Freifunkrouter verbindet sich mit anderen Freifunkroutern, die in der Nähe sind, per Funk. Es gibt zwei, weil der Router auf zwei verschiedenen Wlan Frequenzen senden kann. Warum und weshalb verstehe ich noch nicht, auf jeden Fall kann der Router sich darüber mit anderen Geräten im Freifunknetz verbinden.

Im Netzwerk dhcp hat der Router selbst die IP 104.205.0.49 und es gehören 15 weitere IPs zu diesem Netzwerk was durch option netmask ‘255.255.255.240’ festgelegt wird. Das heißt der Teil gehört auch noch zum großen Freifunknetz. Man kann also sagen, dass drei kleine Unternetze aus dem Freifunknetz jetzt auf unserem Router konfiguriert sind. Das ist fest und gilt für die ganze Welt. Krass oder? Für das dhcp Interface ist auch noch wichtig, dass es eine Bridge ist. Das bedeutet alle Daten, die da ankommen werden einfach weitergeleitet.

Diese drei Netze sind noch keinem Routerbauteil zugeordnet. Das ist bei den Interfaces lan und wan anders. Die Zeile option ifname verbindet diese Interfaces jeweils mit Netzwerkanstöpselplätzen (eth0 bzw. eth1). Jetzt sind also noch zwei Routerbauteile übrig: Wie die beiden Antennen radio0 und radio1 mit den Netzwerken wireless0, wireless1 und dhcp verbunden werden, wird in einer anderen Datei geregelt nämlich /etc/config/wireless. Für das Interface wan gibt es im Moment noch die besondere Zeile option proto ‘dhcp’. DHCP ist ein Service, der dafür sorgt, das Geräte die sich einem Netzwerk anschließen eine eindeutige Nummer, ihre IP, bekommen. Wir haben für den Router jetzt vier IP Adressen für vier schiedene Netze statisch festgelegt. Für das fünfte Netz das Internet sagt die Zeile, dass der Router automatisch eine IP Adresse zugewiesen bekommt. Das war am Anfang etwas verwirrend, weil wir ja auch ein Interface mit dem Namen dhcp haben. Aber: Das ist eben nur ein Name, es könnte auch blakeks oder supertollesvirtuellesinterface heißen. Das Interface hat den Namen bekommen, damit schlaue Leute wissen, dass der Router auch IP Adressen aus unserem kleinen Freifunkunternetz vergeben kann, nämlich z.B. an mein Handy und an meinen Computer, wenn sie sich mit dem Freifunkrouter verbinden.

Eine ganz wichtige Komponente hab ich noch nicht erwähnt: Die Firewall. Die sorgt nämlich dafür das Daten aus einem Netz in ein anderes dürfen oder eben nicht. Als die dann mit etwas Hilfe von der Freifunkmailingliste auch noch richtig eingestellt war, war es endlich soweit: Mein Handy konnte sich mit dem Freifunknetz verbinden und ich konnte surfen.

Jetzt ging es an das Finetuning. Wir wollte nämlich, dass die vier Netzwerkstöpselplätze auch zum Freifunknetz gehören und wir wollten, dass der Router immer über die selbe IP Adresse aus unserem Zuhausenetzwerk erreichbar ist. Also haben wir das Interface dhcp dem Routerbauteil eth0 zugewiesen (all credits to Binco) und das lan Interface gelöscht, weil wir es ja jetzt nicht mehr brauchten, außerdem haben wir dem wan Interface eine statische IP verpasst, damit wir ihn auch trotzdem noch aus unserem Zuhausenetzwerk erreichen können.

routerfinalconfig

Auszug /etc/config/network:

config interface 'wireless0'
	option dns '213.73.91.35.53'
	option ip6assign '64'
	option netmask '255.0.0.0'
	option ipaddr '104.205.0.12'
	option proto 'static'

config interface 'wireless1'
	option dns '213.73.91.35'
	option ip6assign '64'
	option netmask '255.0.0.0'
	option ipaddr '104.205.0.14'
	option proto 'static'

config interface 'dhcp'
	option ifname 'eth0'
	option type 'bridge'
	option proto 'static'
	option ipaddr '104.205.0.49'
	option netmask '255.255.255.240'
	option ip6assign '64'

config interface 'wan'
	option ifname 'eth1'
	option proto 'static'
	option ipaddr '192.168.42.5'
	option netmask '255.255.255.0'
	option gateway '192.168.42.1'
	option dns '213.73.91.35'

Update: Ich hab in der config oben in den Zeilen option dns noch den DNS Server geändert, damit die Anfragen nicht mehr zu google gehen.

Zuf Vollständigkeithalber, hier nochmal das Bild von dem, was der Assistent eigentlich hätte machen müssen. Der Unterschied ist, das wireless1 und wireless2 hier nicht über ein virtuelle Interface dhcp gebridged sind, sondern es nochmal ein kleines extra Freifunkunternetz gibt.

routerdefaultconfig

Auszug /etc/config/network

config interface 'wireless0'
   option dns '2002:d596:2a92:1:71:53:: 2002:5968:c28e::53 88.198.178.18 141.54.1.1 212.204.49.83 8.8.8.8 8.8.4.4'
   option ip6assign '64'
   option netmask '255.0.0.0'
   option ipaddr '104.205.0.12'
   option proto 'static'

config interface 'wireless1'
   option dns '2002:d596:2a92:1:71:53:: 2002:5968:c28e::53 88.198.178.18 141.54.1.1 212.204.49.83 8.8.8.8 8.8.4.4'
   option ip6assign '64'
   option netmask '255.0.0.0'
   option ipaddr '104.205.0.14'
   option proto 'static'

config interface 'wireless0dhcp'
   option type 'bridge'
   option proto 'static'
   option ipaddr '104.205.0.49'
   option netmask '255.255.255.240'
   option ip6assign '64'

config interface 'wireless1dhcp'
   option type 'bridge'
   option proto 'static'
   option ipaddr '104.205.0.64'
   option netmask '255.255.255.240'
   option ip6assign '64'

config interface 'lan'
   option ifname 'eth0'
   option type 'bridge'
   option proto 'static'
   option ipaddr '192.168.1.1'
   option netmask '255.255.255.0'
   option ip6assign '60'

config interface 'wan'
   option ifname 'eth1'
   option proto 'dhcp'

Ich hab das Gefühl ne Menge Neues gelernt zu haben. Aber wie das so ist mit neuem Wissen: Man erfährt auch von vielen Dingen, von denen man vorher gar nicht wusste, dass es sie überhaupt gibt oder mit dazu gehören. Ich hab noch ganz viele Fragezeichen, was Routing betrifft und die ganzen anderen Konfigurationsdinge auf dem Router, dann gibt es noch Switches, VPN, Meshing, DHCP, OSI-Schichten, WLAN-Frequenzen oder Datendurchsatz wovon ich jetzt eine Idee habe, aber immer noch “em, em, em” mache und nicht verstehe wie die Dinge zusammen hängen. Falls ich hier irgendwas falsch beschrieben habe, würde ich mich über eine Info freuen :)

(inspired by Fiona)

Leave a Reply

Your email address will not be published. Required fields are marked *


+ three = 5

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>