Ich versuche, meinen Raspberry Pi mit Debian Wheezy als Bridge einzurichten. Ich habe ein hostapd.conf
: (einige Details wurden aus Sicherheitsgründen geändert, und ja, ich weiß, dass WEP nicht gut ist) ...
interface=wlan0
bridge=br0
driver=nl80211
auth_algs=1
macaddr_acl=0
ignore_broadcast_ssid=0
logger_syslog=-1
logger_syslog_level=0
hw_mode=g
ssid=MY_SSID
channel=11
wep_default_key=0
wep_key0=MY_KEY
wpa=0
Und das in /etc/network/interfaces
:
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
auto br0
iface br0 inet dhcp
bridge-ports eth0 wlan0
Alles scheint in Ordnung zu sein, aber ich kann keine Verbindung mit der überbrückten drahtlosen Verbindung herstellen - obwohl die blinkenden Lichter auf dem USB-Stick darauf hindeuten, dass Pakete ausgetauscht werden.
Ich habe irgendwo gelesen, dass nicht alle Karten / Geräte im Hostap-Modus laufen - sie leiten keine Pakete in eine Richtung weiter: stimmt das? (Die Info war etwas alt) - das ist meine Karte:
[ 3.663245] usb 1-1.3.1: new high-speed USB device number 5 using dwc_otg
[ 3.794187] usb 1-1.3.1: New USB device found, idVendor=0cf3, idProduct=9271
[ 3.804321] usb 1-1.3.1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[ 3.816994] usb 1-1.3.1: Product: USB2.0 WLAN
[ 3.823790] usb 1-1.3.1: Manufacturer: ATHEROS
[ 3.830645] usb 1-1.3.1: SerialNumber: 12345
Also, was habe ich hier falsch gemacht?
Update : Also ich habe weitere Untersuchungen durchgeführt und kann die Brücke aufbauen, aber anscheinend zerstört das die (kabelgebundene) Ethernet-Verbindung, was seltsam ist. ZB auf dem RPi:
Booten Sie das System ...
ping 192.168.62.1
(Router) - das funktioniert
Der Versuch, eine Verbindung zu einem WLAN herzustellen, schlägt fehl (oder eher "mit eingeschränkter Konnektivität" auf einem Android-Handy - nicht gut)
brctl showmacs br0
Dies zeigt nur mac von wlan0 und mac von phone an dieser Stelle
brctl addif br0 eth0 wlan0
An dieser Stelle kann ich das Telefon jetzt mit dem drahtlosen Netzwerk verknüpfen, aber ...
ping 192.168.62.1
... scheitert
Ebenso kann ich den RasPi nicht mehr von einem anderen Computer im Netzwerk aus anpingen
Laufen
ifconfig br0
Schlägt vor, dass die Bridge Pakete verwirft ...
Irgendwelche Ideen?
Weitere Aktualisierung : Die /etc/network/interfaces
Datei lautet jetzt (und für die obige Sequenz):
auto lo eth0
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
quelle
iw dev wlan0 info
zeigt? Wenn Sie Ihre Geräte-ID googeln, wird angezeigt, dass Sie einen aktuellen Kernel oder Wireless-Module benötigen, um dieses Gerät im AP-Modus auszuführen. Sieh das . Welchen Kernel und welchenath9k
Treiber verwenden Sie?Antworten:
Brücken leicht gemacht:
Es gibt ein Projekt zu SourceForge, das speziell für Ihre Situation entwickelt wurde. http://sourceforge.net/projects/bridger/ Es kommt sogar als Deb-Paket.
In Bezug auf das 'Verwerfen' von Paketen:
Haben Sie überprüft, ob iptables auf default drop eingestellt ist?
sudo iptables --list
sollte für eine Box dieses Typs "ACCEPT, ACCEPT, ACCEPT" sagen. Wenn das das Problem ist, schalten Sie es aus.Leiten Sie die Pakete überhaupt weiter, Bruder? Stellen Sie sicher, dass die Zeile "net.ipv4.ip_forward = 1" NICHT in /etc/sysctl.conf kommentiert ist (dies ist die Standardeinstellung), und starten Sie dann Ihr Netzwerk neu.
Der Promiscuous-Modus wird von Ihrem drahtlosen Dongle nicht unterstützt . (Das heißt, es können keine Pakete akzeptiert werden, die nicht für dieses Gerät bestimmt sind.)
Pure Bridge vs. Shared Bridge:
iface br0 inet dhcp gibt eine gemeinsam genutzte Brücke an, was bedeutet, dass die Brücke selbst eine IP- Adresse erhält und ein Endpunkt für den Datenverkehr sein kann.
Eine reine Bridge erhält keine IP-Adresse und leitet den Datenverkehr nur zwischen den beiden Schnittstellen weiter
Shared Bridge- Beispieldatei / etc / network / interfaces (Debian / Ubuntu)
Neustart des Netzwerks:
sudo /etc/init.d/networking restart
Nachdem Sie komplexe Änderungen an der Netzwerkkonfiguration vorgenommen haben, ist es einfacher, den Computer neu zu starten, als sicherzustellen, dass beim Neustart alles ordnungsgemäß neu gestartet wurde.Sie denken, Sie haben Routing-Probleme:
Beseitigen Sie DNS als Ursache, indem Sie mit testen
ping 8.8.8.8
. Wenn dies funktioniert, liegt wahrscheinlich ein DNS-Problem in Ihrem Netzwerk vor.Überprüfen Sie Ihr Gateway mit
sudo ip route
hoffentlich sehen Siedefault via 192.168.1.1 dev br0 proto dhcp
(vorausgesetzt, Ihr Gateway ist 192.168.1.1). Wenn es fehlt oder falsch ist, beheben Sie essudo ip route add default via 192.168.1.1
. Nochmal testen:ping 8.8.8.8
Erneuern Sie Ihre gemeinsame Bridge-IP mit
dhclient br0
und testen Sie erneut mitping 8.8.8.8
Überprüfen Sie Ihre '
ifconfig
Slave' -Schnittstellen mit und stellen Sie sicher, dass eth0 und wlan0 KEINE IP-Adressen haben. Sie sind jetzt ein Teil der Brücke. Wenn dies der Fall ist, stellen Sie sicher, dass Sie sie aus allen Konfigurationsdateien entfernen, und setzen Sie sie auf static 0.0.0.0 oder so.Wenn KEINES davon funktioniert, probieren Sie diese Debian-Bridging-App aus. Wenn dies nicht funktioniert, unterstützt Ihr drahtloser Dongle den Promiscuous-Modus nicht. (siehe oben)
Wenn es hier zu irgendeinem Zeitpunkt funktioniert, starten Sie es neu und stellen Sie sicher, dass es weiterhin funktioniert.
quelle
eth0
undwlan0
Einstellungen in diesem Beispiel? Wie stellen Sie die SSID und die Authentifizierung einwlan0
?Ich habe einige drahtlose Bridges, die unter Debian Linux und Openwrt funktionieren, daher bin ich mit diesem Problem sehr vertraut.
Sie haben einen wichtigen Befehl übersehen: Sie haben vergessen, Ihrem Wireless-Treiber mitzuteilen, dass er 4-Adress-Frames (manchmal unkorrekt oder historisch als WDS bezeichnet) senden soll, die für 802.11 / Wireless-Bridging erforderlich sind. Tun Sie dies mit dem Befehl "iw dev wlan0 set 4addr on". Verwenden Sie eine "Pre-Up" -Anweisung in Ihrer Debian-Interface-Datei auf der Bridge, um sie anzuwenden, bevor Sie die Bridge aufrufen. Beachten Sie, dass der 4-Adressen-Frame-Modus Treiberunterstützung erfordert und von einigen alten, beschissenen 802.11-Treibern oder -Hardware möglicherweise nicht unterstützt wird.
Ich vermute auch, dass Ihre Probleme möglicherweise durch einen Fehler im Linux-Kernel erschwert wurden, der sich speziell auf überbrückte Schnittstellen auswirkt. Ich bin selbst auf diesen Fehler gestoßen und musste meinen eigenen wpa_supplicant aus Quellen kompilieren, da die Version in Debian alt und betroffen ist. wpa_supplicant und hostapd teilen sich eine gemeinsame Codebasis, aber ich bin mir nicht ganz sicher, ob dies sowohl hostapd als auch wpa_supplicant betrifft.
Hier gibt es eine Umgehungslösung für das Problem:
https://w1.fi/cgit/hostap/commit/?id=e6dd8196e5daf39e4204ef8ecd26dd50fdca6040
Ich habe den Eindruck, dass dies in der Version 2.5 ist, und ich weiß, dass es sich um die aktuelle Version 2.6 handelt. Die aktuelle Debian-Version ist 2.4 und ist defekt. Bitte belästigen Sie das Debian-Projekt, um die Pakete wpasupplicant und hostapd zu aktualisieren.
Hier ist eine Beispielkonfiguration für einen WLAN-Bridge-Client, der WPA / WPA2 mit einer WLAN-Bridge zwischen den Schnittstellen wlan0 und eth0 verwendet, wobei der Host eine DHCP-Adresse auf der br0-Schnittstelle erhält (ersetzen Sie "dhcp" durch "manual" für keine IP-Adresse). Fügen Sie in einer Situation, in der Sie der AP sein möchten, die Befehle interface = und bridge = in hostapd.conf ein und lassen Sie die folgenden wpa- * -Befehle weg.
In Ihrer / etc / network / interfaces-Datei:
Stellen Sie sicher, dass Ihr wpa_supplicant Version 2.5 oder höher ist. Es funktioniert nicht mit wpa_supplicant 2.4 und aktuellen Kernelversionen.
Ich sollte auch beachten, dass es derzeit einen Race-Bug in ifup gibt, bei dem Bridge-Interfaces beim Booten möglicherweise nicht angezeigt werden, aber das ist ein ganz anderes Problem.
quelle
Sie brauchen anscheinend eine IP-Weiterleitung.
Versuchen
cat /proc/sys/net/ipv4/ip_forward
Wenn es ein
0
Problem ist:echo 1 > /proc/sys/net/ipv4/ip_forward
quelle
sys.net.ipv4.ip_forward
ist für IPv4-Routing, NAT usw. gedacht. Bridges arbeitet eine Schicht tiefer im Netzwerkstapel.Bridging kann nur funktionieren, wenn eine Schnittstelle alle Pakete empfängt, andernfalls werden nur an sie adressierte Pakete angezeigt. Ihr aktuelles Setup beschreibt möglicherweise eine Konfiguration für einen Router, jedoch nicht für eine Bridge.
eth0 und wlan0 sollten keine ip-adressen haben (bedeutung 0.0.0.0) und falls gewünscht, können sie immer eine ip-adresse für br0 verwenden.
Hier ist auch eine offizielle Dokumentation: http://wiki.debian.org/BridgeNetworkConnections
quelle
konfiguriere wlan0
vi / etc / network / interface
vi /etc/sysctl.conf
vi /etc/rc.local
quelle