Kategoriearchive: Netzinfrastruktur

Die „Hoods“ kommen

Wir wollen weiter wachsen und müssen uns der Tatsache stellen, dass größere Netze auch einen größeren Traffic-Overhead bedeuten. Das würde unweigerlich dazu führen, dass wir bald mit jedem hinzukommenden Router ein wenig langsamer werden, weil immer größere Datenmengen im Netz nur noch dazu gebraucht werden, um die Infrastruktur zu managen und somit unseren Clients nicht mehr zur Verfügung stehen.

Diesem Szenario wollen wir rechtzeitig mit neuen Verwaltungsstrukturen in unserem Netz entgegenwirken. Ein probates Mittel in vielen anderen Communities sind die Einführung von „Hoods“.
Hoods oder auch „Netz-Segmente“ sind strukturierte, voneinander abgegegrenzte Bereiche einer gemeinsamen Freifunk-Community. Diese mindern den Traffic-Overhead des Gesamtnetzes enorm.

Wir haben uns in den letzten Monaten viele Gedanken über mögliche Strukturen in unserem Netz gemacht und sind zu dem Ergebnis gekommen:

  • wir werden Netzsegemente bei uns ebenfalls einführen (Endausbau: 16 Stück)
  • wir wollen, dass jedes Gateway auch jedes Segment betreuen kann
  • wir wollen vermeiden für jedes Segment eine eigene Gluon-Version zu erstellen

Unsere Gateways sind in den vergangenen Monaten mehrfach umstrukturiert worden. Zum einen haben wir in Berlin 2 Gateways, die unseren IPv4-Traffic jetzt direkt ausleiten ins Internet. Danach wurden alle anderen Gateways degradiert und arbeiten den Gateways in Berlin nur noch zu, haben weder einen eigenen Uplink ins Internet, keinen DHCP-/RA-Service, kein DNS, noch eine eigene tinc- und BGP-Session. In einem weiteren Schritt haben wir auf allen GWs für jedes geplante Segment eine Bridge, eine Fastd-Instanz und je einem BATMAN-Interface aufgerüstet. Die Verbindung der GWs untereinander erfolgt mit jeweils 5 Fastd-Tunneln. Diese Zahl wird in Zukunft mit jedem weitern Netzsegment steigen.

Derzeit sind noch alle Knoten im Netzsegment „00“ unterwegs. Mit dem neuen Firmwareupdate „0.9.0+tackin“ bekommt jeder Router eine neue Knfiguration, die ihm überhaupt erst ermöglicht, an den neuen Netzsegmenten teilzunehmen. Sobald wir die Vorbereitungen zum „Go“ für die Segmente abgeschlossen haben, werden wir auf unseren GWs steuern, welcher Router sich in welches Netzsegment integrieren wird (und wirklich NUR dort). Eure Router werden das automatisch erledigen, es gibt nichts was ihr tun müsst … sofern euer Router das besagte Update auch installiert hat.

Alle Router, die ältere Software nutzen und einen Uplink haben, werden danach dann keine Verbindung mehr zu unserem GW aufbauen können. … Sorry!

Ein Risiko bleibt

Die Segmente/Hoods haben allerdings immer ein Risiko. Es ist nicht ausgeschlossen, dass ein User (absichtlich oder unbeabsichtigt) zwei Router betreibt, die untereinander verbunden sind, aber in zwei unterschiedlichen Netzsegementen eingebucht sind. Dieses „bridging“ bringt die Netze durcheinander und führt zu massenhaftem unsinnigem Traffic. Dem könnten wir begegnen, indem wir für jedes Segment auch eine eigene Gluon-Version erzeugen, die dann verhindern soll, dass die beiden Problem-Router sich überhaupt untereinander verbinden können.
Ich vertraue jedoch erst einmal darauf, dass dieses Problem bei uns nicht oder nur sehr sehr selten auftritt, sodass der Aufwand einer eigenen Gluon-Version in keinem Verhältnis dazu stehen würde. Wenn sich zeigt, dass Maßnahmen nötig sind, werden die Router, die an dem Bridging beteiligt waren, dauerhaft von unseren GWs ausgesperrt. Im Extremfall, werden wir auch eigene Gluonversionen einführen.

Wir werden die Segmente anhand der Hostnamen festlegen. Dabei nutzen wir die PLZ um GEO-Regionen festzulegen indem ein Segment arbeitet. Daher war in der Vergangenheit die Angabe der PLZ erwünscht. Das bedeutet: ihr dürft NIE zwei Router mit unterschiedlichen PLZ gemeinsam nebeneinander mit uplink betreiben – auch und besonders nicht testweise.

  • Solltet ihr für einen anderen Ort einen Router vorbereiten, dann darf dieser Router zwar testweise gerne im WLAN-Mesh teilnehmen, Ihr dürft aber keinen Uplink zu unserem GW mit diesem Router zulassen.
  • Sollte sich der Aufstellort ändern, brauchen wir die Info damit wir ggfl. das Netzsegment dieses Routers anpassen
  • Schickt uns den Key mit dem Hinweis, ab wann wir den eintragen sollen, damit ihr in Ruhe testen könnt, aber kein Bridging passieren kann

Neue Gluon-Firmware 2016.2.7 — bitte testen

Letzte Woche habe ich neue Software compiliert. Ihr findet diese, wie immer, auf  Github Experimental. Die Software trägt meine Versionskennung „0.9.0+tackin“, basiert auf Gluon 2016.2.7 und wurde auf einigen Routern bereits erfolgreich als Upgrade geflasht. Daher würde ich euch gerne bitten, diese ebenfalls bei euch sowohl als Factory als auch als Upgrades auf diverser Hardware zu testen. Sofern im weiteren Verlauf der Tests keine Probleme auftreten, ist geplant diese Version als neues Stable-Update auszurollen. Etwaige Fehler-/Problemberichte bitte an uns weitergeben.
Alle vorab mit dieser Version geflashten Router befinden sich weiterhin im Stable-Branch und werden sich also auch in Zukunft automatisch mit kommenden Updates versorgen. (Ihr hängt also nicht in einem „Testbranch“ fest.)
Wie bereits im Mai angekündigt, ist dieses Vorbereitungsupdate hier auf die erste LEDE-Version unbedingt nötig. Wir können also LEDE erst ausrollen, wenn „0.9.0+tackin“ überall erfolgreich läuft. Daher bitte ich eure Router zügig mit dieser Version upzudaten oder zumindest ein Autoupgrade an euren Routern zu ermöglichen.
„Unter der Haube“ gibt es bei diesem Gluon-Update auch einige weitere zwingende Neuerungen. Dazu schreibe ich aber einen eigenen Artikel.

Fazit: Wer nicht updatet wird in einigen Wochen leider kein Freifunk bei uns mehr genießen können.

300 Knoten – Zeit für Statistiken

Letzten Dienstag Abend haben wir die 300 aktiven Router geknackt!
globalgraph_365d

Da unsere aktuelle stable Firmware die WR841N V10 und V11 noch nicht unterstützt haben wir zur Zeit eine etwas chaotische Softwarebestückung. Das wird sich vermutlich in den nächsten Wochen bessern.
firmware-statistik

Auch auf der Meshkarte kann man unseren Fortschritt klar erkennen:
mesh1

Unser größtes zusammenhängendes Mesh hat 31 Knoten, unser zweitgrößtes 23.
mesh2

Alle Informationen dieses Blogposts wurden aus unserer internen ffmap-d3 (externer Link) entnommen.

Layer 2-Anycast-Routing mit BATMAN

Bisher wurde Traffic von Clientgeräten ins Internet via Unicast geroutet. Dazu musste das Clientgerät explizit angeben, über welchen Gateway der Traffic ins Internet geleitet werden sollte. Wenn das Clientgerät nicht den besten Gateway gewählt hat führte dieses Verhalten eventuell zu unnötigem Traffic zwischen unseren Gateways.

Wir haben am 13./14. Oktober Layer 2-Anycast-Routing ausgerollt. Hierbei gibt der Client nur noch an, dass der Traffic an irgendeinen Gateway geleitet werden soll und das Netz leitet den Traffic automatisch zum nächstgelegenen Gateway.

Die Idee selbst wurde bereits im BATMAN-Wiki beschrieben: Man aktiviert die Bridge Loop Avoidance batctl bl 1 und vergibt eine Anycast-MAC-Adresse und bindet an diese dann die Anycast IP-Adressen. Wir verwenden dazu, wie im Wiki vorgeschlagen, MAC-VLAN-Interfaces. Siehe dazu auch unsere Konfiguration auf Github.

Bei den MAC-VLAN-Interfaces ergibt sich ein Problem: Standardmäßig antwortet ein Linux-Host auf ARP-Anfragen an alle seine IP-Adressen mit der MAC-Adresse des Interfaces, an dem die Anfrage eingeht. Wenn also ein Client versucht die MAC-Adresse zur Anycast-IP-Adresse herauszufinden antwortet der Gateway mit seiner Unicast-MAC-Adresse, da das Unicast-Interface das Paket als erstes gesehen hat. Dieses Verhalten kann man umstellen auf „antworte nur dann, wenn du an diesen Client auch über dieses Interface routen würdest“. Das geht mit sysctl -w net.ipv4.conf.all.arp_filter=1. Siehe dazu auch die entsprechende Kernel-Dokumentation.

Als nächstes haben wir dann das Problem, dass der Gateway genau dann, wenn die Anycast-IP-Adresse im Spiel ist, das Anycast-Interface benutzen soll und sonst das normale Interface. Dieses Problem lässt sich mit Source-Routing lösen:

if ! grep -q anycast /etc/iproute2/rt_tables; then
	echo 11 anycast >> /etc/iproute2/rt_tables
fi

#the anycast-mesh-ip is routed via the anycast-mac
ip rule add from 10.172.0.10/32 table anycast
ip route add table anycast 10.172.0.0/16 dev fftr-gw-anycast

Jetzt haben wir eine Anycast-IP-Adresse, die man anpingen kann und die man für Services wie DNS benutzen kann. Darüber routen kann man aber noch nicht, denn der rp_filter verwirft Pakete, auf dem Anycast-Interface, da der Kernel zurückkommende Pakete nicht über das Anycast-Interface routen würde, da sie nicht die Anycast-IP-Adresse als Quelle haben. Daher schalten wir den rp_filter einfach ab: sysctl -w net.ipv4.conf.fftr-gw-anycast.rp_filter=0; sysctl -w net.ipv4.conf.br-fftr.rp_filter=0.

Nach diesen Änderungen hat man eine funktionsfähige Layer 2-Anycast-Adresse. Nun kann man den DHCP-Server anpassen, damit diese Adresse für IPv4-Traffic verwendet wird und das Programm, welches die IPv6-RAs sendet an das Anycast-Interface binden damit für IPv6-Traffic die link-local Anycast-Adresse verwendet wird. Auch seine iptables sollte man nicht vergessen anzupassen.

Unsere kompletten Konfigurationsänderungen lassen sich auf Github betrachten.

Update 09.11.2015:

Aufgrund von Meldungen verschiedener merkwürdiger Probleme durch unsere User und fehlender Zeit für weitere Analyse haben wir Anycast zur Zeit wieder abgeschaltet und fahren wieder Unicast.

Firmwareupdate 0.7.3 / Neuer Supernode: Salem

Wir haben soeben die neue Firmwareversion 0.7.3 zum Autoupdate freigegeben. Damit geht unser neuester Supernode, Salem, in den Produktivbetrieb über.

Geräte mit aktiviertem Autoupdater sollten wie gewohnt binnen weniger Tagen automatisch aktuallisieren.

Beim Aufbau des neuesten Supernodes haben wir auch Ansible-Definitionen ausgearbeitet, mit denen jetzt bei Bedarf automatisiert weitere Supernodes installiert werden können. Diese finden sich zur freien Verwendung in unserem Github-ansible-Repository.

Freifunk für Flüchtlinge

Freifunk Trier​ würde gerne die Leute in den Aufnahmeeinrichtung für Asylbegehrende mit Internet versorgen und sucht dafür Leute, die ihren Internetanschluss zur Verfügung stellen würden (ca. <10Mbit Bandbreite). Wir würden die Technik stellen und haben auch Sponsoren, die uns dabei unterstützen. Die letzte Meile wird über Richtfunk gehen, das heißt ihr müsst auf Sicht zu den Aufnahmeeinrichtungen wohnen.

Das ganze ist legal und soll dabei helfen sich hier in Deutschland zu orientieren und Kontakt mit Verwandten zu halten. Bei Interesse schreibt uns einfach direkt an, informiert euch auf trier.freifunk.net oder kommt beim maschinendeck.org Treffen Mittwochs vorbei.

Um die Störerhaftung oder ähnliches brauchen sich die Inhaber der Internetanschlüsse dank Providerstatus und VPN-Tunnelung keine Sorgen zu machen.

 

Ziel ist die Versorgung der Standorte in der Dasbachstraße (Trier), der Luxemburger Straße (Trier), Bitburg und in Hermeskeil.

Neu: Meshviewer

meshviewer-tufa02
Seit dem 29.05.2015 haben wir den Meshviewer (externer Link) als alternative zur klassischen ffmap-d3 (externer Link) installiert. Meshviewer zeichnet sich dadurch aus auch auf der Kartendarstellung verbundene Clients darzustellen und ist damit besonders dazu geeignet auf Veranstaltungen an einem Infostand den aktuellen Status des Netzwerks darzustellen.

Der Meshviewer wird, wie auch die klassische ffmap-d3 minütlich aktualisiert, die externe Version stündlich.

Firmwareupdate 0.7.1

Am 18.07.2015 haben wir die neue Firmwareversion 0.7.1 zum Autoupdate freigegeben.

Neuerungen der Firmware:

  • Update von Gluon v2014.4 nach Gluon gluon-v2015.1.1-4-gda16254
    • Mehr unterstützte Geräte
    • Configmode auch in Englisch
    • mehr Einstellungsmöglichkeiten im Configmode (Mesh-on-LAN, reduktion der WLAN-Sendeleistung, auf Wunsch Abschaltung der VPN-Verschlüsselung zur Erhöhung des Durchsatzes, etc.)
    • verbesserte Sicherheit
    • viele Bugfixes zur Steigerung der Stabilität
    • Schnellerer VPN-Verbindungsaufbau durch fastd-Update von v16 auf v17.2
    • Weitere Neuerungen: siehe Gluon-Releasenotes von 2015.1 und 2015.1.1
  • Reduktion auf 1 VPN-Link pro Router
    Wir verwenden nur noch eine VPN-Verbindung pro Router, statt 2, und haben damit die Grundlast jedes Routers halbiert.
  • Eigenentwicklung: Integration einer abgespeckten Statusseite
    Die bisherige Stautsseite mit Live-Signalstärkeanzeigen belastete die Router stark. Da wir hin und wieder Probleme damit hatten, dass irgend jemand die Seite stundenlang offen ließ und damit die Performance des betreffenden Routers massiv beeinträchtigt wurde, haben wir eine abgespeckte Version der Statusseite entwickelt, die keine nennenswerte Last auf den Routern erzeugt. Außerdem zeigen wird, wenn im gluon-config-mode-supernode Munin eingeschaltet wurde, eine kleine Auswahl der Graphen des Routers an.
  • Integration unserer Eigenentwicklung gluon-fastd-tunneling-mtu-workaround
    Die „MTU“ gibt die maximale Paketgröße an, die über eine Verbindung übertragen werden kann. Unser VPN-Tunnel zur Verbindung vom Uplink-Router zum Supernode braucht eine gewisse mindest-MTU um problemlos arbeiten zu können. Wenn die MTU des Anschlusses kleiner ist als diese mindest-MTU gibt es MTU-Probleme, die zum Beispiel dafür sorgen können, dass es zu merkwürdigen Verbindungsproblemen kommt. Dieses Skript versucht vollautomatisch MTU-Probleme zu erkennen und versucht diese mit verschiedenen Mitteln automatisch zu beheben: Sollte ein Uplink mit MTU-Problemen erkannt werden wird versucht auf IPv6 only umzuschalten, da gerade neue Dualstack-Light-Anschlüsse häufiger Probleme mit einer zu niedrigen MTU auf IPv4 haben. Sollte das nicht funktionieren wird versucht auf IPv4 only umzuschalten, da mansche Anschlüsse natives IPv4 und IPv6 über Tunnel und somit MTU-Probleme auf IPv6 haben. Sollte dieser Modus auch fehlschlagen wird wieder auf normalen Dualstackmodus zurückgewechselt, falls das Problem nur temporär auftritt. Diese Modus-Umschaltung betrifft nur die Verbindung zwischen Supernodes und Freifunk-Routern, nicht aber darüber angeschlossene Geräte. Im Freifunknetz Trier ist immer richtiges Internet sowohl mit IPv4 als auch IPv6 verfügbar.
  • configmode-supernodes[1]Integration unserer Eigenentwicklung gluon-config-mode-supernode
    Die Supernodes bieten verschiedene Dienste an, an denen manchmal Routerbesitzer Anpassungen vornehmen möchten. Das ist jetzt für 2 Dienste sehr einfach möglich:

    • ipv6-Firewall: Standardmäßig verbieten Supernodes direkte Verbindungen zwischen den Freifunk-Routern und dem Internet. Sollte der Routerbesitzer direkte Verbindungen aus dem Internet zu seinem Router wünschen, zum Beispiel für Fernadministration via SSH, können direkte Verbindungen zum Router nun über den Configmode freigeschaltet werden. Verbindungen von und zu Clients und sämtliche Verbindungen innerhalb des Freifunknetzes sind unabhängig von dieser Funktion immer möglich
    • Munin: Via Munin können vollautomatisch verschiedene Statistikdaten der Router erfasst werden. Diese Funktion kann auf Wunsch über den Experten-Modus des Configmode aktiviert oder deaktiviert werden.

Niemand hat die Absicht, ein offenes Netz zu errichten!

In der Tufa Trier fand heute der 5. European Job Day statt. Als zusätzlich gegen 12:15 Uhr viele Mittagspause hatten, waren mehr als 90 gleichzeitige Nutzer im Freifunk Netz Trier.

Der Aufbau eines Freifunknetzes in der Tufa Trier war unser erstes „Leuchtturmprojekt“. Es ist erfreulich zu sehen, dass von Anfang an das Netz stabil funktioniert und auch genutzt wird. Da der vorhandene Internetanschluss langsam ist, suchen wir nun in der Nähe liegende Freifunker mit denen die Router ein sehr ausfallsicheres Mesh-Netzwerk bilden können.

Tufa Router Statistiken Collage

Tufa-Collage

(auf das Bild klicken zum zoomen)

 

Monitoring mit Munin

Wir haben seit einigen Wochen ein Munin-Monitoring für Router, entwickelt
von nonchip. Auf Wunsch der Router-Besitzer können jetzt verschiedene Statistiken wie die übertragene Datenmenge, die Anzahl an verbundenen Clients oder Daten zum Systemzustand des Routers erfasst und grafisch dargestellt werden. Die verwendete Software stellen wir zur freien Verwendung für jedermann in einem Github-Repository zur Verfügung.

Tufa Nutzerzahl über den Tag

Tufa Nutzerzahl über den Tag

Routertraffic über den Tag

Routertraffic über den Tag

Die Statistiken sind im Freifunknetz unter munin.draco.fftr erreichbar. Wenn auch dein Router erfasst werden soll, dann melde dich, damit dieser für die Erfassung freigeschaltet wird.