Blog

  • IPv4, IPv6 & DS-lite

    IPv4, IPv6 & DS-lite

    Es folgt ein kleiner Artikel in dem ich auf Adressierung innerhalb des Internet Protokolls eingehe und damit DS-lite mit verbundenen Problemen erkläre.

    IP

    Ein wesentlicher Bestandteil der Datenübertragung im Internet bildet IP – das Internet Protokoll. IP ist dabei vor allem für das Routing verantwortlich. Kurz gesagt bedeutet Routing, die Entscheidung zu fällen auf welchem Weg ein Datenpaket von Computer zu Computer schließlich zu seinem Ziel gelangt. Um das zu realisieren wird unter anderem den Netzwerkteilnehmern jeweils eine eindeutige Adresse zugewiesen. Um diese Adressen soll es in diesem Artikel gehen.

    IPv4

    In den Anfängen des Internets wurde von IP die Version IPv4 entwickelt. Mit dieser Version erreichte das Internet große Verbreitung und sie wird auch heute noch zu einem großen Teil genutzt. Eine IPv4 Adresse besteht aus 4 8-bit Blöcken, die mit Punkten von einander getrennt werden. Ein Beispiel wäre 87.142.36.2. Jeder Block kann, aufgrund der 8-bit Größe, einen Wert zwischen 0 und 255 annehmen. Die Gesamtgröße des Adressraums ergibt 32-bit. Daraus folgt, dass 2^32=4.294.967.296 verschiedene Adressen in IPv4 existieren. Das mag viel erscheinen, doch wenn man dies der Anzahl an Menschen gegenüber stellt (über 7.000.000.000), dann wird klar, dass der Adressraum von IPv4 in den heutigen Dimensionen des Internets an seine Grenzen stößt. Das gilt besonders, falls auch jede Lampe mal ans Internet angeschlossen werden sollte (siehe auch IoT). Zudem sind bei weitem nicht alle dieser 2^32 Adressen als globale individuelle Adressen verwendbar, da in dem IPv4 Standard auch einige Adressen mit Spezialanwendung vorgesehen sind.

    Im folgenden Graph ist die Anzahl der verfügbaren IPv4 Adressen über die Zeit aufgetragen.

    Von Mro – Eigenes Werk, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=10593349

    IPv6

    Aufgrund der Begrenzung von IPv4 wurde eine neue Version von IP entwickelt: IPv6. In dieser Version besteht eine Adresse aus 8 16-bit Blöcken, die durch Doppelpunkte getrennt werden, z.B. also: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344. Die Adresse ist damit 128-bit lang. Damit sind 2^128 verschiedene Adressen möglich, das sind 2^96 mal mehr Adressen im Vergleich zu IPv4. Eine unvorstellbar große Menge. Trotz dessen, das IPv6 bereits 1998 eingeführt wurde, ist die Verbreitung von IPv6 noch nicht besonders groß, sie liegt bei etwa 23% (vgl. hier, Stand 2.1.18) Und genau darin liegt auch das Problem bei dem nun in Folge beschriebenen DS-Lite.

    DS-Lite

    Dein Internet Anbieter ist im Endeffekt die Stelle, die bestimmt mit welcher IP Version du im Internet unterwegs bist. Dabei hat dein ISP verschiedene Möglichkeiten, dir IP Adressen zu zuweisen:

    • nur eine IPv4 Adresse: Als Nutzer wirst du hierbei keine Einschränkungen erfahren, da es wahrscheinlich noch(!) keine Dienste gibt, die nur über IPv6 erreichbar sind. Das Problem: IPv4 Adressen gehen zur Neige und sind möglicherweise nicht mehr günstig für deinen ISP zu reservieren.
    • eine IPv6 und eine IPv4 Adresse (dual stack): Dir steht hier als Nutzer die volle Funktionalität beider Internetprotokolle zur Verfügung. Es gilt jedoch das selbe Problem für die IPv4 Adressen.
    • eine IPv6 Adresse + eine getunnelte IPv4 Verbindung (dual stack-lite): Einige ISP in Deutschland gehen mittlerweile zu dieser Methode über. Dein ISP umgeht damit das Problem, dass sie für jeden Kunden eine IPv4 Adresse benötigen. Stattdessen werden Anfragen die du an einen Server stellst, der nur IPv4 verarbeiten kann, über deinen ISP getunnelt. Das Problem hierbei: du bist für das IPv4 Protokoll nicht mehr öffentlich verfügbar.

    Das schöne an der Internet-Infrastruktur ist, dass auf der niedrigsten Ebene keine Hierarchie wie z.B. eine Client-Server Hierarchie etabliert wird. Es ist theoretisch damit jedem möglich mit einer IP-Adresse einen Computer im Internet für alle öffentlich verfügbar zu machen. Diese Möglichkeit wird jedoch in DS-lite begrenzt. Es ist dir zwar noch möglich IPv4 Adressen zu erreichen, da sie für dich getunnelt werden, aber du besitzt keine IPv4 Adresse mehr, mit der du für Anfragen aus dem Internet erreichbar bist. Falls du jedoch einen kleinen Server von deinem Heim-Internetanschluss betreiben willst, ist es eigentlich genau das was du brauchst. Denn von vielen Internetanschlüssen aus, insbesondere aus dem mobilen Internet deines Handys, wirst du noch keine IPv6 Verbindung zu deinem Server herstellen können.

    Genau vor diesem Problem stand ich, da ich meinen Raspberry Pi aus dem Internet erreichbar machen wollte. Wie ich erreicht habe, dass mein Raspberry Pi aus dem Internet erreichbar ist und das sogar für das IPv4 Protokoll, werde ich bald in einem Artikel beschreiben.

    Nützliche Links

  • 01 Raspberry Pi – Erste Schritte

    01 Raspberry Pi – Erste Schritte

    Mit diesem Post beginnt eine kleine Reihe von mir wie ich verschiedene Software auf meinem Raspberry Pi eingerichtet habe. Dieser Artikel soll die Grundvoraussetzungen schaffen um mit dem Raspberry Pi zu arbeiten.

    Voraussetzungen

    • Raspberry Pi
    • microSD Karte (mind. 2GB, empfohlen 8GB oder mehr)
    • USB – microUSB Kabel für die Energieversorgung + ein Netzstecker für USB Kabel oder ein Gerät welches die Energie per USB Port liefert, z.B. ein Router
    • ein LAN Kabel (neue Raspberry Pis haben auch eine WLAN Schnittstelle, LAN ist trotzdem die Variante mit der stabileren Verbindung)
    • Ein Router
    • Ein Computer mit SD-Kartenslot
      Alle Tutorials sind aus Sicht eines Ubuntunutzers geschrieben. Daher sind diese mit einem unixoiden Betriebssystem sicherlich leichter nachzuvollziehen.

    Ziele

    Raspberry Pi einrichten

    Nachdem du alle Zutaten beisammen hast können wir mit dem Einrichten des Raspberry Pis beginnen.

    Betriebssystem installieren

    Eine Reihe vieler verschiedener Betriebssysteme für den Raspberry Pi findest du hier. Ich nutze das Betriebssystem Raspbian Stretch Lite, welches auf Debian Strech basiert. Der Zusatz "Lite" bedeutet, dass das Betriebssystem keine grafische Oberfläche besitzt, sondern nur über Kommandozeile zu bedienen ist. Ein sogenanntes headless System.

    1. Lade Debian Stretch Lite hier herunter.
    2. Entpacke die zip Datei z.B. mit unzip 2018-04-18-raspbian-stretch-lite.zip
    3. Schau dir mit lsblk deine Speichermedien an.
    4. Lege deine microSD Karte in dein SD-Kartenlesegerät ein.
    5. Schau dir mit lsblk deine Speichermedien erneut an. Das neu hinzugekommene ist deine SD-Karte. Sie könnte z.B. sdb heißen. Du erkennst sie außerdem an der passenden Speicherkapazität.
    6. Falls die SD-Karte gemountet wurde, erkennbar daran, dass in der Zeile der SD-Karte sdb oder auch einer Partition der SD-Karte z.B. sdb1 ein Mountpoint beschrieben ist z.B. /media/: SD-Karte unmounten mit sudo umount sdb
    7. Schreibe nun das Betriebssystem auf die SD-Karte
    sudo dd if=2018-04-18-raspbian-stretch-lite.img of=/dev/sdb bs=4M status=progress

    Achtung! Überprüfe diese Zeile sehr genau. if steht für input file und sollte die heruntergeladene Datei beinhalten. of steht für output file und sollte auf jeden Fall die korrekte Bezeichnung deiner SD-Karte haben. Gemeint ist hier die Bezeichnung sdb, die gesamte SD-Karte und nicht eine einzelne Partition wie z.B. sdb1. Wenn du hier nicht die SD-Karte einträgst, sondern z.B. deine Festplatte wirst du damit alle deine Daten auf der Festplatte verlieren. bs steht für block size. Ein hoher Wert beschleunigt den Vorgang, die Option ist jedoch nicht entscheidend. status=progress sorgt dafür, dass du während des Kopierens eine Fortschrittsanzeige bekommst.
    Kleine Zusatzinfo: Falls du dich fragst warum du auf die SD-Karte als "file" zugreifst, schau hier.

    1. SSH aktivieren: Dazu legst du auf der neu entstandenen Partition "boot" auf der SD-Karte eine Datei mit dem Namen "ssh" an, z.B. mit touch ssh
      Fertig! Das Betriebssystem Raspbian Stretch Lite befindet sich nun einsatzbereit auf deiner SD-Karte.

    Raspberry Pi in Betrieb nehmen

    1. Stecke die microSD-Karte in den Raspberry Pi.
    2. Verbinde den Raspberry Pi per LAN Kabel mit deinem Router.
    3. Schließe den Raspberry Pi per USB Kabel an eine Energieversorgung an.
      Fertig! Es sollte nun die rote Power-LED leuchten und gelegentlich die grüne Busy-LED blinken.

    Mit dem Raspberry Pi per SSH verbinden

    Der Raspberry Pi ist standardmäßig so konfiguriert, dass er sich von einem Router eine IP Adresse zuweisen lässt. Diese musst du als nächstes herausfinden. Dazu besuchst du über einen Browser deinen Router, in meinem Fall eine Fritzbox, also mit fritz.box.
    IP Adresse vom Raspberry Pi
    Über das Menü navigierst du zu Heimnetz -> Netzwerk. Dort findest du unter Netzwerkverbindungen ein Gerät mit dem Namen raspberrypi. Weiterhin erkennst du deinen Raspberry Pi anhand der LAN-Buchse an der du den Raspberry Pi angeschlossen hast. In diesem Fall LAN 4. Direkt daneben erkennst du die lokale IP-Adresse, hier: 192.168.178.90 Die Standard Benutzerdaten sind:

    • Benutzer: pi
    • Passwort: raspberry

    Das Einloggen ist also nun, wenn du dich im selben lokalen Netzwerk befindest, möglich mit:

        ssh pi@192.168.178.90

    Nun wirst du nach einem Passwort gefragt, dies ist das eben genannte. Fertig! Du hast dich soeben erfolgreich per ssh auf deinem Raspberry Pi eingeloggt.

    Als ersten Schritt auf deinem Raspberry Pi und als wichtigen letzten Schritt in diesem Artikel solltest du noch das Standardpasswort zu einem eigenen ändern mit passwd.

    Nützliche Links