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   
#25 framp 2018-10-29 19:10
Moin Daniel,

Waldemar ist auch dieser Anleitung gefolgt und hat dann ein paar fuer ihn fehlende Dinge entdeckt. Dann hat er sehr intensiv nach einer anderen Lösung gesucht und seine eingeschlagenen Wege sehr ausführlich hier beschrieben. Villeicht siehst Du mal nach ob da für Dich eine Lösung für Dein Problem zu finden ist :-)

Cu framp
Zitieren
#24 Daniel 2018-10-29 09:19
Super, vielen Dank für die Anleitung!!!

Das mit der ARP Proxy Variante klappt super. Einzig DHCP-Relay geht nicht. Ich vermute da fehlt noch irgendwas oder? Hat das jemand versucht?

Danke nochmals und schon mal!
Zitieren
#23 framp 2018-09-20 21:09
Moin Waldemar,

ich habe den Thread aboniert und lese mit ;-) Jetzt druecke ich fuer Dich die Daumen.

Dass nur Port 80 durchgeleitet wird kann ich nicht glauben.

Cu framp
Zitieren
#22 Waldemar 2018-09-20 20:55
Hallo Framp,
habe nun deinen Rat befolgt und mich in dem Deutschen Raspberry Pi Forum registriert. Hier der entsprechender Thread: https://forum-raspberrypi.de/forum/thread/40364-lan-wlan-bruecke-bridge-unter-raspbian-einrichten/

Wünsch mir Glück :-)

Gruß

PS.: habe weiter experimentiert, der umgekehrte Weg - Zugriff von AV-Receiver auf einen dlna-Server funktioniert auch nicht. Sieht so aus als ob nur der Port 80 weitergeleitet wird. Habe das in dem Thread weiter erörtert.
Zitieren
#21 framp 2018-09-18 21:43
Moin Waldemar,

interessant dass in Deiner verlinkten Webseite auch ARP Proxy beschrieben wird. Mit ebtables kannst Du auf MAC Layer Datenfluss beeinflussen wie es der Proxy auch tut. Die Methode habe ich auch gefunden als ich eine Bridge brauchte aber nicht weiter eruiert. Das funktioniert vermutlich auch.

Am WLAN Treiber kann es auch liegen...

Cu framp
Zitieren
#20 Waldemar 2018-09-18 21:10
Hallo framp,
vielen Dank für deine Mühe! Das mit UPnP klingt logisch, da der Receiver ein UPnP-Client ist.
Habe mittlerweile die WLAN-Treiber in Verdacht.
Laut dieser Anleitung:
https://wiki.debian.org/BridgeNetworkConnectionsProxyArp

steht ganz unten, dass die von mir verwendete Treiber "8192cu" Probleme machen sollen. Leider hat der Trick mit dem disablen von Power-Managment nicht viel gebracht :-(

Apropos "etablets" - als ich auf der Suche nach einer Anleitung war, bin ich auch über diese Seite gestolpert:
https://wiki.debian.org/BridgeNetworkConnections

da wird auch was mit etablets gemacht. Leider war das zu hoch für mich, so dass ich weiter gezogen bin. Kannst du was damit anfangen?

Gruß
Waldemar
Zitieren
#19 framp 2018-09-18 19:59
Moin Waldemar,

das sind Broadcasts. Wenn Du nach 239.255.255.250 im netz suchst findest Du z.B. https://de.wikipedia.org/wiki/Simple_Service_Discovery_Protocol wo erklaert wirt dass das SSDP ist was nach UPnP Geraeten sucht. Entweder geht das nicht ueber einen ARP Proxy oder Du musst noch weitere ebtables Regeln definieren (nicht iptables ;-) ). Vielleicht stellst Du Dein Problem mal im Raspberry Forum https://forum-raspberrypi.de/forum/ vor. Da sind netzwerkkompetente Leute die Dir da besser helfen koennen. Du kannst mich da ja auf den Thread mit draufnehmen.

Cu framp
Zitieren
#18 Waldemar 2018-09-17 22:38
Habe jetzt mit tcpdump auf die Anfragen von meinem Android-Smartphone auf dem Interface wlan0 gelauscht. Als ich die Yamaha-App gestartet habe kam das:

sudo tcpdump -i wlan0 host 192.168.178.52
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
22:28:06.659735 IP android-7d142868885e1.fritz.box.42097 > 255.255.255.255.1900: UDP, length 129
22:28:06.659773 IP android-7d142868885e1.fritz.box.42097 > 239.255.255.250.1900: UDP, length 129
22:28:06.659800 IP android-7d142868885e1.fritz.box > igmp.mcast.net: igmp v3 report, 1 group record(s)
22:28:06.965565 IP android-7d142868885e1.fritz.box.42097 > 255.255.255.255.1900: UDP, length 129
22:28:06.965605 IP android-7d142868885e1.fritz.box.42097 > 239.255.255.250.1900: UDP, length 129

Leider kann ich mit der Info nichts anfangen ;-)
Zitieren
#17 Waldemar 2018-09-17 21:54
Was mir gerade noch aufgefallen ist. Habe gerade in der Weboberfläche des Receivers rumgestöbert und der sagt mir, dass seine IP-Adresse 192.168.178.35 ist (DHCP ist auf on). In der Fritzbox ist er aber mit 192.168.178.37 angegeben und auch so zu erreichen.
Nur so zu Info :-)
Zitieren
#16 framp 2018-09-17 21:48
Moin Waldemar,

d.h. also die App funktioniert wenn der Receiver per Kabel angeschlossen ist. Nur nicht per WLAN :sad:

Dann wird es schwierig. Ich wuerde mal mit Wireshark oder tcpdump auf dem Raspi WLAN Interface lauschen und pruefen ob und was von der App ankommt. Vielleicht findest Du da irgendeinen Hinweis auf die Ursache. Wenn das OK aussieht lausche mal auf dem Kabelinterface auf der Raspi.

Cu framp
Zitieren
#15 Waldemar 2018-09-17 21:35
Hallo framp,
danke für die prompte Antwort! Ja mit der App meine ich die offizielle Android App von Yamaha, die auch problemlos funktioniert. Hatte mal probeweise mit einem sehr langen Ethernet-Kabel quer durchs Wohnzimmer getestet, da ich zuerst die App in Verdacht hatte.

Ja ich kann den Receiver anpingen.
ping 192.168.178.37
PING 192.168.178.37 (192.168.178.37) 56(84) bytes of data.
64 bytes from 192.168.178.37: icmp_seq=1 ttl=127 time=42.5 ms
64 bytes from 192.168.178.37: icmp_seq=2 ttl=127 time=8.87 ms
64 bytes from 192.168.178.37: icmp_seq=3 ttl=127 time=8.82 ms
64 bytes from 192.168.178.37: icmp_seq=4 ttl=127 time=8.72 ms

Und ja wenn ich im Browser die IP-Adresse des Receivers angebe, dann kommt auch die rudimentäre Weboberfläche des Receivers.

Scheit alles in Ordnung zu sein, deswegen auch meine Verzweiflung :sigh:

Gruß
Zitieren
#14 framp 2018-09-17 21:14
Moin Waldemar,

mit zugehoeriger App meinst Du wohl eine Apple/Android App.

Eigentlich sollte alles ohne weitere iptables Regeln funktionieren.

1) Was bedeutet 'findet den receiver nicht'?

Bei Netzwerkproblemen ist ping immer der beste Anfang.

2) Kannst Du mit einem beliebigen Rechner im Homenetz den Receiver pingen?
3) nmap zeigt offene Ports. Kommst Du mit einem Browser auf Port 80 bzw 8080 ?

Cu framp
Zitieren
#13 Waldemar 2018-09-17 21:06
Da das in den vorherigen Kommentar nicht mehr reingepasst hat - hier noch die Ausgabe von "nmap":

nmap 192.168.178.37

Starting Nmap 7.60 ( https://nmap.org ) at 2018-09-17 20:41 CEST
Nmap scan report for RX-V675.fritz.box (192.168.178.37)
Host is up (0.019s latency).
Not shown: 995 closed ports
PORT STATE SERVICE
80/tcp open http
1026/tcp open LSA-or-nterm
1900/tcp open upnp
8080/tcp open http-proxy
50000/tcp open ibm-db2

Nmap done: 1 IP address (1 host up) scanned in 0.42 seconds

Scheit alles da zu sein.
Zitieren
#12 Waldemar 2018-09-17 20:59
Hallo,
ich versuche gerade verzweifelt meinen Ethernet only AV-Receiver (Yamaha RX-V675), mit Hilfe des Raspberry Pi, in das heimische WLAN-Netzwerk zu integrieren. Zum Glück habe ich die Seite hier gefunden.
Ich konnte erfolgreich, mit Hilfe der zweiter Anleitung ein ARP Proxy einrichten und sehe auch den Receiver in der Fritzbox.

Doch leider findet die zugehörige App den Receiver nicht.

Was kann ich tun? Muss ich noch vielleicht irgendwelche Firewalleinstellungen (iptables) vornehmen?
Bitte helft mir.

Gruß
Waldemar
Zitieren
#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