Cet article décrit comment configurer un répéteur dans le réseau LAN. Le point d'accès est l'appareil qui se connecte au réseau principal via une connexion filaire et permet d'accéder à Internet. Le répéteur se connecte sans fil au point d'accès en tant que station ou périphérique client. Une fois connecté, il agit comme un pont pour fournir un accès à ce réseau principal et à Internet à tous les appareils clients sans fil et filaires connectés au répéteur. Cette configuration est utile pour étendre la portée d'un réseau, comme la couverture Wi-Fi.
La méthode décrite dans cet article aboutit à un pont transparent au niveau de la couche 2 dans le modèle OSI. Tous les paquets de diffusion, tels que les requêtes DHCP, sont envoyés dans les deux sens via le pont sans fil. L'adresse MAC source d'origine des périphériques réseau des deux côtés est conservée sur le pont.
Les appareils clients connectés au point d'accès en amont et ceux connectés au répéteur seront sur le même sous-réseau. En d’autres termes, ils seront visibles les uns par les autres et permettront donc d’utiliser des protocoles de découverte et de configuration tels que zeroconf. Le point d'accès amont et le répéteur restent accessibles sur le réseau.
La technologie du système de distribution sans fil (WDS) permet de créer un pont réseau sur une liaison sans fil entre le point d'accès et le dispositif répéteur. La norme IEEE 802.11-1999 définit le WDS comme un mécanisme de construction de trames 802.11 utilisant un format à 4 adresses, cependant, elle ne définit pas comment le mettre en œuvre ni comment les stations interagissent pour organiser l'échange de trames de ce format. Cela peut entraîner des problèmes lors de l'utilisation de WDS entre des périphériques réseau de différents fournisseurs de chipsets et de micrologiciels. Il est donc conseillé d'utiliser OpenWrt à la fois sur le point d'accès et sur le répéteur pour utiliser une implémentation partagée de cette technologie et augmenter les chances de la faire fonctionner. La plupart des pilotes sans fil d'OpenWrt prennent en charge le mode WDS.
Le processus de configuration du réseau peut être effectué à la fois via la ligne de commande (avec uci et SSH) et via une interface graphique (avec luci et un navigateur Web). Il est divisé en deux sections :
Il est important de suivre l’ordre des étapes, sinon cela pourrait rendre les routeurs inutilisables.
Ouvrir un terminal et se connecter à cet appareil via SSH. Il faut que ce routeur soit déjà été configuré comme point d'accès sans fil standard et que les clients sans fil puissent s'y connecter correctement.
Maintenant, ouvrir le fichier de configuration /etc/config/wireless
et ajouter la ligne suivante à la section wifi-iface
utilisée par le point d'accès opérationnel:
option wds '1'
Il peut y avoir plusieurs sections wifi-iface dans ce fichier, surtout si le routeur est un appareil double bande, auquel cas il faut s'assurer de modifier la bonne section.
Voici un exemple du fichier /etc/config/wireless
sur un point d'accès pour la bande 2,4 GHz :
config wifi-device 'radio0' option type 'mac80211' option path 'platform/ahb/18100000.wmac' option band '2g' option country 'US' config wifi-iface 'wifinet1' option device 'radio0' option network 'lan' option mode 'ap' option ssid 'My WiFi' option encryption 'psk2' option key 'MyWiFiPassword' option wds '1'
Une fois cela fait, enregistrer le fichier et redémarrer l'appareil pour appliquer les nouveaux paramètres réseau. Il faut s'assurer que les clients sans fil peuvent se connecter à ce point d'accès sans fil et accéder à Internet aussi bien qu'ils le faisaient avec l'ancienne configuration réseau.
La commande ip address doit afficher une nouvelle interface réseau dont le nom est sous la forme : « wlan.staN » ; où N est un nombre. Cette nouvelle interface doit exister aux côtés de l’interface réseau sans fil « wlanN » de base. Par exemple, l’interface réseau « wlan.sta1 », l’interface de base est « wlan1 ».
La nouvelle interface wlan.staN ne sera pas pontée par défaut avec l'interface WLAN d'origine si cette interface ne fait pas elle-même partie d'un pont. Pour corriger ce problème, il faut créer une nouvelle interface pont dans le point d'accès sans fil et lui associer uniquement son interface WLAN.
Au départ, il faudra peut-être utiliser un câble Ethernet pour se connecter directement au répéteur et le configurer. Ouvrir un terminal et se connecter à cet appareil via SSH.
Certains paramètres importants du répéteur doivent être pris en compte avant de créer la liaison sans fil entre le répéteur et le point d'accès. Pour commencer, le répéteur doit avoir son serveur DHCP désactivé (en supposant qu'il existe déjà un autre serveur DHCP fonctionnant sur le réseau). Sur les nouvelles installations d'OpenWrt, le serveur DHCP est généralement activé par défaut sur l'interface LAN, donc pour le désactiver, il faut modifier les paramètres réseau du répéteur.
Ouvrir le fichier /etc/config/dhcp
et ajouter la ligne suivante à la section config dhcp 'lan'
:
option ignore '1'
Cette ligne désactivera le serveur DHCP sur l'interface LAN (le serveur DHCP doit déjà être désactivé sur l'interface WLAN), enregistrer et fermer le fichier.
On peut également désactiver le serveur DHCP6 , en changeant option dhcpv6 'server'
en option dhcpv6 'disabled'
.
Maintenant, il faut attribuer une adresse réseau autre que l'attribution IP statique par défaut de 192.168.1.1/24 à l'interface LAN, si elle est déjà utilisée par un autre appareil sur le réseau. Ouvrir le fichier /etc/config/network
et remplacer l'adresse IP par une adresse du même sous-réseau. Par exemple, 192.168.1.2/24. Ceci est un exemple du fichier de configuration :
config device option name 'br-lan' option type 'bridge' list ports 'eth0.1' config interface 'lan' option device 'br-lan' option proto 'static' option ipaddr '192.168.1.2' option netmask '255.255.255.0'
Alternativement, on peut-être configurer le répéteur pour récupérer une adresse IP via DHCP à partir du point d'accès, mais cela peut laisser le répéteur inaccessible si la connexion WDS ne fonctionne pas et qu'il devient incapable de configurer ses paramètres réseau avec DHCP. Il faut définir le protocole d'interface sur DHCP :
config device option name 'br-lan' option type 'bridge' list ports 'eth0.1' config interface 'lan' option device 'br-lan' option proto 'dhcp'
Redémarrer le répéteur pour appliquer les nouveaux paramètres réseau. Après son redémarrage, il faut se reconnecter au répéteur via SSH sur sa nouvelle adresse IP. Le serveur DHCP est désormais désactivé sur son interface réseau LAN. Il faudra donc peut-être définir une adresse IP statique et un masque de sous-réseau sur l'appareil utilisé pour configurer le répéteur.
Si on a configuré l'interface LAN pour utiliser une adresse IP dynamique (client DHCP), il faut rechercher l'adresse IP du répéteur à chaque redémarrage.
Il est temps de configurer la véritable liaison sans fil. Ouvrir le fichier /etc/config/wireless
pour s'assurer que les paramètres correspondants dans la section radioN (où N est un nombre) correspondent aux valeurs du même fichier du point d'accès (même bande et le même code de pays).
De plus, dans ce fichier, modifier la section wifi-iface pour la définir en mode « sta » (client), définir le SSID souhaité auquel se connecter (celui diffusé par le point d'accès) et s'assurer que WDS est activé en définissant cette valeur. à 1. Les options spécifiques peuvent être différentes selon le matériel, mais le SSID, le canal, le type de cryptage et le mot de passe doivent correspondre au point d'accès et le mode WDS doit être activé.
Pour activer l'accès sans fil au répéteur et, par conséquent, au réseau principal et à Internet, une interface sans fil supplémentaire (wifi- iface) est requis dans ce fichier. Copier l'iface wifi précédente et :
Dans cette nouvelle interface Wi-Fi sur le répéteur, le SSID et la clé secrète peuvent être les mêmes que les points d'accès pour permettre une itinérance transparente, mais ils peuvent aussi être différents. En connectant cette nouvelle interface au réseau LAN, qui est la valeur par défaut, les autres appareils sans fil connectés via ce point d'accès seront également considérés comme faisant partie du grand réseau.
Ceci est un exemple du fichier de configuration /etc/config/wireless
sur un répéteur pour la bande 2,4 GHz.
config wifi-device 'radio0' option type 'mac80211' option path 'platform/ahb/18100000.wmac' option band '2g' option country 'US' config wifi-iface 'wifinet1' option device 'radio0' option network 'lan' option mode 'sta' option ssid 'My WiFi' option encryption 'psk2' option key 'MyWiFiPassword' option wds '1' config wifi-iface 'wifinet2' option device 'radio0' option network 'lan' option mode 'ap' option ssid 'My WiFi' option encryption 'psk2' option key 'MyWiFiPassword'
Déconnecter le répéteur du réseau filaire et redémarrer, par exemple, à l'aide de son bouton power.
Le répéteur doit démarrer et se connecter automatiquement au point d'accès sans fil via WDS. L'association et la connexion au point d'accès peuvent prendre quelques minutes. Une fois cela fait, et si on a activé le client DHCP sur l'interface LAN (adresse dynamique), l'interface filaire du répéteur devrait réussir à obtenir une adresse DHCP via la nouvelle connexion du pont sans fil. L'interface sans fil du répéteur ne reçoit pas d'adresse IP car elle agit désormais comme un pont transparent.
Tous les appareils clients connectés au répéteur via un câble Ethernet (clients filaires) doivent désormais être reliés de manière transparente au réseau principal via la liaison sans fil (WDS).
802.11s est une norme ouverte permettant de connecter des appareils sans fil sans avoir à mettre en place une infrastructure. Il fonctionne sur la couche 2 et garantit que tous les nœuds peuvent se voir sur un réseau de couche 2 ponté (comme s'ils étaient tous branchés sur un commutateur). Toute infrastructure de couche 3 fonctionnera par-dessus cela.
Un réseau maillé est plus dynamique que ce que la fonctionnalité WDS typique peut fournir. Les nœuds maillés prennent généralement en charge plusieurs sauts sans fil avant d'atteindre un nœud connecté au réseau, alors qu'un point d'accès avec WDS peut uniquement pouvoir se connecter sans fil à un autre point d'accès câblé sur le réseau.
La prise en charge du 802.11s (mesh) dépend du pilote sans fil. La plupart des pilotes open source les plus récents fonctionnent.
Certains pilotes peuvent annoncer qu'ils prennent en charge le maillage mais peuvent rencontrer des problèmes avec celui-ci.
Par exemple, le pilote ath10k-ct ne prend pas très bien en charge le maillage, ce qui entraîne des erreurs et des suppressions aléatoires des interfaces sans fil. Il est recommandé de supprimer le module ct et le micrologiciel ct et d'installer des versions non-ct pour obtenir une prise en charge fiable du maillage.
Utiliser la commande iw pour déterminer si le matériel prend en charge le maillage 802.11s.
iw list | grep "Supported interface modes" -A 9
ou
iw list | grep "valid interface combinations" -A 9
Pour exécuter un maillage chiffré, il faut installer une version de wpad prenant en charge le cryptage du maillage.
Au moment de la rédaction, l’une des versions suivantes de wpad est requise :
Il peut être nécessaire de supprimer la version non-mesh de wpad, selon celle installée par défaut :
opkg update opkg remove wpad-mini opkg remove wpad-basic opkg remove wpad-basic-wolfssl opkg remove wpad-basic-openssl opkg remove wpad-basic-mbedtls
Installer la version prenant en charge le maillage :
opkg install wpad-mesh-openssl
ou
opkg install wpad-openssl
ou
opkg install wpad-mesh-wolfssl
ou
opkg install wpad-wolfssl
ou
opkg install wpad-mesh-mbedtls
ou
opkg install wpad-mbedtls
- Depuis septembre 2019, wpad-openssl ou wpad-wolfssl est devenu capable de chiffrer 802.11s. wpad-mbedtls a été ajouté plus tard.
- Les versions wpad-basic-* ne prennent en charge que 802.11r et 802.11w.
- Les versions wpad-mesh-* ne prennent en charge que 802.11r/w et 802.11s.
- Les wpad-* sont la version complète de wpad et prennent en charge 802.11k/v/r/w et 802.11s.
- La version complète de wpad signifie que rien n’a été coupé pour réduire sa taille.
chaque routeur du réseau maillé a une adresse IP différente sur le même sous-réseau (par exemple 192.168.0.2)
Dans /etc/config/network
, sous l'interface de configuration lan, définir l'option ipaddr:
Redémarrer le réseau
service network reload
Pour tous les appareils maillés secondaires (Remplacer l'adresse IP par l'adresse IP du périphérique maillé connecté à Internet):
uci set network.lan.gateway='192.168.0.1' uci add_list network.lan.dns='192.168.0.1'
Configurer le réseau sans fil maillé dans /etc/config/wireless
, sous la configuration du périphérique wifi radio0:
option disabled '1'
option channel '2'
option country 'FR'
Dans /etc/config/wireless
, ajouter une nouvelle section pour créer l'interface mesh
config wifi-iface 'mesh' option device 'radio0' option network 'lan' option disabled '0' option mesh_rssi_threshold '0' option mesh_fwding '1' option ifname 'mesh0' option mode 'mesh' option mesh_id 'my-mesh-id' option encryption 'sae' # ou 'none' si on ne souhaite pas de chiffrement option key 'your-secret-password'
L'option option network 'lan' relie l'interface mesh au lan.
Chaque appareil que l'on souhaite faire participer au maillage doit être configuré de la même manière, c'est-à-dire même mesh_id, même channel, même key.
Cette configuration devrait être suffisante pour faire apparaître le réseau maillé. On peut maintenant réinitialiser le wifi et voir si cela fonctionne:
wifi iw dev mesh0 info
On doit voir une sortie similaire à :
Interface mesh0 ifindex 10 wdev 0x3 addr 12:34:56:78:9a:bc type mesh point wiphy 0 channel 2 (2417 MHz), width: 20 MHz, center1: 2417 MHz txpower 28.00 dBm multicast TXQ: qsz-byt qsz-pkt flows drops marks overlmt hashcol tx-bytes tx-packets 0 0 129166 0 0 0 0 9107016 129167
Cette configuration UCI sans fil peut être suffisante pour un « maillage » de deux, voire trois nœuds de maillage assez rapprochés. Mais un réseau maillé organique et autonome, composé de nombreux nœuds maillés, nécessite une configuration supplémentaire.
Il existe de nombreux paramètres de maillage disponibles, dont certains sont essentiels pour un réseau maillé fiable.
Cependant, la majorité d'entre eux nécessitent que l'interface maillée soit opérationnelle et établie avant la configuration.
Si ces paramètres devaient être définis dans le fichier de configuration UCI sans fil, ils échoueraient, car bien sûr, la configuration UCI sans fil est utilisée pour démarrer/redémarrer le système sans fil et l'interface maillée n'est établie qu'une fois que l'UCI a terminé ses tâches.
Les paramètres peuvent être définis manuellement à l'aide de l'utilitaire IW, mais les réglages effectuées de cette manière ne persisteront que tant que l'interface maillée sera active. Le redémarrage du réseau ou la réinitialisation de l'interface sans fil (commande « wifi ») rétablira les paramètres par défaut.
Pour définir les paramètres de manière permanente, le package mesh11sd doit être installé :
opkg update opkg install mesh11sd
Les paramètres par défaut définis et gérés par mesh11sd (dans /etc/config/mesh11sd
) sont :
option mesh_fwding '1' option mesh_rssi_threshold '-80' option mesh_gate_announcements '1' option mesh_hwmp_rootmode '3' option mesh_max_peer_links '150'
Ces paramètres constituent un bon ensemble général pour un réseau maillé géré de manière autonome avec de nombreux homologues maillés.
Les paramètres doivent être définis dans le fichier de configuration Mesh11sd UCI (et non dans le fichier de configuration Wireless UCI) pour éviter que des erreurs ne soient signalées dans le journal système.
Utiliser la commande iw pour afficher les liens homologues ou un tableau des nœuds accessibles dans le maillage
iw dev $MESH_IFACE station dump iw dev $MESH_IFACE mpath dump
Exemple:
iw dev $MESH_IFACE station dump Station 00:15:6d:84:14:10 (on mesh) inactive time: 1320 ms rx bytes: 352 rx packets: 4 tx bytes: 174 tx packets: 2 signal: -61 dBm tx bitrate: 1.0 MBit/s mesh llid: 32577 mesh plid: 15969 mesh plink: ESTAB Station 00:15:6d:84:14:09 (on mesh) inactive time: 3370 ms rx bytes: 1064 rx packets: 12 tx bytes: 545 tx packets: 7 signal: -53 dBm tx bitrate: 1.0 MBit/s mesh llid: 41036 mesh plid: 24435 mesh plink: ESTAB
Empêcher un homologue de se mailler en utilisant son adresse MAC peut nécessiter le package iw-full.
iw dev $MESH_IFACE station set $MAC_TO_BLOCK plink_action block
Vérifier à l'aide de la commande iw dev $MESH_IFACE station dump
:
mesh plink: BLOCKED
Pour débloquer utiliser la commande suivante:
iw dev $MESH_IFACE station set $MAC_TO_UNBLOCK plink_action open
plink_action n'est pas conservé lors des reconnexions des liens maillés.