Die Raspberry Pi läuft mit Raspian, einem Debian für die ARM Architektur. Sie besitzt einen Ethernetadapter und üblicherweise wird zusätzlich ein USB WLAN Adapter eingebaut um kabellos mit der Pi kommunizieren zu können. Was liegt da näher als auch die Pi als Kabel zu WLAN Kabelbrücke einzusetzen bzw umgekehrt als WLAN Accesspoint mit Kabelanschluss zu benutzen. Der folgende Beitrag erkärt wie man eine WLAN Kabelbrücke unter Debian bzw der Raspberry Pi mit Raspbian erstellen und dann alle an die Pi angeschlossenen kabelgebundenen Geräte über WLAN auf ein anderes Netz zugreifen können.
 
Update 1. März 2014: Mit dem Kernel 3.6.11+ funktioniert alles noch wie beschrieben. Mit dem Kernel 3.10.25+ leider nicht mehr und es muss ein Router konfiguriert werden.
 
Update Februar 2018: Alternativ besteht die Möglickeit keine normale Brücke (also br0) zu benutzen sondern eine Brücke mit einem arp Proxy zu erstellen. Die Beschreibung dazu findet sich hier
 

 

Bevor die Brücke aufgebaut werden kann muss die WLAN Verbindung sowie die Kabelverbindung konfiguriert sein und funktionieren. Danach muss, um eine WLAN Brücke aufbauen zu können, das folgende zusätzliche Paket installiert werden:

 
apt-get install bridge-utils
 
Zum Schluss ist die Datei /etc/network/interfaces wie folgt anzupassen:
 
auto lo
iface lo inet loopback
iface eth0 inet manual
 
auto wlan0
iface wlan0 inet manual

auto br0
iface br0 inet dhcp
bridge_ports wlan0 eth0
bridge_stp off
bridge_maxwait 15

wpa-iface wlan0
wpa-bridge br0
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
 
Die Brücke kann nun mit
 
ifup br0
 
gestartet werden und sollte am Ende aktiv sein. 
 
ifconfig br0
 
liefert dann in etwa die folgende Ausgabe wobei wichtig ist, dass dort eine IP Adresse steht, die sich die Brücke aus dem DHCP Pool des lokalen Routers geholt hat.
 
br0       Link encap:Ethernet  HWaddr 94:44:52:1f:40:34 
          inet addr:192.168.0.107  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::9644:52ff:fe1f:4034/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:861 errors:0 dropped:0 overruns:0 frame:0
          TX packets:131 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:101477 (99.0 KiB)  TX bytes:15534 (15.1 KiB)
 
Die Ausgabe von brctl show zeigt dass die beiden Netzwerkinterfaces über die Bridge verbunden sind:
 
root@raspberrypi:~# brctl show
bridge name    bridge id          STP enabled    interfaces
br0            8000.801f028a033a  no             eth0
                                                 wlan0
 
Nun kann ein weiteres Gerät an den Kabelanschluss der Pi angeschlossen werden.
 

Leider muss dieses Gerät mit eine statischen IP Adresse konfiguriert werden. Diese muss aus demselben Netz stammen, in dem sich die PI per WLAN angemeldet hat. Die DHCP Requests werden leider nicht durch die Brücke weitergegeben. Vermutlich bekommt man das mit ebtables hin - es ist aber bislang nicht gelungen eine Lösung zu finden.  

UPDATE: Heute (5.2.2014) habe ich, nachdem jemand Probleme gemeldet hat zur Anleitung, das noch mal konfiguriert und es funktionierte auch die IP Vergabe per DHCP.
 
D.h. also, man muss folgende Dinge bei dem Gerät richtig konfigurieren, denn DHCP hilft leider nicht dabei. Alle diese Informationen ausser dem IP, die eine freie IP in dem Netz sein muss, kann man sich von der Pi besorgen wenn die Brücke erfolgreich aufgebaut wurde:
 
1) Freie statische IP Adresse aus dem lokalen Netz (z.B. passt 192.168.0.222 zu dem Netz welches im Beispiel benutzt wird)
2) Netzwerk Maskemit ifconfig br0 | grep -i mask | sed 's/.*ask[0-9]*//'
3) Default Gateway mit route -n | grep ^0.0.0.0 | awk '{ print $2; }'
4) DNS Server mit cat /etc/resolv.conf | grep nameserver | cut -f 2 -d ' '
 
Es dauert ein wenig bis eine Verbindung über die Pi hinaus möglich ist, denn der arp Cache braucht ein wenig über das WLAN bis er gefüllt ist (Test des arp Caches mit sudo arp).  Eine Verbindung zur Pi ist sofort möglich.
 

 

 

 

Benutzung eines ARP Proxies

 
Bei dieser Lösung wird keine übliche Brücke wie z.B. br0 benutzt um die beiden Interfaces eth0 und wlan0 im selben Netz zu verbinden. Diese Aufgabe wird von einem arp-proxy erledigt.Weiterhin wird ein dhcp-helper benötigt.
 
Die Anleitung geht von einem Raspbian Stretch aus.
 

Bevor der Kabel zu WLAN Router aufgebaut werden kann muss die WLAN Verbindung konfiguriert sein und funktionieren. Üblicherweise tut man das durch Einträge in der Datei /etc/wpa_supplicant/wpa_supplicant.conf. Anschliessend ist folgender Text am Ende von /boot/cmdline.txt anzufügen wobei er durch ein Leerzeichen von dem vorhergehenden Text getrennt werden muss. Dadurch bekommt die Netzwerkkarte den leichter zu merkenden Namen eth0.

net.ifnames=0

 

In der Datei /etc/sysctl.conf muss man folgende Zeile aktivieren damit die Raspberry als Router fungiert indem man das # Zeichen am Anfang der Zeile entfernt bzw die Zeile ohne # einfügt.

#net.ipv4.ip_forward=1
 
Ein reboot ist notwendig um die Optionen zu aktivieren.
 
Dann müssen die notwendigen zusätzlichen Pakete installiert werden.
 
sudo apt-get install parprouted dhcp-helper avahi-daemon
 
Danach sind folgende Konfigurationen vorzunehmen:
 
DHCP relay einschalten in /etc/default/dhcp-helper
DHCPHELPER_OPTS="-b wlan0"

/etc/avahi/avahi-daemon.conf ändern um mDNS relaying einzuschalten

[reflector]
enable-reflector=yes
 
Jetzt muss eine Konfiguration für die Interfaces erstellt werden in /etc/network/interfaces.d/wlanbridge um beim Starten das WLAN und den arp Proxy zu aktivieren.
 
auto eth0
allow-hotplug eth0
iface eth0 inet manual

auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp

post-down /usr/bin/killall /usr/sbin/parprouted
# Assign eth0 same IP address as wlan0 so dhcp-proxy will proxy for the same subnet
post-up /sbin/ip addr add $(ip addr show wlan0 | grep -Eo "^\s+inet [^ ]+ " | sed -E 's/^\s+//' | cut -f 2 -d ' ' | cut -f 1 -d/)/32 dev eth0
post-up /usr/sbin/service dhcp-helper restart && /usr/sbin/parprouted eth0 wlan0
post-down /sbin/ifdown eth0
 
Zu Anfang dauert es ein klein wenig bis der ARP Cache gefüllt ist und der Client eine IP Adresse bekommt und die Verbindung steht. Danach gibt es keine Verzögerung mehr.
 
Hilfreiche und weiterführende Links:
 
Kommentar schreiben

Hinweis

Spam Kommentare werden gelöscht und nicht veröffentlicht. Die Überprüfung wird manuell vorgenommen und deshalb dauert es i.d.R. zwischen ein paar Stunden bis zu einem Tag bis ein Kommentar veröffentlicht wird.

Kommentare   
#11 framp 2018-02-22 18:51
Moin Rainer,

die einzige Möglichkeit die ich kenne ist ein Captive Portal einzurichten.

Cu framp
Zitieren
#10 Reiner 2018-02-22 08:18
Ich habe den RPI3 als Bridge von einem UMTS Router programmiert. Es funktioniert auch ohne Probleme. Ich würde aber es gerne so haben, dass wenn sich jemand z.B. über das Handy auf das WLAN Netz einloggt, er auf eine spezielle "Startseite" (z.B.: www.google.de )kommt. Hat da jemand eine Idee?
Zitieren
#9 themario 2013-12-15 20:50
Habe meinen Drucker wieder online! :lol:
Wenn man so gedanklich rückwärts gehen muß, brauchts ein paar Tage. Was war bei mir anders?
auto lo


# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
wpa-ap-scan 1
wpa-scan-ssid 1
wpa-ssid MDS713
wpa-psk 32854770

Die wpa_supplicant.conf wird bei mir in der Brücke nicht genutzt. Fragt mich nicht weshalb. Ob der "bridge_maxwait 15" vielleicht nur erhöht oder auf 0 gesetzt werden muß, keine Ahnung. Drucker funktioniert und das ist gut so.

Und ihr Linux-User habt recht! Selber basteln lohnt sich

LG theMario
Zitieren
#8 themario 2013-12-15 16:51
Dein Tip 1 ist goldwert, jedoch gehe ich davon aus (habe mir dein Backup noch nicht angeschaut) das es die komplette SD (bei mir 16 GB) auf den Stick oder Platte (bei mir nur 32 GB Stick) schiebt. Das wäre bei meinen Vorhaben so nicht gut. Tipp 2 ist in Umsetzung. Danke dir.

Mario
Zitieren
#7 framp 2013-12-13 08:40
Das ist natuerlich dumm. Dafuer habe ich ein Backupscript fuer die Pi geschrieben -> http://www.linux-tips-and-tricks.de/raspberry/23-pi-erstellt-automatisch-backups-von-sich-selbst-pi-creates-automatic-backups-of-itself.

Ohne konkrete Fehlermeldungen bzw was nicht funktioniert ist es schwer zu helfen. Ich schlage vor in diesem Forum http://www.forum-raspberrypi.de/ Dein Problem zu schildern.
Zitieren
#6 theMario 2013-12-13 04:27
Habe mein Raspberry Pi neu aufgesetzt. Allerdings bekomme ich die Brücke nicht wieder zum Laufen.
Ich kann mich auch nicht erinnern, welche Abhängigkeiten ich vor meinem Erfolg eingerichtet hatte. Schade, vielleicht kann ja jemand mal einen Tipp geben.
theMario
Zitieren
#5 theMario 2013-12-04 00:57
Guten Morgen.

Habe diese Anleitung genutzt, um "hinter" dem LAN des Raspi vom WLAN aus auf meinen Drucker zugreifen zu können.

ausser 1.- config und installierten WLAN Stick (RTL8188CUS) nichts am Raspi verbastelt. wpa_supplicant.conf habe ich meine belassen, die /etc/network/interfaces von hier übernommen. Der Raspi bekommt von der Fritzbox immer die gleiche IP - passt also.
Es funktioniert.
GROßES DANKE. 30m LAN Kabel und den Ärger damit gespart.


LG theMario
Zitieren
#4 framp 2013-04-28 17:45
Das kann diverse Gründe haben. Ich würde das Problem in einem Linuxforum erläutern und auf diese Anleitung verweisen, so dass man dort weiss was Du bislang getan hast.
Zitieren
#3 dodu 2013-04-24 10:51
Funktioniert so leider nicht,

ifup br0:

can't add wlan0 to bridge br0: Operation not supported..
Zitieren
#2 framp 2013-03-29 23:29
Danke für den Hinweis. D.h. es funktioniert prinzipiell mit DHCP und man sollte es erst mal mit DHCP probieren. Warum bei mir nicht muss ich noch mal detailierter untersuchen.
Zitieren
#1 Günter 2013-03-27 22:42
Hallo, ich habe eine Bridge mit eth1 statt WLAN konfiguruiert und habe keine Probleme mit DHCP. Das angehängte Netbook konnte eine IP-Adresse per DHCP erhalten. Ich habe zwar ebtables installiert, aber nichts konfiguriert.

Hier die entsprechende Konfiguration meiner /etc/network/interfaces

auto lo br0

iface eth0 inet manual
iface eth1 inet manual

iface br0 inet dhcp
bridge_ports eth0 eth1

Gruß, Günter
Zitieren