Raspberry Pi: Netzwerk-Konfiguration

Prof. Jürgen Plate

Raspberry Pi: Netzwerk-Konfiguration

Da der Raspberry Pi für Embedded-Anwendungen oft ohne grafische Oberfläche im Dauerbetrieb läuft und dazu ggf. Server-Dienste anbietet, sollte er auch eine statische IP Adresse im Netzwerk erhalten. Per Default bezieht er seine IP-Adresse automatisch per DHCP (Dynamic Host Configuration Protocol) - beispielsweise vom heimischen DSL-Router. Die so erhaltene IP-Adresse gibt der Raspberry Pi beim Booten preis (siehe Eintrag in der Datei /etc/rc.local). Die IP-Adresse können Sie aber auch mit den Kommandos ip oder ifconfig herausfinden:

ip addr

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether b8:27:eb:aa:37:2f brd ff:ff:ff:ff:ff:ff
    inet 172.20.1.99/24 brd 172.20.1.255 scope global eth0
Die per DHCP zugewiesene IP-Adresse des Pi lautet also 172.20.1.99. Bei diesem Beispiel und auch bei den folgenden haben alle System im lokalen Netz Adressen aus dem Bereich 172.20.1.x. Die Parameter und Adressen der Beispiele müssen Sie natürlich Ihrem eigenem Netzwerk anpassen.

Statische Netzwerkadresse vergeben

Um eine statische Adresse festzulegen, öffnen Sie als root-User die Datei /etc/network/interfaces. Sie hat zwei Einträge:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
Der erste Eintrag ist für das Loppback-Interface (localhost) und bleibt unberührt. Um der Ethernetschnittstelle eth0 nun die IP-Adresse 172.20.1.99 zuzuweisen, ändern Sie den Inhalt der Datei folgendermaßen:
# das loopback-Interface
auto lo
iface lo inet loopback

# eigente Netzadresse
auto eth0
iface eth0 inet static
address 172.20.1.99
netmask 255.255.255.0
broadcast 172.20.1.255
# das eigene Netz
network 172.20.1.0
gateway 172.20.1.254
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 172.20.1.254
Die unter "gateway" angegebene Adresse ist die IP-Adresse des ROuters, der in die große, weite Welt des Internets führt. Damit die Änderungen wirksam werden, muss der Raspberry Pi nicht extra neu gestartet werden (wie man oft lesen kann). Es genügt das Kommando (als root):
/etc/init.d/networking restart
Sollten Sie die Arbeiten über SSH erledigt haben, fliegen Sie nun raus, weil der Raspberry Pi ja eine neue IP-Adresse bekommt. Sie müssen sich also wieder einloggen - diesmal mit der neuen Adresse.

Wenn das Paket "resolvconf" installiert ist, sorgt die letzte Zeile auch für den Eintrag des DNS-Servers in der Datei /etc/resolv.conf, andernfalls müssen Sie das selbst durch Editieren der Datei erledigen. Der Eintrag ist ganz einfach:

nameserver 172.20.1.254
nameserver 8.8.8.8
Prinzipiell können Sie beliebig viele Adressen von DNS-Servern angeben. Im Beispiel habe ich noch die Adresse des Google-Nameservers hinzugefügt (was zweischneidig ist, denn oft wird diese Adresse auch von Malware verwendet, um festzustellen, ob der Trojaner etc. ins Internet kommt).

Wenn Sie gerade dabei sind, können Sie dem Pi auch noch einen neuen Namen verpassen. Der wird einfach in der Datei /etc/hostname eingetragen. Der gleiche Name muss auch noch in die Datei /etc/hosts eingetragen werden. Die Default-Datei hat folgenden Inhalt:

::1 raspberry localhost6.localdomain6 localhost6
127.0.1.1 raspberry


127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Dort ersetzen Sie den Namen "raspberry" durch Ihren Wunschnamen. Sie können auch noch eine Domain hinzufügen und weitere Systeme eintragen. Wenn all Ihre Raspberrys die gleiche hosts-Datei haben, können Sie sich gegenseitig nicht nur bei der IP-Adresse, sondern auch beim Namen rufen. Im folgenden Beispiel ist auch die statische IP-Adresse erfasst:
127.0.0.1    localhost
127.0.1.1    pipibox
172.20.1.99  pipibox pipibox.local
172.20.1.88  www     www.local

::1 pipibox localhost6.localdomain6 localhost6
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Im Beispiel wird bei den IP-Adresse 172.20.1.x nicht nur der Name, sondern auch ein Domainname eingetragen (es sind übrigens auch mehrere Namen für eine IP-Adresse möglich). Wenn Sie keine eigene Domain besitzen, kommen folgende Top-Level-Domains in Frage:

WLAN einrichten

WLAN bei den Modellen 2 mit WLAN-Stick

Das Einbinden des Raspberry Pi ins WLAN kann mehr oder weniger aufregend sein - je nachdem, welchen WLAN-Stick Sie verwenden ist die Einrichtung einfach oder kompliziert. Der Grund dafür liegt in den unterschiedlichen Chipsätzen der WLAN-Sticks. Überall empfohlen wird der WLAN-Stick von Edimax, der EDIMAX EW-7811UN Wireless USB Adapter, 150 Mbit/s, IEEE802.11b/g/n. Er wird von Raspbian automatisch erkannt und eingebunden, da der Kernel den passenden Treiber (RTL8192CU) bereits mitbringt.

Sobald der Stick eingesteckt wurde, wird er von Raspbian auch schon erkannt. Dies kann mit dem Befehl dmesg überprüft werden. Sie sollten sehen, dass ein WLAN-Adapter von Realtek erkannt wurde und der passende Treiber (rtl8192cu) geladen wurde:

[  124.008618] usb 1-1.2: New USB device found, idVendor=7392, idProduct=7811
[  124.008653] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  124.008672] usb 1-1.2: Product: 802.11n WLAN Adapter
[  124.008692] usb 1-1.2: Manufacturer: Realtek
[  124.008709] usb 1-1.2: SerialNumber: 00e04c000001
[  124.397563] usbcore: registered new interface driver rtl8192cu
Nachdem der Stick erfolgreich erkannt wurde, taucht auch ein neues Netzwerk-Device namens "wlan0" auf. Das können Sie mittels ifconfig überprüfen. Dabei sehen Sie auch, dass dem Interface wlan0 noch keine IP-Adresse zugeteilt wurde:
   ...

wlan0     Link encap:Ethernet  Hardware Adresse 80:1f:02:e1:81:e8
          UP BROADCAST MULTICAST  MTU:1500  Metrik:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          Kollisionen:0 Sendewarteschlangenlänge:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
Gegebenenfalls sollten Sie die Stromsparfunktion des Edimax-Treibers deaktivieren. Sonst kann es geschehen, dass eine Verbindung bei Inaktivität unterbrochen wird. Dazu legen Sie eine Konfigurationsdatei für den Treiber an. In die Datei /etc/modprobe.d/8192cu.conf wird die folgende Zeite geschrieben:
options 8192cu rtw_power_mgnt=0 rtw_enusbss=0
Danach muss wieder mal die Datei /etc/network/interfaces bearbeitet werden. Statt eth0 ist diesmal wlan0 dran:
auto lo
iface lo inet loopback
iface eth0 inet dhcp

auto wlan0
iface wlan0 inet dhcp
allow-hotplug wlan0
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "NAME-DES-WLAN"
wpa-psk "DER-GEHEIME-WLAN-KEY"
Natürlich könnte auch hier eine statische Adresse vergeben werden. Das läuft dann genauso ab, wie oben bei der eth0-Adresse.
auto lo
iface lo inet loopback

iface eth0 inet static
address 172.20.0.2
netmask 255.255.255.0
gateway 172.20.0.1

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 172.20.0.3
netmask 255.255.255.0
gateway 172.20.0.1
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid "NAME-DES-WLAN"
wpa-psk "DER-GEHEIME-WLAN-KEY"

Der WPA-Supplicant ist eine Software, die das Einrichten unterschiedlicher WLAN-Zugänge vereinfachen will. Hier werden alle WLAN-spezifischen Daten in eine Konfigurationsdatei geschrieben und nicht in die Datei /etc/network/interfaces. Dort steht dann nur eine Zeile zusätzlich:

auto wlan0
iface wlan0 inet dhcp
        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Wer diese Features verwenden will, sollte die Anleitung bei Ubuntu durcharbeiten.

WLAN beim Modell 3

Das Modell 3 besitzt WLAN im 2,4 MHz-Band (und Bluetooth) on Bord über den Broadcom-Chip BCM43438. Die Einrichtung erfolgt fast genauso, wie oben beschrieben - nur dass kein WLAN-Stick benötigt wird. Vor allem anderen sollten Sie die länderspezifische Konfiguration einstellen. Dazu bearbeiten Sie die Datei /etc/default/crda und ändern Sie die letzte Zeile in REGDOMAIN=DE. Damit wird nicht nur die zulässige Sendeleistung eingestellt, sondern auch die beispielsweise in den USA gesperrten Freqentbänder 12 und 13 freigegeben. Im Prinzip kann man das auch per raspi-config erledigen.

Auf der Platinenunterseite des Raspberry Pi 3 ist ein Lötpad für eine UF.L-Antennenbuchse (Miniatur-Antennenstecker) vorgesehen (J 13). Das ist z. B. wichtig, wenn das Board in einem Metallgehäuse landet, das die Funksignale abschirmt. Dann kann man die Antenne nach aussen verlegen.

Die aktuellen Raspian-Versionen ab Release 2016-02-26 unterstützen den WLAN-Chip. Zuerst könen Sie nach lokalen drahtlosen Netzwerken mit dem Befehl iwlist suchen. Damit werden alle verfügbaren WLANs mit allen möglichen Informationen aufgelistet:

iwlist wlan0 scan
So erfährt man u. a. auch die ESSID des Broadcom-Chips und die Authentifizierungsmethode. In der Regel hat das Raspian den WLAN-Chip auch schon erkannt und einen Basiseintrag für wlan0 in der Datei /etc/network/interfaces erzeugt, der die Adresse per DHCP bezieht (siehe auch oben).

Zu bearbeiten ist noch die Datei /etc/wpa_supplicant/wpa_supplicant.conf. Am Ende der Datei müssen noch folgende Werte geändert bzw. neu eingegeben werden: Name Ihres WLANs (SSID), der Schlüssel für das Netz und die Methode mit der das WLAN verschlüsselt wird, meistens WPA-PSK.

network={
ssid="NAME-DES-WLAN"
psk="DER-GEHEIME-WLAN-KEY"
key_mgmt=WPA-PSK
}
Soll die WLAN-Schnittstelle eine statische IP-Adresse erhalten, muss die Datei /etc/network/interfaces wie folgt angepasst werden:
   ...

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 172.20.0.3
netmask 255.255.255.0
gateway 172.20.0.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Anschließend können Sie den kompletten Netzwerkdienst neu starten:
sudo service networking restart
oder alternativ das WLAN am Raspberry Pi kurzzeitig deaktivieren und anschließend wieder aktivieren:
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up
Mit dem Kommando iwconfig können Sie sich anzeigen lassen, ob die Verbindung geklappt hat.


Copyright © Hochschule München, FK 04, Prof. Jürgen Plate
Letzte Aktualisierung: