Raspberry Pi als WLAN-Bridge einrichten (WLAN-Access-Point)
Mit Raspbian Buster geprüft.
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
- Voraussetzungen prüfen
- System aktualisieren und Software installieren
- Netzwerkbrücke konfigurieren
- Netzwerk konfigurieren
- Access-Point konfigurieren
1. Voraussetzungen prüfen
- Um Probleme beim Einrichten zu vermeiden empfiehlt es sich ein frisches Raspbian-Image zu verwenden.
- Außerdem sollte man sicherstellen, dass der verwendete WLAN-Adapter mit dem Raspberry Pi grundsätzlich funktioniert und den Access-Point-Modus beherrscht. Mit dem internen WLAN-Adapter im Raspberry Pi funktioniert es.
- Beispiele für WLAN-Adapter, die sich für den Betrieb eines Access-Point eignen.
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:
- Raspberry Pi als WLAN-Access-Point einrichten
- Raspberry Pi als WLAN-Router einrichten
- WLAN-Adapter am Raspberry Pi einrichten
- Energiespar-Modus des WLAN-Adapters ausschalten
- Informationen zum WLAN-Adapter am Raspberry Pi ermitteln
- Netzwerk-Probleme beim Raspberry Pi lösen
Teilen:
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.
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
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.