Raspberry Pi als WLAN-Bridge einrichten (WLAN-Access-Point)

Mit Raspbian Buster geprüft.

Raspberry Pi als WLAN-Bridge einrichten (WLAN-Access-Point)

Wenn man ein Netzwerk betreibt, dann ist dafür WLAN-Router zuständig, der IP-Adresse per DHCP verteilt und sich als DNS-Server um die Namensauflösung kümmert. Wenn die Reichweite des WLANs nicht ausreicht, kann man auf Repeater- oder Mesh-Lösungen zurückgreifen.

Man kann aber auch einen Raspberry Pi als Netzwerkbrücke betreiben. Eine Netzwerkbrücke, im Englischen „Bridge“ genannt, verbindet zwei Netzwerk-Segmente. Die darüber verbundenen Rechner liegen alle im selben logischen IP-Netzwerk und erhalten ihre IP-Konfiguration aus dem selben Adressbereich.

Der Betrieb des Raspberry Pi als Netzwerkbrücke setzt natürlich voraus, dass sich in dem lokalen Netzwerk bereits ein DHCP-Server, ein DNS-Server und ein Standard-Gateway befinden. Typischerweise über den WLAN-Router.

Hinweis: Es gibt sehr viele nicht-funktionierende Anleitungen zur Einrichtung einer WLAN-Bridge zu finden. Sie basieren teilweise auf alter Software, die inzwischen nicht mehr funktioniert. Diese Anleitung funktioniert garantiert. Sie wurde mehrfach getestet.

Aufgabe

  1. Voraussetzungen prüfen
  2. System aktualisieren und Software installieren
  3. Netzwerkbrücke konfigurieren
  4. Netzwerk konfigurieren
  5. Access-Point konfigurieren

1. Voraussetzungen prüfen

2. System aktualisieren und Software installieren

Wenn der Raspberry Pi und der WLAN-Adapter alle Voraussetzungen erfüllen, dann können wir loslegen. Wir beginnen mit der Installation der notwendigen Software. Davor führen wir noch eine Systemaktualisierung durch.

sudo apt update
sudo apt full-upgrade

Jetzt beginnen wir mit der eigentlichen Einrichtung und beginnen mit dem Installieren des Access-Points. Das notwendige Paket heißt „hostapd“.

sudo apt install hostapd

Dann sorgen wir dafür, dass der „hostapd“ beim Boot-Vorgang auch automatisch gestartet wird.

sudo systemctl unmask hostapd
sudo systemctl enable hostapd

Die Installation ist damit abgeschlossen. Wir können nun mit der Konfiguration beginnen.

3. Netzwerkbrücke konfigurieren

Die Netzwerkbrücke ist nur eine logische Assoziation und soll die WLAN- und Ethernet-Schnittstellen Software-seitig miteinander verbinden. Hierzu müssen wir die Netzwerkbrücke definieren und legen das in einer neuen Konfigurationsdatei fest.

sudo nano /etc/systemd/network/br0.netdev

In diese Datei tragen wir folgende Zeilen ein:

[NetDev]
Name=br0
Kind=bridge

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

Dann müssen wir dem System noch mitteilen, dass die Ethernet-Schnittstelle der Netzwerkbrücke hinzugefügt werden soll.

Hierzu legen wir eine neue Konfigurationsdatei an.

sudo nano /etc/systemd/network/eth0.network

In diese Datei tragen wir folgende Zeilen ein:

[Match]
Name=eth0
[Network]
Bridge=br0

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

Dann müssen wir der Netzwerkbrücke noch mitteilen, dass sie sich um eine Netzwerk-Konfiguration kümmern muss.

Hierzu legen wir eine neue Konfigurationsdatei an.

sudo nano /etc/systemd/network/br0.network

In diese Datei tragen wir folgende Zeilen ein:

[Match]
Name=br0

[Network]
DHCP=yes

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

Damit diese Konfiguration beim Boot-Vorgang berücksichtigt wird, aktivieren wir den automatischen Start.

sudo systemctl enable systemd-networkd

Hinweis: Nicht davon irritieren lassen, dass nur das Interface "eth0, aber "wlan0" noch nicht hinzugefügt wurde. Das Interface "wlan0" wird erst dann der Netzwerkbrücke hinzugefügt, wenn das Interface mit "hostapd" in Betrieb geht.

4. Netzwerk konfigurieren

Standardmäßig berücksichtigt die IP-Konfiguration alle Schnittstellen. In diesem Fall wollen wir das aber nicht. Trotzdem braucht der Raspberry Pi eine IP-Konfiguration. Wir öffnen hierzu die Datei für die IP-Konfiguration.

sudo nano /etc/dhcpcd.conf

Als erste Konfigurationszeile tragen wir folgende Zeile ein:

denyinterfaces wlan0 eth0

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

Was macht diese Zeile? Wir schließen die Netzwerk-Schnittstellen „wlan0“ und „eth0“ für die IP-Konfiguration aus. Nur die Netzwerkbrücke „br0“ bekommt eine IP-Konfiguration per DHCP (IPv4) und SLAAC (IPv6).

5. Access-Point konfigurieren

Die Konfiguration des Access-Points erfolgt in einer eigenen Konfigurationsdatei.

sudo nano /etc/hostapd/hostapd.conf

In diese Datei tragen wir folgende Zeilen ein:

# Schnittstelle und Treiber
interface=wlan0 bridge=br0

# WLAN-Konfiguration ssid=WAP hw_mode=g channel=1 macaddr_acl=0
ignore_broadcast_ssid=0

# WLAN-Verschlüsselung auth_algs=1 wpa=2 wpa_passphrase=passwort wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCMP

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

Der Eintrag „bridge=br0“ verbindet das WLAN-Interface automatisch mit der Netzwerkbrücke. Der Name des Access-Points wird mit dem Eintrag „ssid“ festgelegt. Das Passwort mit „wpa_passphrase“.

Neustart und Testen

Damit die Netzwerkbrücke später auch wirklich funktioniert, sollte der Raspberry Pi über die Ethernet-Schnittstelle (RJ45) mit dem lokalen Netzwerk verbunden sein.

Jetzt können wir den Raspberry Pi neustarten.

sudo reboot

Nach einem Reboot sollte der Raspberry Pi als Access-Point mit der Netzwerkbrücke in Betrieb gehen.

Troubleshooting: Netzwerk-Status prüfen

Sollte etwas nicht funktionieren, dann sollte die erste Anlaufstelle folgendes Kommando sein.

ip a

Die Netzwerkbrücke „br0“ sollte mindestens eine IPv4-Adresse (inet) und vielleicht auch mindestens zwei IPv6-Adressen (inet6) haben.

Weitere sinnvolle Informationen über den Status der Netzwerk-Konfiguration gibt folgendes Kommando aus:

sudo systemctl status systemd-networkd

Hier erhält man Fehlermeldungen, die auf konkrete Probleme hinweisen.

sudo systemctl cat systemd-networkd

Troubleshooting: Netzwerkbrücke prüfen

Grundsätzlich gilt, das WLAN-Interface wird nur dann zur Brücke hinzugefügt, wenn der "hostapd" erfolgreich in Betrieb geht.

Informationen zur Netzwerkbrücke und den konfigurierten Netzwerk-Schnittstellen bekommt man mit folgendem Kommando.

networkctl

Wenn alles funktioniert, dann sollte es ungefähr so aussehen:

 IDX LINK             TYPE               OPERATIONAL SETUP 
   1 lo               loopback           carrier     unmanaged 
   2 eth0             ether              degraded    configured
   3 br0              bridge             routable    configured
   4 wlan0            wlan               degraded    unmanaged 
   
   4 links listed.

Wenn die Netzwerkbrücke nicht in Betrieb gegangen ist, dann sollte man einen Blick in die Systemmeldungen werfen.

dmesg
dmesg | grep br0
dmesg | grep wlan0

Hier sollte man nach Fehlermeldungen schauen, die im Zusammenhang mit "wlan0" und "br0" stehen.

Troubleshooting: hostapd prüfen

Den Status von "hostapd" kann man wie folgt prüfen:

sudo systemctl status hostapd

Der "hostapd" ist in Betrieb gegangen, wenn folgende Meldung erscheint: ''Starting advanced IEEE 802.11 management: hostapd.''
Wenn nicht, dann kommt folgende Fehlermeldung: ''Starting advanced IEEE 802.11 management: hostapd failed!''

Dann bitte prüfen, ob der WLAN-Adapter den AP-Mode beherrscht:

iw list | grep AP$

Wenn nicht, dann erscheint hier auch keine Ausgabe. Man sollte also einen anderen WLAN-Adapter verwenden.

Man sollte noch berücksichtigen, dass es USB-Sticks gibt (unabhängig vom Chipsatz), die stellen sich bei der Initialisierung während des Boot-Vorgangs ziemlich zickig an. Beispielsweise Fritz-WLAN-Sticks von AVM. Die initialisieren zuerst ein Laufwerk (für die Treiber-Installation). Erst danach geht der Stick in den WLAN-Betrieb über. Entsprechende Hinweise findet man mit "dmesg".
Das hat natürlich Konsequenzen für den automatischen Start von "hostapd". Der kann erst in Betrieb gehen, wenn das WLAN-Interface vorhanden ist.
Es kann also gut sein, dass man ein bis zwei Minuten nach dem Boot-Vorgang auf das WLAN-Interface warten muss.

ip a

Wenn es dann vorhanden ist, sollte man versuchen den "hostapd" manuell zu starten.

sudo systemctl start hostapd
sudo systemctl status hostapd

Wenn der Dienst gestartet wurde, dann geht es grundsätzlich.

Wenn man die hostapd-Konfiguration geändert hat

Wenn man die hostapd-Konfiguration während dem laufenden Betrieb ändert, dann sollte man danach einen Restart des "hostapd" vornehmen.

sudo systemctl restart hostapd

Alternativ kann man ihn auch stoppen und wieder starten.

sudo systemctl stop hostapd
sudo systemctl start hostapd

Wenn der automatische Start im Hintergrund beim Booten nicht gewünscht ist, kann man das auch wahlweise abstellen mit:

sudo systemctl disable hostapd

Den automatischen Start im Hintergrund beim Booten kann man wahlweise einschalten mit:

sudo systemctl enable hostapd

Hinweise zum Raspberry Pi als WLAN-Bridge

Als WLAN-Access-Point ist der Raspberry Pi nicht so gut geeignet. Die Einrichtung ist fehleranfällig, umständlich und unter Umständen nicht sicher. Davon abgesehen ist der Raspberry Pi mit der notwendigen Ausstattung teurer als ein WLAN-Router. Wer ernsthaft und dauerhaft einen WLAN-Access-Point betreiben möchte, der sollte einen Blick auf OpenWRT legen und sich einen günstigen kompatiblen Router dazu besorgen. Preislich, aber auch vom Komfort ist das viel interessanter.

Sicherheitshinweise

Wer eigene Netzwerk-Komponenten einrichtet und in Betrieb nimmt, der übernimmt auch dafür die Verantwortung. Mit dieser Lösung kann man sich unter Umständen ins Knie schießen. Wenn man denkt, dass die hier dargestellte Lösung fertig ist, dann ist das ein Irrtum. Wenn man keine zusätzlichen Sicherheitsvorkehrungen trifft, dann reißt man sich mit dieser Netzwerk-Brücke eine Sicherheitslücke ins lokale Netzwerk.

Beachten Sie bitte die Sicherheitshinweise zum Betrieb eines WLAN-Access-Points.

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Alles was Sie über Netzwerke wissen müssen.

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Elektronik-Set Raspberry Pi Edition
Elektronik-Set Raspberry Pi Edition

Elektronik erleben mit dem Raspberry Pi mit Python und GPIO Zero

  • Leichter Einstieg ins Hardware-nahe Programmieren mit Python und GPIO Zero
  • Experimentieren und Programmieren ohne Vorkenntnisse
  • Sofort Loslegen mit All-in-one-Set

Elektronik-Set jetzt bestellen

Alles was Sie über Netzwerke wissen müssen.

Netzwerktechnik-Fibel

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!