Text für IPv6-Diskussionsgrundlage

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 gewegen.

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):

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:


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, stellt eure Fragen und äußert eure Meinung zu dem Thema. Wenn die Communty sich positiv positioniert zur Umstellung auf IPv6, wollen wir diese auch möglichst bald durchführen.

============================================================================================================================================================================================================================

Anhang

Kleiner Grundkurs/Glossar:


=========================================================

FAQ

#Wie unterscheiden sich für den User IPv6 und IPv4?
Sowohl die Nodes als auch jeder Client der IPv6 unterstützt ist aus dem IPv6 Internet erreichbar. Für IPv4 wird wie bisher die sogenannte Network Address Translation (NAT) durchgeführt. Dadurch werden alle Clients hinter wenigen IPv4-Adressen im Internet "versteckt".
- v4 weiterhin NAT, v6 direkt weltweit sichtbare Adresse

# Kann ich mit einer weltweit eindeutigen IPv6-Adresse leichter ausgespäht werden? (Tracking)
Es gibt viele technische Methoden, Nutzerverhalten zu verfolgen / beobachten / auszuspähen (Tracking). Der Weg über die IPv6 Adresse ist aber der unzuverlässigste Weg ein Gerät zu tracken (einen Userbezug gibt es direkt auch nicht, können ja mehrere User sein, die das Gerät nutzen). Ein Gerät bewegt sich außerdem ständig in unterschiedlichen Netzen, sodass letztendlich nur ein Tracking mittels des Interface-Identifiers möglich wäre, der auf der MAC-Adresse basiert. Mit aktivierten Privacy Extensions (auf den meisten Geräten Standard) wird regelmäßig der Interface-Identifier geändert und dadurch ein solches Tracking so erschwert, dass es zu aufwendig und unzuverlässig für die großen Tracker ist. Egal ob IPv4 oder IPv6 - User Tracking erfolgt heutzutage mittels User Accounts/ Browser IDs/ Cookies/ versteckte Pixel/Bilder/  etc. Es ist wichtig, zu erinnern, dass es auf der anderen Seite viele weitere Methoden des Tracking gibt, die von der verwendeten IP-Version unabhängig funktionieren.

# Kann mein Computer mit einer weltweit eindeutigen IPv6-Adresse leichter "angegriffen" werden.
Ein potentieller Angreifer kann einen Computer mit einer weltweit gültigen, einmaligen IPv6-Adresse leichter erreichen, als einen, der über NAT angebunden ist. Allerdings muss er die Adresse dafür kennen. Bei der riesigen Anzahl möglicher IPv6-Adressen ist es aktuell sehr (zeit-)aufwändig durch ausprobieren Adressen zu finden, die tatsächlich in Benutzung sind. Denkbar ist dies eher über die Beobachtung von Netzverkehr.
Ein aktiver Angriff ist allerdings nur ein mögliches Angriffsszenario. Auch Computer hinter einem NAT sind auf vielfältige Weise angreifbar (z.B. über böse Web-Seiten oder E-Mail-Anhänge). Wichtig ist in beiden Fällen, im Hinblick auf Security-Patches, möglichst immer auf dem neuesten Stand zu sein, um das Ausnutzen von bekannten Sicherheitslücken zu verhindern. Darüber hinaus sollte man eine Personal Firewall auf dem Endgerät selbst zu nutzen, die eingehenden Internetverkehr blockiert. Viele Betriebssysteme bringen eine Firewall direkt mit, man muss keine Zusatztools installieren (z.B. Windows Firewall/ iptables/ netfilter/ etc.).

=============================================================

Outtakes:

Wie bisher schon bietet jeweils ein Service im Freifunk-Netz dann den Clients eine IPv4-Adresse und auch ein IPv6-Netz an. Nach dem Verbinden mit dem Netz haben die Geräte, die auch IPv6 unterstützen (so gut wie alle) in Grundeinstellung neben einer IPv4- auch bereits eine IPv6-Adresse.

Eine Grundidee im Internet war und ist, dass jedes teilnehmende Gerät eine eindeutige Adresse erhält und somit eindeutig erreichbar ist. Da inzwischen deutlich mehr Geräte am Datenverkehr im Internet teilnehmen wollen, als der Adressraum von IPv4 Adressen bietet (4294967296), musste von dem Prinzip abgewichen werden: immer einige Geräte (insbesodere "Clients") werden hinter nur einer Adresse versteckt (s. u.: NAT). Mit IPv6 wurde der Adressraum drastisch vergrößert (auf 340282366920938463463374607431768211456 Adressen), so dass damit zum ursprünglichen Prinzip zurückgekehrt werden kann: Jedes Gerät bekommt wieder eine eindeutige Adresse - genauer gesagt: jedes Gerät kann sogar viele eindeutige Adressen nutzen. Somit ist auch jedes Gerät von jedem anderen aus direkt erreichbar (sofern auf dem Weg keine Firewalls installiert wurden).  < -- kann raus, oder?

Auf der Webseite des World IPv6 Launch gibt es viele interessante Infos über die IPv6 Migration: http://www.worldipv6launch.org/ < -- kann raus, oder? Warum? Der Text behauptet doch, pointer zu Weiterlesen zu geben!?

Schon jetzt basiert unser Freifunk-Netz stark auf  IPv6. Wir verwenden dafür intern sogenannte "Unique Local Addresses" (ULA -https://de.wikipedia.org/wiki/IPv6#Unique_Local_Unicast ). <-- kann man das in ein paar worten für alle verständlich erklären?
    Mainz: fd37:b4dc:4b1e::/64
    Wiesbaden: fd56:b4dc:4b1e::/64

Diese Adressen (welche adressen?) werden nicht im Internet geroutet (ähnlich wie die privaten IP-Adressen bei IPv4 - https://de.wikipedia.org/wiki/IPv4#Lokale.2FPrivate_Netzwerkadressen ) und ermöglichen deshalb nur Datenverkehr innerhalb des Freifunk-Netzes und mit den Netzen anderer Freifunk-Communities. Unsere bisherige Anbindung an das Internet (VPN Anbieter) erlaubt uns kein Routing weltweit gültiger IPv6-Netze.

IPv6 soll IPv4 in Zukunft ersetzen. Es ist das Internet-Protokoll der Zukunft. Die Gluon-Entwickler haben das von Anfang an erkannt und deshalb alle Firmware-Funktionen auf IPv6 aufgebaut. Die Freifunk-Knoten selbst besitzen gar keine IPv4-Adresse mehr (außer die Next-Node Adresse, aber die ist lokal). Für Firmware-Updates, Zeitsynchronisation, OpenWRT-Pakete, DNS, etc. nutzen die Gluon-Knoten schon immer IPv6.
<--

Link to the Pad