Aus Raspberry Pi Geek 02/2018

RasPi via Netzwerk booten (Seite 2)

So gut wie jeder Router verfügt über die notwendige Funktion zur Vergabe von IPs anhand der MAC-Adresse. Allerdings platziert jeder Router-Hersteller sie im Interface etwas anders. Im Zweifelsfall konsultieren Sie das Handbuch des jeweiligen Geräts. Bei einer Horizon-Box finden Sie die Einstellung unter Basic | DHCP Client-Geräte | Statischer DHCP Client.

Zu Problemen kommt es möglicherweise dann, wenn der DHCP-Server an die Mini-Rechner schon einmal eine IP-Adresse (Lease) vergeben hat. Dann speichert er nämlich MAC- und IP-Adresse in seinen internen Tabellen. Je nach Hersteller kommt es vor, dass der DHCP-Server dem IP-Änderungswunsch nicht sofort nachkommt, weil er das Lease für die MAC noch verwendet. Es gibt mehrere Möglichkeiten, dieses Problem zu lösen.

Manche Router bringen eine Funktion zum Löschen der Leases mit. Befinden sich diese im flüchtigen Speicher des Routers, genügt ein Restart. Alternativ starten Sie den RasPi und geben das Lease mit dhclient -r eth0 wieder an den DHCP-Server zurück. Darauf zu warten, dass das meist zeitlich begrenzte Lease abläuft, wäre zwar auch eine Option, aber meist keine praktikable: Viele Router halten es für Wochen oder gar Monate vor.

Server vorbereiten

Zur Konfiguration des Servers nutzen Sie erneut die bereits zur Client-Konfiguration verwendete SD-Karte mit dem Raspbian-Image. Der Server erledigt später den Job des TFTP-Servers, der auf die Boot-Anfragen der Clients reagiert. Er leitet die Anfragen der Clients an den schon vorhandenen DHCP-Server weiter, der diesen die IP-Adressen zuweist. Alle Komponenten müssen in diesem Szenario exakt miteinander arbeiten.

Booten Sie den Server mit der SD-Karte aus dem Client. Damit die Clients später selbstständig arbeiten, benötigen Sie je ein eigenes Root-Filesystem. Da das aktuelle System auch als Client taugt, kopieren Sie es einfach (Listing 1). Um kein veraltetes Betriebssystem auf die Clients zu kopieren, aktualisieren Sie es zuvor.

Listing 1

 

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo mkdir -p /nfs/client1
$ sudo mkdir -p /nfs/client2
$ sudo rsync -xa --exclude /nfs / /nfs/client1/
$ sudo rsync -xa --exclude /nfs / /nfs/client2/

Der Server und die Clients besitzen jetzt eine identische Konfiguration, was bei einigen Diensten zu Problemen führt, wie etwa dem SSH-Daemon: Er bekommt Probleme damit, dass alle drei Hosts denselben Hostkey verwenden. Daher gilt es, diese Keys zu erneuern (Listing 2). Dazu ändern Sie mit chroot temporär die Wurzel des Betriebssystems (Zeile 5), nehmen die Änderung vor und wechseln danach wieder ins Dateisystem des Servers.

Listing 2

 

$ cd /nfs/client1
$ sudo mount --bind /dev dev
$ sudo mount --bind /sys sys
$ sudo mount --bind /proc proc
$ sudo chroot .
$ rm /etc/ssh/ssh_host_*
$ dpkg-reconfigure openssh-server
$ exit
$ sudo umount dev
$ sudo umount sys
$ sudo umount proc

Damit aus dem RasPi ein richtiger Server wird, müssen Sie ihm eine feste IP-Adresse geben. In der Datei /etc/network/interfaces kommentieren Sie die Zeile iface eth0 inet manual aus und fügen stattdessen die Einträge aus Listing 3 ein. Die dort angegebenen Werte passen Sie gegebenenfalls an jene Ihrer Netzwerkumgebung an. Ein Neustart des Hosts aktiviert die Änderungen.

Listing 3

 

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.200
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

Für seinen vorgesehenen Einsatzzweck benötigt Raspbian noch einige Zusatzprogramme: Tcpdump zur Analyse des Netzwerkverkehrs, den DNS-Server Dnsmasq, der auch einen TFTP-Server mitbringt, und zu guter Letzt den NFS-Server (Listing 4).

Listing 4

 

$ sudo apt-get install dnsmasq tcpdump nfs-kernel-server

Das Steuern des TFTP-Servers geschieht über die Datei /etc/dnsmasq.conf. Sichern Sie zunächst das Original und legen Sie eine neue Datei mit dem Inhalt aus Listing 5 an. Die Tabelle “Dnsmasq-Parameter” beschreibt die unterschiedlichen Aufgaben der Schlüsselwörter.

Listing 5

 

port=0
dhcp-range=192.168.1.255,proxy
log-dhcp
enable-tftp
tftp-root=/tftpboot
pxe-service=0,"Raspberry Pi Boot"
tftp-unique-root

Dnsmasq-Parameter

Parameter

Funktion

port

Port, auf dem der DNS-Server arbeiten soll

dhcp-range

Bereich der per DHCP zu vergebenden Adressen

log-dhcp

Logging aktivieren

enable-tftp

TFTP-Server aktivieren

tftp-root

Arbeitsverzeichnis des TFTP-Servers

pxe-service

Name des PXE-Diensts (muss aufgrund eines Bugs im Boot-ROM des RasPi immer Raspberry Pi Boot sein)

tftp-unique-root

Sorgt dafür, dass für jede Client-IP eine eigene Konfiguration in einem Unterverzeichnis (Name = IP-Adresse) angelegt werden kann

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben