Pontage: perte de la connexion réseau WLAN avec l'option 4addr activée - Pourquoi?

9

Question:
Pour une utilisation avec ma machine virtuelle Xen, je dois créer une interface réseau virtuelle (vif) qui est pontée vers wlan0.

Si dans / etc / network / interfaces j'ajoute

auto xenbr0
       iface xenbr0 inet dhcp

Et puis plus tard

brctl addif xenbr0 wlan0

Je reçois ce message d'erreur.

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

J'ai découvert que Linux ne vous laisserait pas du tout ponter une interface sans fil en mode géré, sauf si vous activez l'option 4addr (nécessaire pour recompiler iw):

iw dev wlan0 set 4addr on

Ensuite

brctl addif xenbr0 wlan0

fonctionne, et brctl show montre xenbr0 comme ponté vers wlan0.

Malheureusement, dès que j'exécute

iw dev wlan0 set 4addr on

toute ma connexion réseau a disparu (pas de connexion). Dès que j'exécute

iw dev wlan0 set 4addr off

Je me reconnecte et ça marche à nouveau. Si je réexécute 4addr on, il se casse à nouveau, si j'exécute 4addr off, cela fonctionne à nouveau.

Malheureusement, je ne peux pas simplement allumer 4addr, activer le pont puis le désactiver (erreur: appareil non prêt).

Est-ce que quelqu'un sait pourquoi je perds ma connexion?

La sorcellerie
la source

Réponses:

14

Trouvé une réponse ici: http://nullroute.eu.org/~grawity/journal.html#post:20110826

iw dev wlan0 set 4addr on

Cependant, avec 4addr activé, vous risquez d'être complètement ignoré par AP: l'association réussit mais toutes les trames de données disparaissent dans l'éther. Cela pourrait être pour des raisons de sécurité (car il est sacrément difficile d'usurper l'adresse MAC source. Ouais.) Dans mon routeur (exécutant OpenRG), il est nécessaire d'activer le mode "WDS" pour l'interface AP sans fil, ajoutez un périphérique WDS limité à mon l'adresse MAC de l'ordinateur portable et ajoutez-la au pont LAN. Les paquets 4addr fonctionnent maintenant.

Il y a un autre problème avec cela - le routeur rejette maintenant les paquets de trois adresses de l'ordinateur portable, ce qui peut être assez gênant (devoir basculer 4addr à chaque fois que le réseau WLAN est changé). La solution de contournement consiste à ajouter, sur l'ordinateur portable, une seconde interface sans fil liée au même appareil, mais avec une adresse MAC différente:

# 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

Ici, $ ADDR doit correspondre à l'adresse du périphérique WDS configurée dans le routeur; à part cela, il peut s'agir de n'importe quelle adresse MAC valide. Le MAC d'origine de wlan0 reste alors pour une utilisation "normale".

Il est possible d'utiliser à la fois wlan0 et wds.wlan0 - même si je n'ai testé que deux fois l'association au même AP, pas à des AP différents.

fmo
la source
5

Dans certaines circonstances, vous pouvez également utiliser wlan_kabel. Il utilise des sockets paquets pour relier directement les périphériques wlan * aux périphériques Ethernet. Cependant, vous ne pouvez relier qu'un seul MAC à la fois avec wlan_kabel. Il n'a pas l'inconvénient d'être interdit par les points d'accès, car seul le MAC d'origine du périphérique WLAN est utilisé.

Dans votre cas, cela signifierait que wlan0 ne pourrait être utilisé que par une machine virtuelle et pas même par l'hôte.

Vous pouvez obtenir wlan_kabel ici .

escitalopram
la source