Überbrückung: Verlust der WLAN-Netzwerkverbindung mit aktivierter Option 4addr - Warum?

9

Frage:
Für die Verwendung mit meiner Xen-VM muss eine virtuelle Netzwerkschnittstelle (vif) erstellt werden, die mit wlan0 verbunden ist.

Wenn in / etc / network / interfaces füge ich hinzu

auto xenbr0
       iface xenbr0 inet dhcp

Und dann später

brctl addif xenbr0 wlan0

Ich erhalte diese Fehlermeldung.

can't add wlan0 to bridge xenbr0: Operation not supported

Ich habe herausgefunden, dass Linux es Ihnen nicht erlaubt, eine drahtlose Schnittstelle im verwalteten Modus zu überbrücken, es sei denn, Sie aktivieren die Option 4addr (erforderlich, um iw neu zu kompilieren):

iw dev wlan0 set 4addr on

Danach

brctl addif xenbr0 wlan0

funktioniert, und brctl show zeigt xenbr0 als überbrückt mit wlan0.

Leider sobald ich ausführe

iw dev wlan0 set 4addr on

Meine gesamte Netzwerkverbindung ist unterbrochen (keine Verbindung). Sobald ich dann ausführe

iw dev wlan0 set 4addr off

Ich verbinde mich wieder und es funktioniert wieder. Wenn ich 4addr on erneut ausführe, wird es erneut unterbrochen. Wenn ich 4addr off ausführe, funktioniert es erneut.

Leider kann ich 4addr nicht einfach einschalten, die Bridge aktivieren und dann wieder ausschalten (Fehler: Gerät nicht bereit).

Weiß jemand, warum ich meine Verbindung verliere?

Hexerei
quelle

Antworten:

14

Hier finden Sie eine Antwort: http://nullroute.eu.org/~grawity/journal.html#post:20110826

iw dev wlan0 set 4addr on

Wenn 4addr aktiviert ist, werden Sie wahrscheinlich vom AP vollständig ignoriert: Die Zuordnung ist erfolgreich, aber alle Datenrahmen verschwinden im Äther. Dies kann aus Sicherheitsgründen sein (weil es verdammt schwer ist, die Quell-MAC-Adresse zu fälschen. Ja.) In meinem Router (mit OpenRG) muss der "WDS" -Modus für die drahtlose AP-Schnittstelle aktiviert werden. Fügen Sie ein WDS-Gerät hinzu, das auf meine beschränkt ist MAC-Adresse des Laptops und fügen Sie sie der LAN-Bridge hinzu. 4addr-Pakete funktionieren jetzt.

Es gibt jedoch ein weiteres Problem: Der Router lehnt jetzt Pakete mit drei Adressen vom Laptop ab, was ziemlich unpraktisch sein kann (4addr muss jedes Mal umgeschaltet werden, wenn das WLAN-Netzwerk geändert wird). Die Problemumgehung besteht darin, auf dem Laptop eine zweite drahtlose Schnittstelle hinzuzufügen, die mit demselben Gerät verbunden ist, jedoch eine andere MAC-Adresse hat:

# undo the earlier configuration
iw dev wlan0 set 4addr off


# add a second interface
iw dev wlan0 interface add wds.wlan0 type managed 4addr on
ip link set dev wds.wlan0 addr $ADDR
ip link set dev wds.wlan0 up

Hier muss $ ADDR mit der im Router konfigurierten WDS-Geräteadresse übereinstimmen. Ansonsten kann es sich um eine beliebige gültige MAC-Adresse handeln. Der ursprüngliche MAC von wlan0 bleibt dann für die "normale" Verwendung erhalten.

Es ist möglich, sowohl wlan0 als auch wds.wlan0 gleichzeitig zu verwenden - obwohl ich die Zuordnung zu demselben AP nur zweimal getestet habe, nicht zu verschiedenen APs.

fmo
quelle
5

Unter bestimmten Umständen können Sie auch wlan_kabel verwenden. Es verwendet Paket-Sockets, um wlan * -Geräte direkt mit Ethernet-Geräten zu verbinden. Mit wlan_kabel können Sie jedoch jeweils nur einen MAC überbrücken. Es hat nicht den Nachteil, von Zugriffspunkten gesperrt zu werden, da nur der ursprüngliche MAC des WLAN-Geräts verwendet wird.

In Ihrem Fall würde dies bedeuten, dass wlan0 nur von einer VM und nicht einmal vom Host verwendet werden kann.

Sie können wlan_kabel hier bekommen .

Escitalopram
quelle