Hallo Freifunkas!
Wie ihr vielleicht mitbekommen habt, nutzen wir im Freifunk-Netz für die Ausleitung der Internet-Daten nicht mehr VPN-Server diverser VPN-Anbieter im Ausland. Stattdessen erfolgt dies nun über den Freifunk Rheinland e.V., der für uns unseren Internet-Verkehr (aktuell) in den Städten Berlin, Düsseldorf und Frankfurt ins Internet weiterleitet.
Damit haben wir bis jetzt super Erfahrungen gemacht. Wir bekommen deutlich mehr Bandbreite, als es bei den kommerziellen VPN-Anbietern der Vergangenheit der Fall war. Messungen vom Gateway aus ergaben 300 bis 600 MBit/s statt der bisherigen 20 bis 70 MBit/s Durchsatz.
Diese Umstellung betraf zunächst nur das Internet-Protokoll IPv4. Auch von Freifunk Rheinland können wir allerdings keine öffentlichen IPv4-Netze zur Verwendung in Wiesbaden und Mainz bekommen. Die Clients können sich weiterhin nur gemeinsam mit den wenigen öffentlichen Adressen der Gateways im Internet bewegen.
Der Freifunk Rheinland bietet uns nun auch die Möglichkeit, ein öffentliches IPv6-Netz für uns zu „routen“. Das bedeutet, dass man dann aus dem Freifunk-Netz heraus auch auf das Internet mittels des Internet-Protokolls IPv6 zugreifen könnte. Auf lange Sicht ist das unabdingbar, weil es allgemeines Ziel ist, irgendwann IPv4 durch IPv6 im Internet zu ersetzen. Wenn wir im Freifunk den Dienst „Internet“ weiterhin anbieten wollen, ist die Einführung von öffentlichem IPv6 also auf Dauer unabdingbar.
Wir würden das aber gerne vorab mit Euch, der Community, diskutieren. Vor allem möchten wir Euch ein wenig über IPv6 selbst informieren, über die Hintergründe, möchten Denkanstöße geben sowie Literaturhinweise zur Selbstrecherche zur Verfügung stellen.
IPv6 im Freifunk-Netz (jetzt schon):
- Mainz: fd37:b4dc:4b1e::/48 (ULA)
- Wiesbaden: fd56:b4dc:4b1e::/48 (ULA)
Zusätzlich könnten wir die öffentlichen IPv6-Netze, die uns vom Freifunk Rheinland zugewiesen wurden, für den Zugriff auf das Internet im Freifunk-Netz verwenden:
- Mainz: 2a03:2260:11a::/48 https://apps.db.ripe.net/search/lookup.html?source=ripe&type=inet6num&key=2a03:2260:11a::/48
- Wiesbaden 2a03:2260:11b::/48 https://apps.db.ripe.net/search/lookup.html?source=ripe&type=inet6num&key=2a03:2260:11b::/48
IPv6, wat dat soll?
Wie Ihr schon wisst, befindet sich die Welt des Internets seit Jahren im Übergang von IPv4 zu IPv6. IPv6 ist das neue Netzwerkprotokoll, über das im Internet kommuniziert wird. Auf lange Sicht soll es das alte IPv4 Protokoll gänzlich ablösen.
Der Hauptgrund für die Entwicklung eines neuen Internetprotokolls war der begrenzte Adressraum von IPv4. Der Adressbereich von IPv4 umfasst 32 Bits. Es gibt einfach keine IPv4-Adressen mehr. Das war schon Anfang, Mitte der 90er Jahre der Fall.
Während das neue IPv6-Protokoll mit einem Adressraum von 128 Bits entwickelt wurde, hat man sich in der Zwischenzeit mit NAPT (Network Address and Port Translation) sowie privater Adressräume beholfen und dynamische IPs. Das sind in den allermeisten Fällen private Adressen à la 192.168.x.y.
Dieser Workaround hat aber dazu geführt, dass die Ende-zu-Ende Kommunikation im Internet erschwert bis verhindert wurde; Services und Applikationen mussten mühsam angepasst werden, damit diese auch mit NAPT funktionieren, Software/Firmware von Internet-Routern mussten angepasst werden, etc.
Die „Sicherheit“, in der sich viele hinter einem NAPT-Anschluss wiegen, kommt allerdings nicht durch NAPT. Auf den Internet-Routern bei Heimanschlüssen läuft immer zusätzlich noch eine Firewall, die Verbindungen von extern (aus dem Internet) blockiert. Das Tracking über IP wird mittels NAPT erschwert. Heutzutage gibt es aber noch mehr Möglichkeiten, auch ohne IP-Tracking Endgeräte über die Nutzung vieler Dienste hinweg zu verfolgen.
In der Zwischenzeit sind nun endgültig so gut wie keine öffentlichen IPv4-Adressen mehr frei. Internet-Service-Provider (ISP) erhalten also keine Adressen mehr, müssen aber immer mehr Haushalte, Benutzer und Geräte mit Internet versorgen.
Mit den wenigen zur Verfügung stehen IPv4-Adressen und der immens gestiegenden Geräte-/ Nutzerzahl kommt auch die aktuellste Technik an ihre Grenzen (große NAT Appliances in NAT-Kaskaden wie z.B. im Mobilfunk oder DS-Lite). Durch die steigenden Kosten haben die ISPs begonnen, IPv6 auszurollen. Auch Content-Provider sind nachgezogen. In den letzten 5-10 Jahren ist das IPv6 Internet enorm gewachsen, Tendenz stark steigend.
Schlaue Leute haben sich bei IPv6 viele Gedanken gemacht. Man hat aus Fehlern bzw. ungünstigen Entscheidungen bei IPv4 gelernt und im IPv6 viele Bereiche (Header, Hilfsprotokolle, etc.) verbessert. Vor allem aber wurde uns die Ende-zu-Ende Kommunikation wiedergegeben. Geräte im Internet werden nicht mehr zwangsweise hinter NAPT-Routern „versteckt“ und dürfen nun mit allen Internetteilnehmern auf Augenhöhe kommunizieren.
NATs are good?
Mehr zu sagen als in diesem YouTube Video gibt es nicht: https://www.youtube.com/watch?v=v26BAlfWBm8
Ende-zu-Ende statt NAPT, bin ich hilflos ausgeliefert?
Kurz gesagt: Ohne Weiteres: ja. Aber das ist in einem öffentlichen Netzwerk ja nichts Neues. Benutzer im Freifunk-Netz sind nach wie vor selbst für die eigene Sicherheit der verwendeten Geräte verantwortlich.
Freifunk ist netzneutral, priorisiert daher keine Datenströme einzelner Anbieter oder drosselt welche von anderen. Und Freifunk blockiert auch keine Kommunikation. Bezogen auf IPv6 bedeutet das, dass auch aus dem Internet in Richtung Freifunk-Netz keine Blockaden, z.B. durch eine Firewall auf den Gateways, eingerichtet werden.
Ein Benutzer kann seine Geräte vor Zugriffen aus dem Internet z.B. durch eine sogenannte „Personal Firewall“ schützen. Bei Windows-Systemen z.B. sind die Voreinstellungen schon gut gewählt, wenn man für die Freifunk-Verbindung den Netzwerktyp „Öffentliches Netzwerk/Public Network“ auswählt, siehe http://windows.microsoft.com/en-us/windows/choosing-network-location#1TC=windows-7 .
Auch aktuelle Linux-Distributionen bringen sichere Firewall-Voreinstellungen mit. Wie schon gesagt, liegt es aber in der Verantwortung des Benutzers, das zu überprüfen, diese Dinge sollte jeder Nutzer sowieso immer im Auge haben, insbesondere wenn er oder sie mit einem mobilen Gerät in fremden Netzen wie Cafés oder Flughäfen umherzieht.
Was passiert mit IPv4, wenn wir dann IPv6 haben?
Beide Protokolle werden für eine lange Übergangsphase parallel betrieben. Dies nennt man Dual-Stack. Geräte, die beide Protokolle unterstützen (so gut wie alle), haben dann eine IPv4- und mehrere IPv6-Adressen. Langfristig wird IPv4 im gesamten Internet abgelöst (s.o.).
Was bedeutet das für die User?
Für Endanwender bleibt die Zuschaltung von öffentlichem IPv6 verborgen: ob auf einen Dienst im Freifunk oder im Internet dann über IPv4 oder IPv6 zugegriffen wird, passiert komplett im Hintergrund. Alle aktuelleren Betriebssysteme unterstützen neben IPv4 auch IPv6 (der IPv6-Standard ist ja schon aus den 90ern). Wie schon gesagt haben die Geräte dann eine IPv4- und mehrere IPv6-Adressen. Dienste im restlichen Internet oder auch im Freifunk-Netz können entweder IPv4-only, Dual-Stack oder auch IPv6-only betrieben werden. Ein IPv4-only-Dienst liefert über DNS nur eine IPv4 Adresse (einen A-Record) zurück, ein Dual-Stack-Dienst hingegen sowohl eine IPv4- als auch eine IPv6-Adresse (einen A- und einen AAAA-Record). Ein IPv6-only-Dienst liefert nur eine IPv6-Adresse (einen AAAA-Record) zurück. Wie kommuniziert mein Gerät denn nun mit einem Dienst, den ich über IPv4- als auch IPv6 ansprechen kann? Aktuelle Betriebssysteme bevorzugen allesamt IPv6-Verbindungen, ein Dual-Stack Dienst wird dann also immer per IPv6 angesprochen. Das Verhalten können Applikationen aber übersteuern. Aktuelle Browser (z.B. Chrome, Firefox, Opera) arbeiten da nach dem sogenannten „Happy Eyeballs“-Prinzip (https://tools.ietf.org/html/rfc6555 ). Vereinfacht gesagt, baut der Browser gleichzeitig eine TCP Verbindung über IPv4 und über IPv6 auf (TCP Handshake). Das Protokoll, über das die TCP-Verbindung am schnellsten aufgebaut wird, gewinnt und wird für die Kommunikation verwendet.
Das alles passiert, wie schon gesagt, im Hintergrund und ist für den Benutzer völlig verborgen.
Was bedeutet das für die Knoten/ -betreiber?
Das Freifunk-Netz basiert jetzt schon (fast) ausschließlich auf IPv6. Ein Knoten hat im Freifunk-Netz gar keine IPv4 Adresse mehr, sondern nur noch IPv6-Adressen. Ein Knoten bezieht seine Systemzeit (NTP), seine Firmware und OpenWrt-Pakete schon jetzt ausschließlich über IPv6. Auch der Zugriff auf die Statusseite sowie DNS-Anfragen des Knotens selbst erfoglen über IPv6.
Für die Knoten ändern sich daher nicht viel. Die werden lediglich eine weitere IPv6-Adresse aus dem öffentlichen IPv6-Adressbereich besitzen. Das hat die Konsequenz, dass die Knoten und damit auch die Statusseite aus dem Internet erreichbar sind.
Momentan wird z.B. auch der auf den Knoten hinterlegte Kontakt auf der (neuen) Statusseite angezeigt. Dies wird allerdings zu Recht von vielen Communities kritisiert, so dass es hoffentlich bald eine Lösung dafür geben wird. Aktuell könnte aber jeder aus dem IPv6-Internet auf die Statusseite der Knoten zugreifen und damit auch den hinterlegten Kontakt sehen. Wir haben zwar immer darauf hingewiesen, dass die hinterlegten Kontaktdaten öffentlich zugänglich sind. Wenn die Community hier aber z.B. sagt: „Keine Kontaktdaten im Internet“, werden wir uns um eine Lösung kümmern.
Wie erhalten Geräte eine IPv6 Adresse?
Stichwort „IPv6 Autoconfiguration“ Schon jetzt verteilen unsere Gateways sogenannte „Router Advertisements“. Das sind IPv6 Pakete, in denen ein Router von sich behauptet, ein „Router“ zu sein. Darüber hinaus beinhaltet so ein Paket ein oder mehrere IPv6-Prefixe, NTP-Server-Informationen, DNS-Server-Informationen, etc.
Ein Gerät kann ein Router Advertisement auch durch ein „Router Solicitation“-Paket anfordern. Erhält ein Gerät ein Router Advertisement Paket, nimmt er das oder die IPv6-Prefixe und baut sich damit seine eigene IPv6-Adresse zusammen. Es nimmt sich also das Prefix z.B. „fd37:b4dc:4b1e::/64“ und sein Interface-Identifier, z.B. „126f:3fff:fe88:5c56“, und fügt beide zu einer IPv6-Adresse zusammen, in diesem Beispiel dann „fd37:b4dc:4b1e::126f:3fff:fe88:5c56“.
Darüberhinaus trägt sich das Gerät den Absender des Router Advertisements Pakets als Default Gateway ein. Im Moment verteilen alle vier unserer Gateways Router Advertisments, jedes Gerät hat also aktuell vier Default Gateways für IPv6.
Im Moment verteilen unsere Gateways nur die intern benutzten IPv6-Prefixe für ULA-Adressierung, die nicht im Internet geroutet werden. Wenn öffentliches IPv6 aktiviert wird, wird einfach neben dem ULA-Prefix noch ein öffentlich routbares IPv6-Adress Prefix zusätzlich per Router Advertisement verteilt.
Sind öffentliche IPv6-Adressen trackbar?
Im ersten Wurf des IPv6-Standards wurden Interface-Identifier ausschließlich auf Basis der MAC-Adressen (EUI-64) generiert. Dieser ändert sich nur, wenn z.B. die Netzwerk-Karte ausgetauscht wird, also so gut wie nie. Dadurch wäre ein Gerät auf Dauer trackbar.
Aus diesem Grund hat man die „Privacy Extensions“ (eine Erweiterung zum ersten IPv6-Standard) eingeführt, wodurch zusätzlich ein zufälliger Interface Identifier gewürfelt wird, der obendrein noch regelmäßig geändert wird. Die IPv6-Adresse auf Basis der Privacy Extensions ersetzt aber nicht die IPv6-Adresse, die per MAC-Adresse gebildet wurde, sondern dem Gerät zusätzlich zugewiesen. Ein Gerät mit aktivierten Privacy Extensions hat also pro Prefix zwei IPv6-Adressen. Dabei ist sichergestellt, dass für die Kommunikation ausschließlich die zufällige IPv6-Adresse verwendet wird. So wird Tracking anhand der MAC-Adresse verhindert.
In allen modernen Betriebssystemversionen sind Privacy Extensions aktiv, aber das sollte jeder dennoch selbst an seinem Gerät überprüfen.
Ausblick auf das weitere Vorgehen
Wir wollen nun mit euch, der Community, diese Umstellung diskutieren. Bitte beteiligt euch zahlreich (auf den Mainzer und Wiesbadener Mailinglisten), stellt eure Fragen und äussert eure Meinung zu dem Thema. Wenn die Community sich positiv positioniert zur Umstellung auf IPv6, wollen wir diese auch möglichst bald durchführen.
Update: Nach dem ausführlichen Diskussionsprozess haben wir uns entschieden, IPv6 ab dem 15. September 2016 im Mainzer und Wiesbadener Freifunk-Netz zu aktivieren.