1 votes

Comment activer automatiquement le mode wifi 4addr (WDS) avant de se connecter à un SSID spécifique ou à un réseau ?

J'ai un ordinateur portable sur lequel j'ai configuré une interface de pont entre les périphériques Ethernet et WiFi afin de connecter des périphériques non-WiFi au réseau avant qu'ils ne soient placés en position filaire. J'utilise le pont au lieu de transmettre/routage car il permet le passage de ARP et de broadcast. Pour que cela fonctionne, j'active manuellement le mode 4addr chaque fois que j'active le pont : iw dev wlp3s0 set 4addr on et il est important de noter que le réseau WiFi doit également supporter cela.

J'aimerais automatiser cela et j'ai essayé avec diverses méthodes :

  1. Scripts NetworkManager dispatcher.d (pré-up également)
  2. Règle udev

Le problème avec le premier est que le script dispatcher.d (à la fois normal et pré-up) s'exécute après que le périphérique se soit connecté au SSID, à ce moment-là il est trop tard pour activer 4addr. La deuxième approche est trop générale et active simplement 4addr au démarrage, ce qui signifie que je ne peux pas me connecter à des réseaux WiFi qui ne prennent pas en charge 4addr.

Y a-t-il un moyen de définir le mode 4addr (ou simplement d'exécuter un script) avant que NetworkManager indique à la carte WLAN de se connecter à un réseau spécifié ?

1voto

wutr Points 21

Réponse courte : Non, NetworkManager ne peut pas activer 4addr en fonction de la connexion, mais en utilisant udev pour créer une seconde interface wlan virtuelle, cela résout en grande partie mon problème.

J'ai trouvé la solution suivante, que je trouve meilleure que d'activer manuellement 4addr, mais qui laisse encore certains aspects à désirer car vous devez d'abord déconnecter manuellement votre connexion WiFi "normale" avant d'activer le pont.

J'utilise une règle udev pour créer une seconde interface WLAN au démarrage, avec 4addr activé en permanence. Ensuite, je configure le pont pour utiliser cette nouvelle interface pour la partie WLAN et je m'assure que toutes les autres connexions WiFi sont explicitement définies pour utiliser l'interface WLAN d'origine (le tout en utilisant l'applet KDE NetworkManager).

Enfin, dans mon cas, il est important de désactiver la connexion automatique pour les membres du pont et laisser le pont les activer lorsque cela est nécessaire.

/etc/udev/rules.d/90-wlan-bridge.rules

ACTION=="add", SUBSYSTEM=="ieee80211", KERNEL=="phy0", RUN="/usr/bin/iw phy %k interface add brwlan type managed 4addr on"

nmcli connection modify 'wlan-eth-bridge' connection.autoconnect-slaves 1
nmcli connection modify 'bridge-member-wlan' connection.autoconnect 0
nmcli connection modify 'bridge-member-eth' connection.autoconnect 0

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X