Feste IPv6-Adresse für den Raspberry Pi einrichten

Wenn man im Raspberry Pi IPv6 aktiviert, dann hat das den Nachteil, dass dabei eine ziemlich komplizierte IPv6-Adresse besteht, die man sich kaum merken kann. Sofern man den Raspberry Pi als Client benutzt, ist das kein Problem. Doch wenn man den Raspberry Pi als Server innerhalb des lokalen Netzwerk betreiben möchte oder öfter mal per SSH darauf zugreifen will, dann wäre eine statische IPv6-Adresse von Vorteil.
Das setzt natürlich voraus, dass IPv6 aktiviert ist und zumindest im lokalen Netzwerk funktioniert.

Aufgabe

  1. Ermitteln Sie eine freie IPv6-Adresse.
  2. Stellen Sie die IPv6-Konfiguration auf statisch um.
  3. Prüfen Sie, ob eine Verbindung mit der statischen IPv6-Adresse möglich ist.

Lösung: Statische IPv6-Adresse

Gleich zu Anfang muss hier darauf hingewiesen werden, dass ein Netzwerk-Interface mehrere IPv6-Adressen haben kann und in der Regel hat. Bei IPv4 ist es anders. Hier kann ein Interface immer nur eine IPv4-Adresse haben.

Um was es hier geht ist, dass man einen Raspberry Pi in einem lokalen Netzwerk unter einer statischen, link-lokalen IPv6-Adresse verfügbar macht.

Dazu öffnen wir die Konfigurationsdatei mit den IP-Einstellungen.

sudo nano /etc/network/interfaces

Dort tragen wir folgende Zeilen ein:

# IPv6
iface eth0 inet6 static
pre-up modprobe ipv6
address fe80::1
netmask 64

Es spricht nichts dagegen, diese Zeilen exakt so zu übernehmen. Man muss nur darauf achten, dass man die IPv6-Adresse nicht schon einmal im Netzwerk verwendet.

Anschließend speichern und schließen: Strg + O, Return, Strg + X.

Danach muss man den Raspberry Pi neu starten.

sudo reboot

Nach dem Neustart schaut man nach, was in den Netzwerk-Einstellungen drin steht.

ifconfig

Das Interface "eth0" sollte nun eine "inet6-Adresse" mit "fe80::1/64" und einem Gültigkeitsbereich "Verbindung" haben.

Wenn man vorher per SSH auf dem Raspberry Pi drauf war, bietet es sich an, dass man es jetzt nicht mehr mit der IPv4-Adresse tut, sondern mit der statischen, link-lokalen IPv6-Adresse.

Je nach SSH-Client wird der eine oder andere damit scheitern. Ein Beispiel mit einem SSH-Client auf der Kommandozeile:

ssh -6 pi@fe80::1

ergibt folgende Fehlermeldung:

ssh: connect to host fe80::1 port 22: No route to host

Diese Fehlermeldung ist eine ziemlich nichtssagende Fehlermeldung. Hier kann so ziemlich alles falsch sein. Aber, sofern man bei der Konfiguration nichts falsch gemacht hat, ist alles im grünen Bereich.
Was man hier wissen muss: Will man per IPv6 eine Verbindung irgendwohin aufbauen, dann muss man nicht nur die Adresse angeben, sondern auch das Netzwerk-Interface, über das die Verbindung aufgebaut werden soll.

Der SSH-Client muss deshalb wie folgt aufgerufen werden:

ssh -6 pi@fe80::1%en1

Nach dem "%" muss das Interface-Kürzel folgen über das eine IPv6-Connectivity möglich ist. Das Kürzel kann auch "eth0", "wlan0" oder anders heißen. Hierzu sollte man auf der lokalen Kommandozeile mit "ifconfig" (Linux, Mac OS) oder "ipconfig" (Windows) nachsehen.

Lösung: Über den Hostnamen auf den Raspberry Pi zugreifen (Zeroconf/Bonjour/Avahi)

Wer nicht mit IP-Adressen und deren Konfiguration hantieren möchte, kann das Problem auch mit Zeroconf lösen. Mit Zeroconf, auch Bonjour oder Avahi genannt, kann man innerhalb des lokalen Netzwerks eine Verbindung zum Raspberry Pi mit seinem Hostnamen aufbauen. Das heißt, statt der IP-Adresse, die man vielleicht gar nicht weiß, nimmt man einfach den Hostnamen, den man sich viel einfacher merken kann. Das funktioniert sowohl im Browser als auch per SSH.