web-dev-qa-db-fra.com

Pontage: perdre la connexion réseau WLAN avec l'option 4addr on - Pourquoi?

Question:
Pour une utilisation avec ma machine virtuelle Xen, je dois créer une interface de réseau virtuel (vif) reliée à 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 permettait pas de relier une interface sans fil en mode géré à moins d'activer 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 encore. Si je ré-exécute 4addr sur, il se brise à nouveau, si j'exécute 4addr off, cela fonctionne à nouveau.

Malheureusement, je ne peux pas simplement activer 4addr, activer le pont puis le désactiver (erreur: le périphérique n'est pas prêt).

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

8
WitchCraft

Vous avez 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 êtes susceptible d'être complètement ignoré par l'AP: l'association réussit mais toutes les trames de données disparaissent dans l'éther. Cela peut être dû à des raisons de sécurité (car il est extrêmement difficile d'usurper l'adresse MAC source. Oui.) Dans mon routeur (sous OpenRG), il est nécessaire d'activer le mode "WDS" pour l'interface de point d'accès sans fil, d'ajouter un périphérique WDS limité à mon ordinateur. l'adresse MAC de l'ordinateur portable et l'ajouter au pont LAN. Les paquets 4addr fonctionnent maintenant.

Cela pose cependant un autre problème: le routeur rejette désormais les paquets à trois adresses de l’ordinateur portable, ce qui peut être assez gênant (devoir basculer 4addr chaque fois que le réseau WLAN est modifié). La solution de contournement consiste à ajouter, sur l'ordinateur portable, une deuxième 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; autre que 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 simultanément wlan0 et wds.wlan0 - bien que je n'aie testé que l'association deux fois au même point d'accès, et non à différents points d'accès.

13
fmo

Dans certaines circonstances, vous pouvez également utiliser wlan_kabel. Il utilise des sockets packet pour relier directement wlan * -devices 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 barré par des points d'accès, car seul le MAC d'origine du périphérique wlan est utilisé.

Dans votre cas, cela voudrait dire que wlan0 ne pourrait être utilisé que par un VM et même pas par l'hôte.

Vous pouvez obtenir wlan_kabel ici .

5
escitalopram