Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
funktionsweise [2012/04/20 17:16] – [Konfliktberechnung] mwarning | funktionsweise [2023/06/04 11:32] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | |||
+ | |||
+ | ====== Einführung ====== | ||
+ | |||
+ | Das Netz ist soweit aufgebaut so dass es möglichst dezentral, anonym aber auch einfach in der Anwendung ist. | ||
+ | Dies wird nur durch die technischen Möglichkeiten und Arbeitskraft begrenzt, | ||
+ | wir arbeiten aber ständig an der Verbesserung dieser Qualitäten. | ||
+ | Ein Router benötigt keine weitere Konfiguration und sollte direkt und unabhängig funktionieren. | ||
+ | |||
+ | Im Folgenden wird nun die Funktionsweise des Netzes und der Router skizziert. | ||
+ | Dabei kann es sehr technisch werden - sorry. | ||
+ | |||
===== Die Funktionsweise des Bielefelder Freifunknetzes ===== | ===== Die Funktionsweise des Bielefelder Freifunknetzes ===== | ||
Zeile 4: | Zeile 16: | ||
* Clients (der Computer eines Nutzers) | * Clients (der Computer eines Nutzers) | ||
* Nodes (ein Router mit Freifunksoftware) | * Nodes (ein Router mit Freifunksoftware) | ||
- | * Gateway (ein Router mit Freifunksoftware und Internetanschluss) | + | * Gateway (ein Router mit Freifunksoftware und Internetanschluss |
- | Ein Client sieht einen AcccessPoint (AP) der sich "www.freifunk-bielefelde.de" | + | Wenn ein Nutzer auf seinem Laptop unter den Drahtlosen Netzwerken |
- | Der Client fragt nach einer IP-Adresse über den AP. Der Router leitet diese Anfrage (durch [[http:// | + | kann er sich ohne irgendein Passwort verbinden. |
- | Wenn der Client eine Seite aufrufen möchte wird diese Anfrage | + | Der Router mit dem er sich verbindet gibt dem Laptop oder Smartphone eine IP-Adresse |
- | Dieser schaut nach um der Client bekannt ist (vermutlich nicht). | + | Solche Gateways sind allerdings nur eine Service |
- | Ist das nicht der Fall, dann schickt das Gateway | + | |
- | Wenn der Nutzer auf Akzeptieren klickt, merkt sich das Gateway den Client solange dieser aktiv ist (z.Z. 3 Stunden) und leitet alle dessen Anfragen an den Internetanschluss weiter. | + | |
- | Ein Gateway hat eine feste IP-Adresse (+Adressraum für angeschlosse Nodes/ | + | ===== Funktionsweise der Firmware ===== |
- | Die Gateways befinden sich zudem über das Internet | + | |
+ | Die Firmware ist die Kombination aus einem Betriebssystem, | ||
+ | |||
+ | Der Kern der Firmwarekonfiguration besteht im Kern aus drei Scripten: | ||
+ | |||
+ | * / | ||
+ | * wird nur ausgeführt wenn freifunk_setup nicht existiert | ||
+ | * erstellt dummy Anschlüsse (dummy_bat, dummy_lan, dummy_mesh) | ||
+ | * damit wird sichergestellt das bridges (br-lan, br-mesh, bat0) mindestens einen Anschluss enthalten | ||
+ | * das erspart Sonderfälle | ||
+ | * dummy_bat bekommt | ||
+ | * batman-adv verwendet diese MAC wenn der Router als Gateway bekannt gemacht werden soll | ||
+ | * da die IP im Mesh (10.29.x.y) auf der MAC basiert kennt jeder Router die IP wenn sich ein Router damit als Gateway meldet | ||
+ | * / | ||
+ | * wir nur einmal aufgerufen und löscht sich dann | ||
+ | * testen und konfigurieren der WLAN-Karte[n] | ||
+ | * generieren der Netzwerkadresse (10.29.x.y) | ||
+ | * konfigurieren des Netzwerkes (/ | ||
+ | * generieren des eigenen Schlüsselpaares für fastd | ||
+ | * / | ||
+ | * wird bei Systemstart und dann alle 5min aufgerufen | ||
+ | * wird aufgerufen wenn batman-adv ein Gateway meldet | ||
+ | * testet ob auf dem WAN Anschluss | ||
+ | * startet fastd oder auch die Splash-Seite | ||
+ | * setzt das Gateway für den dhcp-Server | ||
+ | |||
+ | Davon unabhängig gibt es noch eine Statusseite und eine Weboberfläche die eine Konfiguration ermöglicht. | ||
+ | Die Statusseite zeigt die IP-Adresse, den Namen, die Anzahl der Nachbarn und die Anzahl aller bekannten Knoten an und ist über die Eingabe der IP-Adresse des Routers im Browser möglich (oder auch durch Eingabe von " | ||
===== Konfliktberechnung ===== | ===== Konfliktberechnung ===== | ||
- | Um eine zuverlässige Adressen Verteilung ohne Konfigurationsaufwand zu erreichen verwenden wir ein probabilistisch Zuweisungsverfahren verwenden. | + | Da die IP-Adresse auf Basis der MAC-Adresse gebildet wird - die IP (ipv4) allerdings viel kürzer ist kann es zu einem Konflikt kommen, in welchem zwei Router die selbe IP haben - das führt zu Verbindungsabbrüchen. |
+ | Dieses Riskio lässt sich durch das [[http:// | ||
Berechnet man die Wahrscheinlichkeit für einen Konflikt bei n Nodes ergibt sich folgende Grafik: | Berechnet man die Wahrscheinlichkeit für einen Konflikt bei n Nodes ergibt sich folgende Grafik: | ||
Zeile 25: | Zeile 63: | ||
Dabei fällt auf, dass die Wahrscheinlichkeit für einen einzigen Adresskonflikt unterhalb von 200 Nodes bei unter 0.26 liegt. Darunter fällt es weiter rapide ab (100 Nodes: 0.07, 50 Nodes: 0.02). Wir haben beschlossen, | Dabei fällt auf, dass die Wahrscheinlichkeit für einen einzigen Adresskonflikt unterhalb von 200 Nodes bei unter 0.26 liegt. Darunter fällt es weiter rapide ab (100 Nodes: 0.07, 50 Nodes: 0.02). Wir haben beschlossen, | ||
- | ===== Die Funktionsweise des Captive Portal ===== | ||
- | Das Captive Portal (aka. Splash Seite) befindet sich nur auf Gateways. | + | Die IP Adressen für einfache Teilnehmer wird dagegen über DHCP verteilt und wird vom DHCP-Server auf Konfliktfreiheit überprüft vor der Vergabe und wird notfalls geändert. Für die Nodes dagegen muss die IP auf der MAC-Adresse basieren. |
- | Durch [[http:// | + | |
- | Dieses Script geht eine Liste aus IP-Adressn und Zeitstempeln durch und erzeugt per iptables eine Regel um Anfragen von diesen IP-Adressen | + | Mit dem Umstieg auf IPv6 sollte das alles kein Problem mehr sein und sich weniger aufwändig gestalten. |
- | an den Internetanschluss weiterzuleiten. Die restlichen Anfragen werden entweder auf den Webserver des Gateway | + | |
+ | |||
+ | ===== Das Netzwerk | ||
+ | |||
+ | Ein Router mit der Freifunk-Firmware hat intern drei Netzwerk-bridges (bridge=Switch) die mehrere Anschlüsse eines Routers zu einem Netwwerk zusammenknüpfen. | ||
+ | Die internen Namen sind br-mesh | ||
+ | WAN ist der Anschluss über den das Internet erreichbar ist. | ||
- | ===== Netzwerk Übersicht ===== | + | {{ : |
- | {{ : |