Schlagwort-Archive: IPv6

IPv6-Optimierungen im Freifunk Mainz, Wiesbaden und Umgebung (MWU)

Seit der Aktivierung öffentlicher IPv6 Adressen für alle Clients hatten wir aufgrund unser Netzstruktur einen ungünstigen Datenfluss bei ein- und ausgehenden IPv6-Verbindungen. Weil Datenpakete nicht den kürzesten Weg durch unser Netz genommen haben, sondern intern weiter verteilt werden mussten, hat dies zu einem unnötigen Bandbreitenverbrauch geführt. Das Verhalten hat uns einiges an Kopfzerbrechen bereitet, letztendlich hat unser Admin-Team aber eine Lösung gefunden, die in den letzten Wochen stückweise aktiviert und verprobt wurde.

Das Problem

Unsere Freifunk MWU-Netze (Mainz, Wiesbaden und Umgebung) bestehen aus vielen kleinen Teilnetzen die mittels B.A.T.M.A.N. Advanced zu einem großen virtuellen Layer 2 Netzwerk zusammengeschaltet werden. Innerhalb dieser Netze kann jedes Gerät direkt mit allen anderen kommunizieren. In jedem dieser Netze gibt es vier Gateways die im wesentlichen drei Aufgaben haben. 1) Sie sind die VPN Gegenstelle für alle Knoten, 2) Default Gateway für alle Clients und 3) kümmern sich und die Ausleitung des Internetverkehrs über den Freifunk Rheinland. Aufgrund dieser virtuellen Netztopologie wissen die Endgeräte nichts über die wirkliche Struktur des Netzes.

Dies war solange kein Problem, wie wir extern nur über IPv4 kommuniziert haben, da jedes Gateway eine eindeutige Adresse hatte und sämtlicher Internetverkehr der Clients mit diesen geNATet wurde. Hierdurch konnte der Freifunk Rheinland immer eindeutig zuordnen über welches Gateway die Verbindung initiert wurde und hat die Daten immer auf dem für uns kürzesten Weg übertragen.

Mit IPv6 ist es aber nicht mehr nötig NAT einzusetzen (Nein, NAT ist kein Sicherheitsfeature!) da 2^128 Adressen verfügbar sind, dass sind ca. 600 Billiarden Adressen pro mm². Ohne NAT wird die Adresse bei ausgehendem Datenverkehr nicht mehr durch die des Gateways ersetzt wodurch die Systeme des Freifunk Rheinland nicht mehr zuordnen können über welches Gateway die Anfrage gesendet wurden und senden die Daten an das erstbeste. Unsere Gateways müssen sich dann darum kümmern die Daten intern an das Gateway weiterzuleiten über welches die Daten angefragt wurden. Da diese, wie bereits erwähnt, bei verschiedenen Hostern stehen entsteht ein unnötige Belastung der verfügbaren Bandbreite.

Die Lösung

Wir haben verschiedene Ansätze diskutiert und kamen am Ende nur zu einer Lösung. Wir müssen unsere Netze (/48) in kleinere Subnetze (/56) segmentieren. Gesagt, getan. Seit ein paar Tagen besitzt jedes Gateway sein eigenes Subnetz. Leider ist dies nur die halbe Lösung da es nur für eingehende Daten hilft. Durch unser Layer 2 Netz erhält jeder Client die Router Advertisements (im folgenden kurz RA genannt) von allen Gateways und trägt sich deshalb auch alle vier als Default Gateway ein. Da der Client nicht weiß, an welches Gateway der Knoten per VPN verbunden ist, kann er keine qualifizierte Entscheidung treffen, welches Gateway für ihn das Nächste ist.

Glücklicherweise haben sich bereits andere kluge Menschen darüber die Köpfe zerbrochen und ein Programm namens gluon-radv-filterd entwickelt. Dieses Programm muss auf den Knoten laufen und ist seit der Version 2016.2.2+mwu1 in unser Firmware enthalten. Die Funktion ist relativ einfach zu verstehen: Alles was das Programm tut, ist, sich jedes eingehende RA Paket anzuschauen und zu prüfen welche Verbindungsqualität (TQ) B.A.T.M.A.N Advanced zu der Gegenstelle hat die dieses gesendet hat. Anschließend wird eine Filterregel erstellt die alle RAs verwirft die nicht von der Gegenstelle mit der besten TQ kommen. Da die TQ mit jedem Hop sinkt können wir sicher sein, dass das RA Paket mit der besten TQ vom nächstgelegen Gateway kommt.

Bei Fragen oder Feedback wendet euch bitte an die Maschinenraum-Liste.

Aktivierung von öffentlichen IPv6-Adressen im Mainzer Freifunk-Netz ab 15. September 2016

mitarbeiter des monatsSchon seit Längerem planen wir die Aktivierung von öffentlichem IPv6 im Mainzer Freifunk-Netz. Beim letzten Community-Treffen haben wir jetzt nochmal ausgiebig darüber diskutiert und unser Votum abgegeben, dass wir die Umstellung nun sobald wie möglich angehen wollen.

Dazu sind wir nochmal die Vor- und Nachteile durchgegangen und haben besonders zwei Punkte nochmal diskutiert, die bei den letzten Treffen und auf unserer allgemeinen Community-Mailingliste kritisch angemerkt wurden.

Erstens die nach Umstellung weltweite Sichtbarkeit von Kontaktdaten in den Freifunk-Knoten. Schließlich ist jeder Knoten dann ja weltweit erreichbar und bietet auf seiner IPv6-Adresse auch seine Webseite an. Hier gab es beim Treffen wie auch auf der Mailingliste kritische Stimmen, die sagten, dass sie nicht gerne hätten, dass ihre Kontaktdaten dann in noch größerem Stil abrufbar seien. Hierfür brauchen wir also auf jeden Fall eine Lösung. Diese kann Opt-Out (wer will, löscht seine Daten) oder Opt-In (wir löschen alle Daten mit dem nächsten Update und wer will, trägt sie wieder ein) sein. Wir haben uns für Opt-Out entschieden, mehr dazu siehe unten.

Das zweite Thema war die Angreifbarkeit der einzelnen Endgeräte: Mit öffentlicher IPV6 sind auch die Endgeräte dann zukünftig ja weltweit erreichbar, also auch angreifbar. Hier haben wir hin und her überlegt und uns Gedanken über die Verantwortung gemacht, die wir auch für unsere Netz-Nutzer mit tragen.

Klar ist: Wir wollen gemäß Pico-Peering-Agreement keine Eingriffe in den Datenverkehr, also auch keine Inhalte-Filterung, also auch keine Firewalls im Freifunk. Wir wollen Netzneutralität und einen „Free Flow of Information“.

D.h. wir müssen uns bewusst sein: Durch IPv6 steigt der Angriffsvektor auf die Endgeräte und wir werden keine Schutzmechanismen wie Firewalls im Freifunk-Netz etablieren, d.h. jede*r NutzerIn muss zukünftig noch mehr dafür sorgen, dass sein Endgerät möglichst sicher ist. Allerdings: Das müssen die NutzerInnen heute schon! Die NutzerInnen dürfen sich auch heute nicht drauf verlassen, dass ein öffentliches WLAN sie vor irgendwas schützt.

Auch heute schon werden alle WLANs in der Regel einfach so genutzt, ohne dass NutzerInnen wissen, ob ein NAT verwendet wird oder nicht und ob eine Firewall verwendet wird oder nicht. Die Endgeräte müssen damit also generell klar kommen und mit immer mehr offenen Netzen auch darauf ausgelegt und vorbereitet werden.

Und auf der anderen Seite ist es so, dass es für uns heute schon eine schwierige Situation ist, kein IPv6 anzubieten. Kein IPv6 anzubieten, bedeutet schließlich auch, Kommunikation netzseitig zu verhindern.

Insgesamt sind wir nach Abwägung aller Argumente zu dem Schluss gekommen, dass wir IPV6 via Freifunk Rheinland-Backbone auf den Gateways aktivieren wollen, d.h. das Admin-Team darum bitten werden, dies zu tun.

Wir haben uns folgende Vorgehensweise überlegt:

  1. Damit niemandes Kontaktdaten gegen seinen Willen im Netz abrufbar sind, weisen wir Alle auf die Umstellung hin und erklären, wie sie ihre Kontaktdaten löschen können, wenn sie das wollen. Wir schreiben dazu einen Blogbeitrag (this) und senden eine Mail an alle, die eine Adresse hinterlegt haben. Wer keine Mail-Adresse hinterlegt hat, aber eine Telefonnummer, den rufen wir an (das sind hoffentlich nur ganz wenige).
  2. Zum 15. September aktivieren wir dann öffentliches IPv6 im Mainzer Freifunk-Netz. Außerdem erklären wir in einem weiteren Blogbeitrag und ggf. per Pressemitteilung, dass und wie man sich in öffentlichen WLANs schützen sollte.

Bis zur Umstellung haben wir jetzt also noch ca. einen Monat Zeit, Alle zu informieren. Wer will, kann seine Kontaktdaten bis dahin manuell rauslöschen.

Bei Fragen oder Anmerkungen, kommentiert gerne hier im Blog oder auf unserer Mailingliste.