Folge uns

Folge uns auf Facebook Folge uns auf Twitter Folge uns auf Google Abonniere unseren RSS-Feed Abonniere unseren Newsletter

Das Buch zu dieser Webseite

Elektronik-Fibel

Die Elektronik-Fibel, das Elektronik-Buch

Käufer der Elektronik-Fibel Kundenmeinung:
Die Elektronik-Fibel ist einfach nur genial. Einfach und verständlich, nach so einem Buch habe ich schon lange gesucht. Es ist einfach alles drin was man so als Azubi braucht. Danke für dieses schöne Werk.

Elektronik-Fibel
jetzt bestellen!

 

Die Elektronik-Fibel ist im iBookstore erhältlich

Die Elektronik-Fibel für Amazon Kindle erhältlich

Elektronik-Fibel als eBook von Google Play Store

Elektronik-Fibel als PDF-Datei ohne DRM

Elektronik Lernpakete

Lernpaket Einstieg in die Elektronik

Lernpaket Einstieg in die Elektronik

 

Lernpaket Elektronik

Lernpaket Elektronik

 

Lernpaket Elektronische Schaltungen selbst entwickeln und aufbauen

Lernpaket Elektronische Schaltungen selbst entwickeln und aufbauen

Statische/feste IPv4-Adresse für Raspbian Jessie (Raspberry Pi)

Wer den Raspberry Pi zum ersten Mal in Betrieb nimmt und darauf per SSH zugreifen möchte, der muss zuerst einmal die IPv4-Adresse herausfinden. Geschickterweise zeigt der Raspberry Pi nach dem Boot-Vorgang seine IPv4-Adresse auf dem Bildschirm an, sofern man ihn mit Tastatur und Bildschirm in Betrieb nimmt. Leider ändert sich die IPv4-Adresse immer mal wieder, weil bei der IPv4-Adressvergabe durch den DHCP-Server im lokalen Netzerk nicht immer die gleiche Adresse zugeteilt wird, sondern dynamisch irgendeine aus seinem Adress-Pool.

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 ist eine feste IPv4-Adresse von Vorteil. Hinweis hierbei: Man kann die Verbindung auch über den Hostnamen z. B. "raspberrypi.local" aufbauen. Nur funktioniert das nicht immer.

Hinweis: In der Fachsprache spricht man nicht von einer "festen IP-Adresse", sondern von einer "statischen IP-Adresse", weil es im Gegensatz dazu dynamische IP-Adressen gibt, die von einem DHCP-Server zugewiesen werden. Im Falle einer "statischen IP-Adresse" spricht man von einer manuellen IP-Konfiguration.

Hinweis: Wenn man statische IP-Adressen konfiguriert, dann sollten diese nicht aus dem DHCP-Pool eines DHCP-Servers kommen.

Mehr zum Thema IPv4-Adressen und DHCP

Aufgabe

  1. Ermitteln Sie eine freie IPv4-Adresse und die weitere IP-Konfiguration.
  2. Stellen Sie die IPv4-Konfiguration auf statisch um.
  3. Prüfen Sie die IPv4-Konfiguration.
  4. Prüfen Sie die Netzwerk-Verbindung auf Funktion.

Übersicht

Es gibt nicht nur eine, sondern gleich mehrere Varianten, wie man eine funktionierende Netzwerk-Konfiguration vornehmen kann. Welche man verwendet hängt von den Anforderungen und der persönlichen Bevorzugung ab.

  1. IPv4-Konfiguration in der Datei "/etc/network/interfaces"
  2. IPv4-Konfiguration per DHCP Client Deamon (DHCPCD)
  3. Interface durch DHCPCD ausschließen (Kombination)
  4. IP-Konfiguration im Router zuweisen (zentrale IP-Konfiguration)

Offiziell wird die IP-Konfiguration über den DHCPCD empfohlen (Lösung 2). Grundsätzlich spricht allerdings nichts dagegen, eine manuelle IP-Konfiguration über die Datei "/etc/network/interfaces" vorzunehmen (Lösung 1). Man kann auch beide Varianten miteinander kombinieren (Lösung 3). Der einfachste Weg wäre sicherlich, die IP-Zuweisung im Router zu machen (Lösung 4). Dabei müsste man keine Änderung am Raspberry Pi vornehmen.

Troubleshooting

Probleme bei der Netzwerk-Konfiguration sind nicht ausgeschlossen. Deshalb gleich zu Anfang ein paar Hinweise zur Problemlösung.

Lösung (Variante 1): IPv4-Konfiguration in der Datei "/etc/network/interfaces"

Konfigurations-Datei für die Netzwerk- bzw. IP-Konfiguration öffnen:

sudo nano /etc/network/interfaces

Eine vollständige IPv4-Konfiguration sieht wie folgt aus:

# Ethernet
auto etho
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.2
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

Es handelt sich hierbei um eine Beispiel-Konfiguration. Diese kann funktionieren, muss aber nicht. Sie einfach auszuprobieren ist nicht sinnvoll. Man sollte vorher klären, was man hier eintragen muss und nicht irgendwie herumprobieren. Hilfreich ist es, wenn man nachschaut, was andere Clients im eigenen Netzwerk haben bzw. was beispielsweise schon per DHCP zugeteilt wurde.

Bei der Vergabe der IPv4-Adresse muss man jedoch darauf achten, dass man eine Adresse wählt, die noch NICHT verwendet wird und sich auch NICHT im Adress-Pool eines DHCP-Servers (z. B. Internet-Router) befindet. Ansonsten kann es zu Verbindungsproblemen im Netzwerk kommen.

Nachdem man die Änderungen vorgenommen hat kann man die Datei speichern und schließen: Strg + O, Return, Strg + X.

Hinweis: In Raspbian Wheezy ab 2015-05-05 und in Raspbian Jessie ist standardmäßig ein DHCP Client Daemon (DHCPCD) aktiv, der zum Problem werden kann, wenn man die IPv4-Konfiguration auf diese Weise vornimmt.

Wenn man diesen DHCP-Client definitiv nicht braucht, dann sollte man ihn deaktivieren.

Bei Raspbian Wheezy:

sudo service dhcpcd stop
sudo update-rc.d -f dhcpcd remove

Bei Raspbian Jessie:

sudo service dhcpcd stop
sudo systemctl disable dhcpcd

Um die Änderungen zu übernehmen empfiehlt sich hier ein Reboot.

sudo reboot

Weniger radikal ist es, das "networking" neu zu starten. Das ist aber nur sinnvoll, wenn man NICHT per SSH mit dem Raspberry Pi verbunden ist.

sudo service networking restart

Alternativ kann man das Interface "eth0" aus- und wieder einschalten. Auch das ist nur dann sinnvoll, wenn man NICHT per SSH verbunden ist, sondern lokal mit Bildschirm und Tastatur am Raspberry Pi sitzt.

sudo ifdown eth0
sudo ifup eth0

Dadurch wird das Interface "eth0" beendet und neu gestartet. Beim Start werden die Einstellungen übernommen. Danach müsste der Raspberry Pi mit seiner statischen IPv4-Adresse erreichbar sein.

Anschließend ist die Netzwerk-Konfiguration zu prüfen.

Lösung (Variante 2): IPv4-Konfiguration per DHCP Client Deamon (DHCPCD)

In Raspbian Jessie ist standardmäßig ein DHCP Client Daemon (DHCPCD) aktiviert. Der offiziell empfohlene Weg eine IPv4-Konfiguration vorzunehmen, ist über den DHCPCD, der dafür eine Konfigurationsdatei bereithält.

Hierzu ist es wichtig festzustellen, ob der "dhcpcd" überhaupt aktiv ist.

sudo service dhcpcd status

Liefert der Status einen installierten, aber abgeschalteten "dhcpcd", dann empfiehlt es sich diesen einzuschalten. Erst dann sollte man die Konfiguration über den "dhcpcd" vornehmen.

sudo service dhcpcd start
sudo systemctl enable dhcpcd

Bevor man an die Konfiguration über den "dhcpcd" vornimmt, sollte man den Original-Zustand der Datei "/etc/network/interfaces" wieder herstellen. Die Schnittstellen müssen in der Option "iface" auf "manual" gesetzt sein.

Zur statischen IPv4-Konfiguration öffnet man die Datei "/etc/dhcpcd.conf".

sudo nano /etc/dhcpcd.conf

Hier trägt man beispielhaft folgende Zeilen ein:

interface eth0
static ip_address=192.168.1.2/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Es handelt sich hierbei um eine Beispiel-Konfiguration. Diese kann funktionieren, muss aber nicht. Sie einfach auszuprobieren ist nicht sinnvoll. Man sollte vorher klären, was man hier eintragen muss und nicht irgendwie herumprobieren. Hilfreich ist es, wenn man nachschaut, was andere Clients im eigenen Netzwerk haben bzw. was beispielsweise schon per DHCP zugeteilt wurde.

Bei der Vergabe der IP-Adresse muss man jedoch darauf achten, dass man eine wählt, die noch NICHT verwendet wird und sich auch nicht im Adress-Pool eines DHCP-Servers befinden. Ansonsten wird es zu Verbindungsproblemen im Netzwerk kommen.

Die Zeile "static ip_address=192.168.1.2/24" gibt die IPv4-Adresse "192.168.1.2" mit der Subnetzmaske "255.255.255.0" an. Die Angabe "24" ist eine Kurzschreibweise für die Subnetzmaske.

Nachdem man die Änderungen vorgenommen hat kann man die Datei speichern und schließen: Strg + O, Return, Strg + X.

Man hat jetzt nur die Datei geändert. Die Änderungen wurden aber noch nicht in die aktuelle Netzwerk-Konfiguration übernommen. Grundsätzlich empfiehlt sich hier ein Reboot, wenn man per SSH die Konfiguration vorgenommen hat.

sudo reboot

Weniger radikal ist es, das "networking" neu zu starten. Das ist aber nur sinnvoll, wenn man NICHT per SSH mit dem Raspberry Pi verbunden ist.

sudo service networking restart

Alternativ kann man das Interface "eth0" aus- und wieder einschalten. Auch das ist nur dann sinnvoll, wenn man NICHT per SSH verbunden ist, sondern lokal mit Bildschirm und Tastatur am Raspberry Pi sitzt.

sudo ifdown eth0
sudo ifup eth0

Dadurch wird das Interface "eth0" beendet und neu gestartet. Beim Start werden die Einstellungen übernommen. Danach müsste der Raspberry Pi mit seiner statischen IPv4-Adresse erreichbar sein.

Lösung (Variante 3): Interface durch DHCPCD ausschließen (Kombination)

Wenn man den DHCPCD nicht deaktivieren will, weil man ihn für ein Interface braucht, dann kann man die Konfiguration durch den DHCPCD für ein Interface ausschließen oder explizit freigeben.

Dazu öffnen wir die Konfigurations-Datei des DHCPCD und tragen dort noch eine Zeile ein.

sudo nano /etc/dhcpcd.conf

Netzwerk-Interface von der Konfiguration durch den DHCPCD ausschließen:

denyinterfaces eth0

Diese Zeile klammert das betreffende Interface aus der Netzwerk-Konfiguration aus. Die Netzwerk-Konfiguration für dieses Interface muss dann in der Datei "/etc/network/interfaces" erfolgen.

Interface explizit freigeben:

allowinterfaces eth0

Nachdem man die Änderungen vorgenommen hat kann man die Datei speichern und schließen: Strg + O, Return, Strg + X.

Die Änderungen wurden aber noch nicht in die aktuelle Netzwerk-Konfiguration übernommen. Grundsätzlich empfiehlt sich hier ein Reboot, wenn man per SSH die Konfiguration vorgenommen hat.

sudo reboot

Weniger radikal ist es, das "networking" neu zu starten. Das ist aber nur sinnvoll, wenn man NICHT per SSH mit dem Raspberry Pi verbunden ist.

sudo service networking restart

Alternativ kann man das Interface "eth0" aus- und wieder einschalten. Auch das ist nur dann sinnvoll, wenn man NICHT per SSH verbunden ist, sondern lokal mit Bildschirm und Tastatur am Raspberry Pi sitzt.

sudo ifdown eth0
sudo ifup eth0

Dadurch wird das Interface "eth0" beendet und neu gestartet. Beim Start werden die Einstellungen übernommen. Danach müsste der Raspberry Pi mit seiner statischen IPv4-Adresse erreichbar sein.

Lösung (Variante 4): IP-Konfiguration im Router zuweisen (zentrale IP-Konfiguration)

Wenn man dem Raspberry Pi eine statische IP-Konfiguration mit fester IPv4-Adresse verpassen, aber dessen Netzwerk-Konfiguration nicht anfassen möchte, dann kann man sich auch einer Funktion im Internet-Router bedienen. Manche dieser Geräte haben eine Funktion, die es ermöglicht, dass die IPv4-Adresse auf die MAC-Adresse festgelegt wird. In dem Fall wäre die MAC-Adresse der Netzwerk-Schnittstelle zu ermitteln, der man im Router eine IPv4-Adresse fest zuteilt. Die Netzwerk-Konfiguration holt sich der Raspberry Pi weiterhin per DHCP. Nur bekommt er dann immer die selbe IPv4-Adresse zugewiesen.
Diese Lösung hat den unausweichlichen Charme, dass man den Raspberry Pi dafür nicht anfassen muss. Nachteil dieser Lösung ist, dass dazu der DHCP-Server aktiv sein muss, wenn sich der Raspberry Pi die IP-Konfiguration per DHCP holt. Wenn nicht, dann steht der Raspberry Pi ohne IPv4-Adresse da.

Lösung: Netzwerk-Konfiguration prüfen

Ob die IPv4-Einstellungen korrekt übernommen wurden, sollte man prüfen.

ip a

Das Interface "eth0" muss dann in der Zeile mit "inet-Adresse" die statische konfigurierte IPv4-Adresse bekommen haben.

Dann prüft man, ob das Standard-Gatway eingetragen ist.

ip r

Wenn "default" auf die richtige IPv4-Adresse des Standard-Gateways zeigt, dann ist alles in Ordnung.

Jetzt fehlt noch der DNS-Server.

cat /etc/resolv.conf

Steht hinter "nameserver" die IPv4-Adresse des DNS-Servers, dann ist auch hier alles in Ordnung.

Troubleshooting: Doppelte IPv4-Adresse

Die Prüfung der Netzwerk-Konfiguration ergab, dass die IPv4-Adresse doppelt vergeben wurde.

ip a

Eine beispielhafte Ausgabe:

inet 192.168.1.2/24 brd 192.168.1.255 scope global eth0
   valid_lft forever preferred_lft forever
inet 192.168.1.132/24 brd 192.168.1.255 scope global secondary eth0
   valid_lft forever preferred_lft forever

Wie man sieht, hat dieses Interface zwei IPv4-Adressen, was man unter Umständen gar nicht möchte bzw. was zu Problemen im Netzwerk führen kann. Manche Router reagieren allergisch, wenn ein Host unter zwei IPv4-Adressen erreichbar ist.

Hier spuckt uns der DHCP Client Daemon in die Suppe. Wenn man diesen DHCP-Client definitiv nicht braucht, dann sollte man ihn deaktivieren.

sudo service dhcpcd stop
sudo systemctl disable dhcpcd

Um die Änderungen zu übernehmen empfiehlt sich hier ein Reboot.

Troubleshooting: Kein Hostname mehr

Wenn man die Netzwerk-Konfiguration nach Lösung 1, 2 oder 3 einstellt, dann ergibt sich das Problem, dass man den Hostnamen des Raspberry Pi nicht mehr im Internet-Router angezeigt bekommt. Nur wenn man die Einstellungen im Urzustand belässt erscheint im Router der Hostname "raspberrypi".
Der Grund dafür ist die statische Netzwerk-Konfiguration. In dem Fall findet keine aktive Kommunikation zwischen Raspberry Pi und Router statt. Und somit erfährt der Router auch nicht den Hostnamen des Raspberry Pi.
Man kann das Problem mit Variante 4 lösen. Hier findet dann die Kommunikation mit DHCP statt und der Raspberry Pi teilt auf diese Weise seinen Hostnamen mit.
Die Voraussetzung, damit das funktioniert ist, dass in der Datei "/etc/dhcpcd.conf" in einer Zeile "hostname" steht.

Erweiterung: IPv4-Konfiguration mit dem Netzwerk-Manager Wicd

"wicd-curses" ist ein grafischer Netzwerk-Manager, der alle wichtigen Informationen in einer Benutzeroberfläche darstellt, die mit der Tastatur bedient werden muss. Wer sich mit dem Editieren von Text-Dateien schwer tut, für den kann das eine Alternative sein.

Erweiterung: Ü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.

Weitere verwandte Themen:

Hinweis: Dieses Tutorial ist Teil einer Aufgaben und Übungen mit dem Raspberry Pi-Reihe, die für Lern- und Ausbildungszwecke erstellt wurde. Die dargestellte Lösung ist Teil einer konkreten Aufgabenstellung, die Schüler, Auszubildende und Studenten, lösen sollen. Deshalb muss der hier aufgezeigte Weg nicht der Optimalfall sein.

Lernpaket Raspberry Pi

Raspberry Pi Lernpaket

  • Experimentieren mit der GPIO-Schnittstelle
  • Mit 41 Bauteilen die Grundlagen der Elektronik entdecken
  • Inspiration für eigene Hacks entdecken

Mehr Informationen und zum Lernpaket

Raspberry Pi und Zubehör kaufen

Praxishandbuch Raspberry Pi

Das Raspberry Pi Praxishandbuch

  • Installation, Konfiguration und erste Schritte
  • Hardware, Software und Projekte
  • Schritt für Schritt zum Profiwissen

Mehr Informationen zum Praxishandbuch

Weitere Bücher zum Raspberry Pi