Raspberry Pi VPN – Teil 3: IPv4 versus IPv6

VPN

In den beiden vorangegangenen Artikeln haben wir erfahren, was ein virtuelles privates Netzwerk (VPN) ist und warum es aus Sicherheitserwägungen heraus sinnvoll ist, ein Smartphone über ein VPN mit dem Internet zu verbinden. In diesem dritten Teil der Artikelserie geht es um eine grundlegende Entscheidungen, was die Technologie angeht. Verwenden wir das alte IP Version 4 oder das neue IPv6? Und diese Frage betrifft zum einen das Tunnelnetzwerk selbst und zum anderen das, was wir durch den VPN-Tunnel übertragen wollen. Das klingt erst mal abstrakt und sehr technisch, es wird aber gleich klarer werden.

Aber was ist eigentlich IP?

Wikipedia sagt:

Das Internet Protocol (IP) ist ein in Computernetzen weit verbreitetes Netzwerkprotokoll und stellt die Grundlage des Internets dar.

https://de.wikipedia.org/wiki/Internet_Protocol

IP ist also das Netzwerkprotokoll, das unsere Personal Computer, Server, Smartphones und Webseiten miteinander verbindet und das sowohl im Heimnetz als auch im Internet. Der verlinkte Wikipedia-Artikel verrät mehr über das Internet Protokoll und seine Geschichte, so dass ich mich auf das Wesentliche für dieses Projekt konzentrieren kann.

Es gibt 2 verschiedene IP?

Ja leider – oder vielmehr zum Glück. Denn dem ersten IP (IPv4) sind bereits im Jahr 2011 die Adressen ausgegangen. IPv4 hat nur 32-Bit lange Adressen, weil sich in den 1980er Jahren niemand vorstellen konnte, dass 4 Milliarden Adressen einmal zu wenig werden würden. Aber damals dachte auch noch niemand an das Internet. Also musste ein Nachfolger her und das ist IPv6 mit 128-Bit Adressen. Damit könnte man jedem Sandkorn der Erde eine eigene IP-Adresse geben und dieser Adressvorrat wird so schnell nicht ausgehen.

Verfügbarkeit IPv4 und IPv6

Hier eine kleine Momentaufnahme im Sommer 2019 um zu sehen, wie denn der Stand der Verfügbarkeit von IPv4 und IPv6 ist.

IPv4IPv6
PC, Smartphone, Notebookallealle halbwegs modernen Geräte
Dienste, Server, Webseiten im Internetalleeinige, Tendenz zunehmend
heimisches LAN / WLANallealle halbwegs modernen Router
öffentliche WLANsalleFreifunk kann es, sonst aber nur wenige
mobiles Internet (per Mobilfunkprovider)alleTelekom D1: ja
Vodafone D2: nein
Telefonica O2, Eplus: nein
drahtgebundene Internetzugänge (per Internet Service Provider)nur ältere Anschlüsse, Tendenz abnehmendalle halbwegs modernen Anschlüsse

Bis auf einige Mobilfunkprovider und Betreiber von öffentlich zugänglichen WLANs ist IPv6 eigentlich bereits sehr weit verbreitet. Trotzdem nutzen wir alle heute immer noch überwiegend IPv4. Deshalb war es mein Plan zu dieser Artikelserie ursprünglich auch, das VPN auf IPv4 aufzubauen, so wie das seit Jahren übliche Praxis ist. Allerdings musste ich feststellen, dass ich dann schöne Artikel geschrieben hätte, die meine Leser kaum mehr nachbauen hätten können. Selbst wenn ich selbst (aus einem glücklichen Umstand heraus) an meinem Router sowohl eine öffentliche IPv4 als auch eine IPv6 Adresse habe, dürfte dieser Zustand inzwischen eher selten sein. Im Jahr 2019 vergeben die Internet Service Provider (ISP) typischerweise an ihre Privatkunden ausschließlich IPv6 Adressen und schleusen das alte IPv4 über einen Tunnel ins Internet.

Was bedeutet das?

Wenn wir an unserem Personal Computer sitzen, oder am Notebook oder Smartphone, dann kann dieses Gerät heute immer beides – sowohl IPv4 als auch IPv6. Geräte, die kein modernes IPv6 können sind recht selten – mein Feinstaubsensor gehört zum Beispiel dazu. Obwohl es oft da ist, merken wir in der Regel von IPv6 nichts und wir nutzen es auch kaum. Denn die Webserver draußen im Internet haben alle noch IPv4 Adressen über die wir sie auf die althergebrachte Weise erreichen können.
Probleme mit den knappen IPv4 Adressen haben aber die Internet Service Provider (ISP), also die Firmen, die uns per DSL oder Kabelnetz ins Internet bringen. Deshalb vergeben sie in der Regel seit Jahren kein Dual Stack, also IPv4 und IPv6 zusammen mehr an Privatkunden. Single Stack, also IPv4 alleine sowieso nicht. Die ISPs haben etwas Neues erfunden, das sie DS-Lite nennen, also Dual Stack Lite. Das ist ein IPv6 Anschluss, der die alte IPv4 Welt durch einen IPv6-Tunnel verbindet. Wer vom Heimnetz aus über den eigenen Router ins Internet surft, der hat damit kein Problem, denn der Tunnel leitet alles brav durch. Aber – und jetzt kommt der Hasenfuß bei DS-Lite – der umgekehrte Weg aus dem Internet ins Heimnetz funktioniert nicht mehr. Die Ursache liegt darin, dass es beim Provider einen Tunnelendpunkt für viele Kunden gemeinsam gibt und der Weg aus dem Internet ins Heimnetz damit nicht mehr eindeutig ist.

Wenn es um die Möglichkeiten eines VPN-Betriebs geht, befinden wir uns gerade in einer Umbruchphase. Am heimischen DSL-Anschluss findet sich kaum mehr IPv4 und die Mobilfunkprovider und die Anbieter öffentlichen WLANs sind noch nicht so weit mit IPv6. Der Trend geht aber ganz klar zu IPv6. Die Mobilfunkanbieter arbeiten massiv an der Einführung von V6. Lediglich die Betreiber offen zugänglicher WLANs haben keinen Druck, weil das Surfen im Internet ja auch mit IPv4 möglich ist.

Was hab ich? IPv4, IPv6, Dual Stack oder DS-Lite?

Das stellen wir mit einem Blick auf den eigenen Internetrouter fest – hier im Beispiel der Online-Monitor unter dem Menüpunkt Internet auf einer Fritz!Box. Bei anderen Routern oder Connectboxen findet sich sicher eine ähnliche Anzeige.

Wie man erkennen kann, hat diese Fritz!Box sowohl eine IPv4 als auch eine IPv6 Adresse, es handelt sich also um einen vollwertigen Dual Stack Anschluss. Sollte in der Zeile bei Internet IPv4 etwas von DS-Lite und/oder von Tunnel stehen, dann haben wir nur eine öffentliche IPv6 aber keine IPv4 Adresse. Alternativ zum Blick auf den Router gibt es auch Web-Sites, die man einfach per Browser ansurft und die versuchen festzustellen, ob IPv4 und/oder IPv6 Adressen am Router vorhanden sind. Zum Beispiel https://whatismyipaddress.com/ds-check oder https://www.wieistmeineip.de/ipv6-test/. Bei meinem Dual Stack Anschluss funktioniert die Erkennung einwandfrei, ob aber ein DS-Lite-Anschluss richtig erkannt wird, kann ich nicht sagen.

Und wie geht es jetzt weiter?

Hier trennen sich die Wege – je nachdem welche öffentlich erreichbare Adresse anliegt – und zwar wie folgt:

1.) Ich habe DS-Lite und damit nur eine öffentliche IPv6 Adresse

Damit hat man auch keine weitere Wahl. Nachdem aus dem Internet der eigene Router nur mit einer IPv6 Adresse angesprochen werden kann, müssen wir den VPN Tunnel auch auf IPv6 aufbauen. Dazu ist es aber notwendig, dass zumindest der eigene Mobilfunkprovider IPv6 anbietet, sonst sollte man abwarten, bis das der Fall ist. Allerdings bieten viele öffentlich zugängliche WLANs noch kein IPv6 und dieser Zustand wird sich nur langsam bessern.

2.) Ich habe Dual Stack und damit beides IPv6 und auch IPv4

Es ist ein seltener und glücklicher Umstand, beides zur Verfügung zu haben. In diesem Fall empfehle ich den VPN Tunnel noch auf dem alten IPv4 aufzubauen. Hier ist man einfach noch auf der sicheren Seite und findet mehr mobile Internetzugänge, die ein VPN ermöglichen. Ein Umstieg auf einen IPv6 Tunnel sollte aber für die Zukunft schon mal ins Auge gefasst werden. Und wer experimentierfreudig ist, der probiert sich an einem Dual Stack VPN Tunnel, also einer VPN Variante, die beide IP Stacks nutzen kann.

IP-Test

Außerhalb und innerhalb des VPN Tunnels

An dieser Stelle wissen wir, wie unser eigener Router ans Internet angebunden ist. Entweder nur mit einer öffentlichen IPv6 Adresse als DS-Lite Anschluss oder mit IPv6 und IPv4 als Dual Stack. Dementsprechend müssen wir den VPN Tunnel auch mit IPv6 oder IPv4 aufsetzen.

Das gilt aber nur für die Außenseite des Tunnels, also das Smartphone auf der einen und den VPN-Server auf der anderen Seite und alles zwischen den beiden, das Internet, unseren Router und das interne Heimnetz. Was wir innerhalb des VPN Tunnels transportieren, ist dagegen eine ganz andere Sache. Denkbar wären zum Beispiel folgende Tunnelvarianten:

  • IPv4 in IPv4
  • IPv4 in IPv6
  • IPv6 in IPv6
  • IPv6 in IPv4
  • IPv4 und IPv6 in IPv4
  • IPv4 und IPv6 in IPv6
  • sowie Kombinationen davon

Aber ich will die Verwirrung auch gleich wieder zu beenden – realistisch sind eigentlich nur die ersten beiden. Wenn wir IPv4 im Tunnel transportieren sind wir gut bedient. Die Software PiVPN, die wir zum Aufsetzen eines OpenVPN Servers benutzen werden, kann bisher sowieso ausschließlich IPv4.

Unterschiede zwischen IPv4 und IPv6, die wir kennen sollten

Zumindest, wenn wir uns an einen VPN Tunnel unter IPv6 machen wollen.
Ich kann hier natürlich nicht das ganze IPv6 erklären – das füllt dicke Bücher und so gut kenne ich mich damit auch nicht aus. Aber das Aufsetzen eines eigenen VPN Tunnels unter IPv6 hat mir einige schwer erarbeitete Aha-Erlebnisse beschert, die ich hier gerne weiterreiche.

Dynamisches DNS

Auch DDNS genannt oder DynDNS, obwohl letzteres genau genommen der Name eines entsprechenden Dienstleisters ist. Darum wird es im nächsten Artikel ausführlich gehen und an dieser Stelle mehr um die Unterschiede bei IPv4 und IPv6.

Was ist dynamisches DNS?

DNS ist das Domain Name System, also ein Mechanismus, der im Internet (und auch im Heimnetzwerk) Domänennamen (wie www.meinblog.de) in IP-Adressen (wie 140.144.3.25 bei IPv4) übersetzt. Daran ist erst mal noch nicht viel Dynamik, weil diese Zuordnung ziemlich starr ist, so lange keine Serverumzüge stattfinden.

Jetzt haben Privatanschlüsse bei Internet Service Providern die eigenartige Eigenschaft, dass einmal in 24 Stunden die öffentliche IP-Adresse des Routers geändert wird. Das passiert bei IPv4 und in ähnlicher Form auch bei IPv6. Der Internet Provider vergibt also aus einem Pool von Adressen jede Nacht eine andere. Das hat wenig mit knappen Adressen zu tun, aber ein wenig vielleicht mit Datenschutz, weil ein Kunde so nicht so leicht anhand seiner IP-Adresse identifiziert werden kann. Hauptsächlich liegt es aber daran, dass Internet Service Provider Anschlüsse mit fest zugeordneter IP-Adresse teurer verkaufen können als welche, bei denen die Adresse nicht fix ist. Bei einer festen IP-Adresse können Kunden nämlich öffentliche Dienste (Webseiten) zuhause betreiben, wenn die Adresse täglich wechselt, dann geht das nur schlecht.

Es sei denn, die Namensauflösung würde sich zeitnah dynamisch an den täglichen Adresswechsel anpassen und für den bekannten Domänennamen die neue Adresse ausliefern. Und genau das macht dynamisches DNS (DDNS).

Wenn wir vom Smartphone aus einen VPN Tunnel zu unserem Heimnetzwerk aufbauen wollen, dann bedienen wir uns eines DDNS-Anbieters, der uns (meist kostenlos) einen (Sub-)Domänennamen zur Verfügung stellt und unter diesem Namen immer die aktuelle Adresse unseres Heimnetzwerks ausliefert. DynDNS heißt so ein Dienstleister, oder My Fritz oder deSEC um nur beispielhaft ein paar Namen zu nennen.

Und woher kennt der DDNS Dienstleister die jeweils aktuelle IP-Adresse?

Die kennt er, weil wir sie ihm immer dann mitteilen, wenn sich in der Nacht die IP-Adresse ändert. Das macht natürlich automatisiert unser Internet Router oder ein speziell dafür installiertes Programm (DDNS-Uploader).

Unterschiede zwischen IPv4 und IPv6

Grundlegend funktioniert DDNS bei beiden IP-Versionen so wie oben beschrieben. Dann kommen wir nun zu den Unterschieden.

Bei IPv4 wird immer die IP-Adresse des Routers verwendet, wenn von außen auf etwas im Heimnetzwerk zugegriffen werden soll. Das hat den banalen Grund, dass nur der Router eine global gültige IP-Adresse hat, die sich auch noch täglich ändert. Das interne Heimnetzwerk ist aus privaten Adressbereichen aufgebaut, die im Internet nicht weiter geroutet werden. Die lauten gerne 192.168.0.1 oder 192.168.1.1 oder so ähnlich. Und weil viele Heimnetzwerke (oder auch Firmennetzwerke) intern die selben Adressen verwenden, konnte und kann man so gut der Adressknappheit in der IPv4-Welt begegnen.
Merke: Bei IPv4 zielt DDNS immer auf den Router.

Bei IPv6 gibt es keine Adressknappheit und deshalb werden innerhalb von Heim- und Firmennetzwerken üblicherweise auch globale Adressen vergeben, die im Internet geroutet werden. Folglich können wir aus dem Internet einen Server im internen Heimnetzwerk direkt mit seiner IPv6 Adresse ansprechen und nicht mit der des Routers. Das heißt aber jetzt natürlich nicht, dass alle Geräte im Heimnetzwerk aus dem Internet erreichbar wären – selbstverständlich nicht – aber darauf kommen wir noch. Und das heißt auch nicht, dass die globale Adresse eines internen Servers immer gleich bliebe – beileibe nicht – einmal täglich (oder auch seltener) ändert der Internet Provider den sogenannten Präfix der IPv6 Adresse und damit ändern sich auch alle globalen IPv6 Adressen im internen Netz. (Was bei IPv4 nicht der Fall ist.) Der Präfix ist hier quasi die Netzwerkadresse und das sind meistens und vereinfacht ausgedrückt die ersten 64 Bit der IPv6 Adresse. Die zweiten 64 Bit bilden den Interface Identifier und repräsentieren den Anschluss (also das Gerät).
Merke: Bei IPv6 zielt DDNS immer direkt auf den Server.

DDNS Realisierung für IPv4 und IPv6

Diese Unterschiede muss man kennen um dynamisches DNS richtig aufzusetzen. Wie wir in den folgenden Artikeln – getrennt für IPv4 und IPv6 – sehen werden, ist die Vorgehensweise unterschiedlich.

Bei IPv4 übernimmt es der Internet Router, seine eigene IP-Adresse (immer wenn sie sich ändert) dem DDNS-Dienst im Internet mitzuteilen.

Bei IPv6 muss hingegen die IP-Adresse des Servers (in unserem Fall des VPN-Servers) an den DDNS.Dienst übermittelt werden. Bei dieser Adresse ändert sich periodisch der Präfix. Die Aufgabe kann der Internet Router übernehmen, wenn er das beherrscht. Eine Fritz!Box kann das zum Beispiel im Zusammenspiel mit dem hauseigenen MyFritz DDNS-Dienst. Das geht aber nur, wenn man eine Fritz!Box als Router hat. Alternativ kann es auch der Server (in unserem Fall der Raspberry Pi) selbst übernehmen, seine geänderte IPv6-Adresse an einen DDNS-Dienst zu übermitteln. Dazu installiert man einen DDNS-Uploader (auch DDNS-Client genannt) zum Beispiel das Programm ddclient.

Forwarding am Router

Eine weitere Einstellung werden wir im nächsten Artikel am Router vornehmen. Und zwar müssen wir eine Freigabe für den VPN-Client einrichten, damit er aus dem Internet auf den VPN-Server (Raspberry Pi) zugreifen kann. Denn eigentlich ist unser Internet Router ja dafür da, das Heimnetz vor dem Internet zu schützen. Von innen nach außen können wir zwar problemlos surfen, aber von außen kommt keiner in das interne Netz. Es sei denn wir definieren explizit eine Ausnahme. Und hier gibt es wieder Unterschiede zwischen IPv4 und IPv6.

Port-Weiterleitung bei IPv4

Port-Weiterleitung, auch Port Forwarding oder Portfreigabe heißt der Mechanismus in der IPv4 Welt, der eine Kommunikationsanfrage aus dem Internet ins interne Heimnetz leitet. Wie wir oben gesehen haben ist bei IPv4 die IP-Adresse des Routers die einzige öffentlich geroutete Adresse. Demzufolge zeigt auch Der DDNS-Eintrag auf die Adresse des Routers. Durch eine Port-Weiterleitung versetzen wir den Router in die Lage auf einem bestimmten Port zu hören – bei unserem VPN-Tunnel ist das typischerweise der Port 1194. Ankommende Datenpakete auf diesem Port werden dann auf die hinterlegte Adresse im internen Netz weitergeleitet. Und das ist natürlich die IP-Adresse des VPN-Servers.

Adressfreigabe bei IPv6

Anders bei IPv6 – hier haben auch Rechner im internen Heimnetz global geroutete Adressen. Allerdings blockiert der Router alle Kommunikationsbeziehungen von außen nach innen. Hier müssen wir am Router lediglich eine Ausnahme definieren um den VPN-Server aus dem Internet erreichbar zu machen. Eine Adressübersetzung wie bei IPv4 findet jedoch nicht statt, der freigegebene Portbereich kann aber aus Sicherheitsgründen eingeschränkt werden.

Fazit

Nach dem Durcharbeiten dieses Artikels sollte nun jeder wissen, ob er seinen künftigen VPN-Tunnel auf IPv4 oder auf IPv6 aufsetzen muss. Und dem entsprechend lassen sich die nachfolgenden Artikel auswählen.

Zu kompliziert? Zu trockene Materie? Zu viel schwierige Netzwerk-Technik? Dann hier vielleicht mal kurz unterbrechen und vorab einen Blick in Artikel 11 werfen! Dort gibts zur Wiederholung und Vertiefung ein paar übersichtliche Netzwerkdiagramme.


Weitere Artikel in dieser Kategorie:

6 Kommentare

  1. Jan

    Hallo Helmut,

    klasse Block und nach einigen Mühen habe ich nun auch einen funktionierenden VPN-Tunnel mittels openvpn von einem Android Smart-Phone (Client „OpenVPN for Android“) auf einen Raspberry PI hinter einer Fritzbox im Vodafone-Netzwerk (DSLITE) aufgebaut.

    Dumme Frage: Einen Apache-Webserver auf dem Raspberry (Heimnetz) werde ich aber auch weiterhin nicht erreichen können, da keine öffentliche IPv4 (=> DSLITE) vorliegt und PIVPN bzw. OPENVPN IPv6 in IPv6 (da öffentliche IPV6 ja vorhanden) noch nicht unterstützt, richtig?

    Falls es möglich ist, wie?

    Vielen Dank und Gruß
    Jan

    Antworten
    1. Helmut (Beitrag Autor)

      Hallo Jan,

      wenn Du ein funktionierendes VPN vom Smartphone in Dein Heimnetz hat, dann kannst Du selbstverständlich darüber auch alle IPv4-Geräte im Heimnetz erreichen. Die brauchen keine öffentliche Adresse, weil Du ja per Tunnel im Heimnetz bist. Wenn es nicht funktioniert, dann liegt es vermutlich an der Namensauflösung. Versuch mal raspberry.fritz.box oder direkt die IPv4-Adresse Deines Apache.
      Viel Erfolg

      Antworten
  2. Jan

    Hallo Helmut,

    vielen Dank! Klasse, hat funktioniert mit raspberrypi.fritz.box

    Gruß
    Jan

    Antworten
  3. Horst Schwickart

    Mein Sohn hat einen Anschluss noch mit V4 und ich habe nur DS-Lite. Wenn ich die Fritzboxen jetzt mit Wireguard miteinander verbinde, müsste ich doch VPN von meinem Handy V4 nutzen können?

    Antworten
    1. Helmut (Beitrag Autor)

      VPN auf einen native IPv4 Internet Router geht natürlich, aber Netzkopplung ist schon nochmal etwas anderes als VPN.

      Antworten
      1. Horst Schwickart

        Funktioniert wie gedacht.
        Zuerst die beiden Fritzboxen mit Wireguard entsprechend der Avm Anleitung gekoppelt, dann einen VPN Zugang auf der Box mit V4 mmit Wireguard angelegt und den QR Code in die Wireguard-App eingelesen (Handy und Tablett. Jetzt ist Zugriff auf beide Boxen möglich.

        Antworten

Schreibe einen Kommentar zu Jan Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert