A new way to mesh – APuP

Recently a patch for hostapd on OpenWrt was merged that allows to Access Points to send messages to other Access Points while still allowing clients to connect to it as it would be a regular Access Point.

This was called APuP: Access Point Micro (μ) Peering

From the author, G10H4ck:

“Fiddling with hostad code I have managed to successfully establish WiFi communication between multiple AP, each of them send and receive traffic from the other as if they where associated stations, while they are all configured in AP mode. This P2P like behavior have multiple advantages compared to the usual setup where one of them is configured as AP and all the others as stations, and also compared to Ad-Hoc, WDS, 802.11s, Multi-AP and EasyMesh. I have named this operanting mode APuP (Access Point Micro Peering).” (Source)

From the OpenWrt merge request:

“A simpler and more useful successor to Ad Hoc, Wireless Distribution System, 802.11s mesh mode, Multi-AP and EasyMesh.
Almost plain APs communicate between them via 4-address mode, like in WDS but all of them are AP, so they can eventually communicate also with plain stations and more AP nodes in sight. Low hardware requirements, just AP mode support 4-address mode, and no more unnecessary complications, like hardcoded bridging or routing algorithm in WiFi stack. For each AP in sight an interface is created, and then it can be used as convenient in each case, bridging, routing etc.” (Source)

A bit more context:

“In community networks we need to maximize the possible paths of communitacions between nodes. In a classical AP-STA approach it is not possible to guarantee communication between all possible nodes in all scenarios. As an example if we have 4 nodes A, B, C and D where A and B sees each other, B and C sees each other C and D sees each other. With AP-STA mode each radio must operate either as AP or as STA, each STA must connect to only one AP at once, STA need an AP to relay communication between thems. In each combination configuring each node either as AP or STA you will see that some of them will end up not being able to connect. To overcome this issue in the past adhoc mode was used which solved the basic connectivity issue, still it’s implementation wasn’t high quality and it’s design had important flaws, this resulted it in becoming unmaintained after a few years. Luckly while adhoc was growing outdated 802.11s emerged, it had a few improvements, still some design choice such as complex ways to bridge other networks and routing between nodes fossilized into the standard, increased WiFi drivers complexity became problematic and lastly determined it’s silent demisal. New radios drivers and firmwares doesn’t support 802.11s well. New WiFi standards doesn’t bring much improvements to 802.11s mesh mode, while they do improve a lot AP-STA modes. Still our need of nodes being able to comunicate to anyone in range is strong. In this context, looking for a modern solution I started asking myself, is there an hard to resolve problem that impede AP nodes in sight to talk each other? Talking about my thinking with Felix Fietkau (nbd), we agreed that it might be possible for AP nodes to commuicate directly each other, and because AP mode is what is getting more support and improvements, if we can we just use that on all nodes with some slight modification so all AP in sight can talk each other, we could solve this problem that afflict us since WiFi creation. Felix suggested that this should be possible and with a bit of luck should not even need kernel and driver modifications, modifing hostapd in a way that each AP adds the other in sight to its station list could be enough and it is indeed the staring point to start experimenting and see what happens.” (Source)

The advantages are simple:

  • no additional mesh SSID is broadcasted
  • no Linux kernel / driver change
  • AP mode is much more stable compared to other mesh modes

A few disadvantages also need to be mentioned:

  • a new interface for each other AP is created,
    this can be a bit of a configuration burden
  • the code is still mostly untested

Example Setup

APuP is only available in the OpenWrt snapshot builds as for now until the text major release. If you have two WLAN router A and B then let’s set up one example:

Router A

uci set wireless.radio0.disabled=0
uci set wireless.default_radio0.ssid=openwrt-mesh
uci set wireless.default_radio0.encryption=psk2
uci set wireless.default_radio0.key=12345678
uci set wireless.default_radio0.network=lan
uci set wireless.default_radio0.apup=1
uci commit wireless

Now reboot the device.

The single important setting is apup=1, which enables APuP. Without any other mesh device around, there will be only a “phy0-ap0” interface bridged to the br-lan bridge interface. This is the WLAN interface where normal clients will connect to (e.g. mobile phones, laptops, …).

Router B

uci set wireless.radio0.disabled=0
uci set wireless.default_radio0.ssid=openwrt-mesh
uci set wireless.default_radio0.encryption=psk2
uci set wireless.default_radio0.key=12345678
uci set wireless.default_radio0.network=lan
uci set wireless.default_radio0.apup=1
uci commit wireless

uci set network.lan.ipaddr='192.168.1.2'
uci set dhcp.lan.ignore='1'
uci commit network
uci commit dhcp

These commands also disables the DHCP server on router B and set a unique IP address.

Now reboot the device.
After the reboot, a “phy0-ap0” interface will be created as we have seen on Router A.

Since both routers see each other, each of them will also create a “phy0-ap0.sta1” interface that will be bridged to the br-lan bridge interface. If yet another router would be in reach, then a new interface called “phy0-ap0.sta2” would be created and so on for each AP in reach. That is how routers exchange packets between each other.

But be careful. If we would now set up a third device router C similar to router B (or even router A), then any packet will be send between routers A, B and C in a loop, due to the bridged interfaces. This will cause the CPU and bandwidth unitilization to be pushed to the maximum and the network will be unusable.
That is what a mesh routing protocol (e.g. batman-adv, OLSR, Yggdrasil) or a spanning tree protocol would prevent. But that is another topic. 🙂

Notes

  • APuP is still experimental
  • If a neighbor AP vanishes, then the associated interface on the neighbor routers will persist and does not time out.
  • The encryption/key settings only affect the client interface. The AP-to-AP connections are without encryption. Maybe this will change in the future.
  • “apup_peer_ifname_prefix” can be used next to the “apup” setting to change the default interface name prefix
  • hostapd patch by Gio
  • Freifunk Radio 110 about APuP (English)
  • OpenWrt merge request that introduces APuP

Cheers,
mwarning

Neue Fimware für Freifunk Bielefeld

Nach über 8 Monaten Entwicklungszeit und über 300 Commits ist jetzt die neue Firmware (Version 0.4) von Freifunk Bielefeld fertig! :D

Innerhalb der Firmware wurde vieles stark umgebaut, sodass wir jetzt besser für die Zukunft gerüstet sein sollten und der Verwirklichung eines freien und dezentralen Bürgernetzes einen weiteren Schritt näherkommen

Ein paar wichtige Änderungen im Detail

Die Namen und Positionen der Router werden jetzt auf dem Router eingestellt anstatt über das Knotenformular auf unserer Webseite  und ermöglicht damit eine dezentrale, gleichberechtigte Kartengenerierung. Nun kann der Router auch so eingestellt werden, das er nicht zur Kartengenerierung beiträgt und daher unsichtbar ist. Ebenso werden auch endlich nicht mehr die MAC-Adressen der Clients (die blauen Punkte) für die Karte übertragen, sondern nur die Anzahl.

Die größte Änderung betrifft die komplette Umstellung auf IPv6. IPv6 soll in Zukunft auch im Internet IPv4 ablösen. Wir gehen diesen Schritt schon jetzt.  Ein Vorteil ist, das nun auch Geräte innerhalb des Freifunknetzes aus dem Internet heraus erreichbar sind. Den allermeisten Nutzern sollte diese Umstellung aber normalerweise nicht weiter auffallen. Bei alten Geräten kann es aber zu Problemen kommen. In dem Fall versuchen wir aber gerne zu helfen.

Eines der großen Probleme im Freifunknetz ist das Auffinden von internen Diensten. Das kann z.B. eine Webseite sein, ein Spieleserver oder WebCam. Daher kann nun auf der Weboberfläche des Routers ein Link eingegeben werden, der auf allen öffentlichen Statusseiten der Router angezeigt wird.  Dies soll helfen, die Nutzung von internen Diensten anzuschieben. Standardmäßig ist die Anzeige auf dem Router allerdings ausgestellt.

Bitte beachtet, dass das Autoupdate erst in ein paar Tagen zur Verfügung steht und bis dahin die alte Karte auf dieser Seite eingebunden ist. Die Downloads sind aber bereits verfügbar und neue Knoten tauchen jetzt auf der neuen Karte auf.

 Liste der Änderungen
  • Wechsel auf OpenWrt Barrier Breaker (14.07)
  • IPv6 only mit NAT64/DNS64 auf den Gateways
  • Jeder Router verteilt ein gemeinsames FF-lokales Prefix für isolierte/autarke Netzwerke
  • Unterstützung neuer Modelle
    • u.a TP-LINK CPE210/220/510/520 (danke an Gluon)
  • Mesh-Protokoll: batman-adv 2014.4.0
  • VPN zum Server: fastd v17
    • höhere Geschwindigkeit und Sicherheit
  • Der WAN-Anschluss kann jetzt mit den Ports und einem privaten AccessPoint gebridged werden.
  • Die Kartendaten (Name und Position) können auf dem Router eingetragen werden.
  • dezentrale und gleichberechtigte Karten (mit alfred und ffmap)
  • Die Firmware/Karte unterscheidet jetzt verschiedene Communities
  • Karte: ffmap unterscheidet jetzt unterschiedliche Communities in einem Netz
  • Die Weboberfläche des Routers wurde neu gestaltet
  • Jeder Router kann einen Service verkünden (Label+Link), welcher auf den Statusseiten der anderen Router angezeigt wird.
    • Per default ist die Anzeige au der Statusseite dekativiert
  • Inkognito-Modus des Routers – übermittelt keine Daten für die Karte.
  • Die Identität des Routers (MAC-Adresse) kann über die Weboberfläche gändert werden.

 Screenshots

Fertige Images sind wie immer auf unserer Downloadseite zu finden. Die Quellen der Firmware und zum Betreiben eines Servers/Gateways befinden sich auf github.com.

Danke an alle, die dieses Release ermöglicht haben und mitgeholfen haben unser gemeinsames Netz voran zu bringen!

Neue Webseite, neue Firmware, neue Neuigkeiten aus Bielefeld

Unsere kleine Community in Bielefeld wächst zur Zeit ruhig aber stetig. Jetzt wurde unsere Webseite komplett erneuert und unsere Mailingliste ist auch endlich von googlegroups umgezogen, nachdem immer mehr Leute gemeldet haben das ihr Emails nicht ankommen würden – wer da böses denkt. 😉

Auch ist eine neue Firmware verfügbar (0.3), die nicht nur stabiler läuft sondern auch viele neue Router unterstützt. An dieser Stelle einen Dank an das Gluon-Projekt für einige Pakete und Patches die wir übernehmen konnten (autoupdater / traffic control). Für einige Modelle mussten wir aber aber auf eine noch experimentelle OpenWrt Version zurückgreifen (Barrier Breaker). Aber es funkt! 😀

Heute gab es auch einen Vortrag zum Thema Freifunk im Rahmen der Netzwoche in der Universität Bielefeld. Vielleicht wurde die eine oder andere Person dazu inspiriert einen Router aufzustellen oder aktiv mitzumachen. Die Folien sollen bald veröffentlich werden, so dass auch andere sie nutzen können.

Viele Grüße,

Freifunk Bielefeld

Zweites Release für Freifunk-Bielefeld

Es hat etwas länger gedauert als gedacht, aber endlich haben wir es geschafft, die zweite Version unserer Firmware fertig zu stellen. Sie baut auf batman-adv (2013.4.0), fastd (10) und wie üblich auf OpenWRT (Attitude Adjustment) auf. Zusätzlich haben wir dank Spenden jetzt einen zweiten Gateway in Betrieb nehmen können. 🙂

Dazu gibt es eine offizielle Ankündigung mit einer Liste der Neuerungen, und natürlich einen neuen Satz von Firmware-Images zum Herunterladen.

Wer also in Bielefeld oder Umgebung wohnt kann gerne einen Router aufstellen. Wir helfen dabei auch gerne und laden dazu jeden Dienstag Abend in den Hackerspace Bielefeld ein.

 

ffmap FF-Bielefeld

Unser Netz besteht z.Z. aus etwa 30 Knoten und 2 Servern.

ffb wifi scanner

Der kleine Wifi-Scanner in der Weboberfläche.

Erstes Release für Freifunk-Bielefeld

Nach längerer Entwicklungszeit haben wir endlich die erste Firmware-Version (0.1) für unsere Freifunk-Bielefeld Gruppe fertig. Die Firmware baut auf batman-adv (2013.1.0), fastd (7) und auf OpenWRT (Attitude Adjustment) auf und wurde mit dem Ziel entwickelt eine simple und möglichst dezentrale Konfiguration zu bieten. Ein Router muss nur mit der Firmware bespielt werden und benötigt ansonsten nur Strom um sich sich mit gleichartigen Routern in Reichweite zu verbinden. Eine weitere Konfiguration ist nicht nötig aber natürlich möglich.

Die Firmware wurde so konfiguriert, dass es (fast) keinen routerspezifischen Code gibt und mehrere Wlan-Karten (2.4/5Ghz) unterstützt werden. Jeder Router hat eine öffentliche Statusseite mit dem Namen des Routers, der Anzahl der Nachbarn und einer Liste von alternativen Gateways. Über eine Web-GUI können sehr vielfälltige Einstellmöglichkeiten wie z.B. das Konfigurieren einzelner Ports, eines privaten WLAN-Netzes oder einer Splash-Seite vorgenommen werden.

Wer also in Bielefeld oder Umgebung wohnt kann gerne einen Router aufstellen. Wir helfen dabei auch gerne und laden dazu jeden Dienstag Abend in den Hackerspace Bielefeld ein.

Natürlich haben wir noch eine offizielle Release-Ankündigung, fertige Images, eine Freifunkkarte und eine Seite mit Stichpunkten zu technischen Details.

Frohes Maschen,

die Freifunk-Bielefeld Gruppe 🙂

Freifunk in Bielefeld

Seit Anfang 2011 gibt es auch in Bielefeld eine kleine Freifunk-Community. Nach einem initialen Vortrag auf der Netzwoche Bielefeld im Mai 2011 wurde mit der Entwicklung einer eigenen Firmware begonnen. Die bestehende Freifunk Software auf Basis von OLSR erschien uns als nicht mehr zeitgemäß. Deshalb versuchen wir unser Glück mit einer Konfiguration auf Basis von B.A.T.M.A.N Advanced.
 
Die erklärten Ziele unserer Konfiguration sind es eine komplett dezentrale und unkomplizierte Netzwerkkonfiguration bereitzustellenViele andere FF Firmwares verwenden eine statische IP Vergabe für die Nodes (WikiListen lassen Grüßen) oder
verwenden spezielle Nodes um IPs zu vergeben (z.B. Gateways). 
 
Für weitere Informationen besucht unsere Seite, besucht unseren Jabberchannel oder sendet uns eine Email.

Viele Grüße und bis bald,
Freifunk Bielefeld.

Hier noch ein Foto von unserem gut befestigtem Wunsch-Standort aus. 🙂
Sparrenburg Bielefeld