Voici comment faire un réseau WDS pour étendre la couverture réseau sans fil.
Si tous les points d’accès sont câblés vers un réseau central, il serait préférable de faire un setup basé sur CAPsMAN. Cette procédure est pour le cas de point d’accès relier entre eux via WDS.
On utilisera un Routeur/AP standard comme par exemple un RB951 pour l’AP central.
Et pour étendre le réseau, on peux mettre tout simplement des mAP Lite
Configuration de l’AP central
Modifier l’interface WLAN. Onglet WDS:
WDS Mode: Dynamic Mesh
WDS Default Bridge: le bridge principal du routeur, bridge-local
Préparation des mAP Lite, configuration initiale
- Brancher le mAP sur ethernet câblé
- Se connecter au réseau sans fil Mikrotik-xxxxx
- Winbox sur 192.168.88.1 admin/vide
- On ouvre le port 8291 pour le management sur l’interface cablée
# Ouvrir Remote Managment /ip firewall filter add action=accept chain=input comment="Remote Managment" protocol=tcp dst-port=8291 disabled=no place-before=0
- On prend en note l’adresse IP de l’interface câblée, car elle n’apparaîtra pas automatiquement dans la liste winbox
- On se reconnecte sur le réseau sans fil normal de l’AP central
- On peux maintenant se connecter avec Winbox sur le mAP lite via le réseau câblé
Configuration des mAP Lite, WDS
- Ajout d’un bridge
Name: bridge1
STP Protocol Mode: rstp
Ajout du port Wlan1 au bridge1
- Modifier les paramètres de l’interface Wlan1 pour mettre les mêmes paramètres que sur l’AP central.
Mode ap bridge
Channel Width: même que pour AP central
Frequency: même que pour AP central
SSID: même que pour AP central
Wireless Protocol: même que pour AP central
WDS Mode: Dynamic mesh
Bridge: Bridge1
Dès que les paramètres Wireless sont identiques, on devrait voir une interface WDS apparaître dans la liste des interfaces Wireless
Finalisation configuration mAP Lite
- Attribuer adresse dynamique pour interface bridge1
- Enlever ip fixe sur Wlan1
- System -> identity : Nommer le mAP
Empêcher les clients avec un faible signal de se (re)connecter sur l’AP
Il faut décocher le Default Authenticate sur l’interface wlan1, mais pour ne pas se faire bloquer, on peut soit agir via les interfaces câblées (de préférences) sinon, il est impératif d’ajouter les règles selon un ordre précis:
- Sur l’AP en premier, on autorise toutes les connections vers les autres AP et en particulier vers l’AP central. Ceci ce fait dans la connect list:Interface: wlan1
MAC Adresse: l’adresse mac de l’AP distant <– ou laisser vide pour optimisation future
Connect: Coché
Signal Strength range: -120..120 <– il serait judicieux de mettre -80..120 si les AP sont rapproché entre eux. - Sur l’AP, on autorise les clients proche de l’AP, donc avec un bon signal, à se connecter sur le réseau sans fil via des access list:Mac Address: Laisser vide pour ‘tout le monde’
Interface: all ou wlan1
Signal Strength Range: -80..120 (une valeur pas trop restrictive pour commencer)
Authentication: Cochée - Sur l’AP, on refuse les clients lointains avec un faible signal via une access list:Mac Address: Laisser vide pour ‘tout le monde’
Interface: all ou wlan1
Signal Strength Range: -120..-81 (une valeur qui ne recouvre pas la règle précédente)
Authentication: DéCochée
Forcer une déconnexion des clients connectés avec un faible signal
Pour cela, on exécute le script suivant a intervalle régulier, à chaque minute par exemple
:local signal; :local mac; :log warning "Script checksignal en cours" :foreach i in=[ /int wir reg find ap=no] do={ :set signal [int wir reg get $i signal-strength]; :set mac [int wir reg get $i mac-address]; :set signal [ :pick $signal 0 [:find $signal "dBm"]] :if ($signal < -63) do={ :log warning ($mac . " signal too low (" . $signal . ")"); [ /int wir reg remove $i]; } }
Script complet:
Pour référence, il ne peux pas etre exécuté au complet d’un seul coup
/ip firewall filter add chain=input comment="Remote Managment" dst-port=8291 protocol=tcp #/ip neighbor discovery set ether1 discover=yes /interface bridge add name=bridge1 /interface bridge port add bridge=bridge1 interface=wlan1 /interface wireless set [ find default-name=wlan1 ] band=2ghz-onlyn default-authentication=\ no disabled=no distance=indoors mode=ap-bridge ssid=SSID_DE_VOTRE_RESEAU \ wds-default-bridge=bridge1 wds-mode=dynamic-mesh /interface wireless security-profiles set [ find default=yes ] authentication-types=wpa2-psk eap-methods="" \ mode=dynamic-keys supplicant-identity=MikroTik wpa2-pre-shared-key=\ CLEF_D_ACCESS_DE_VOTRE_RESEAU /interface wireless access-list add signal-range=-50..120 vlan-mode=no-tag add authentication=no signal-range=-120..-51 vlan-mode=no-tag /interface wireless connect-list add interface=wlan1 security-profile=default signal-range=-80..120 /system identity set name=AP_N /system scheduler add interval=30s name=checksignal on-event=checksignal policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive \ start-date=apr/03/2016 start-time=11:55:59 /system script add name=checksignal owner=admin policy=\ ftp,reboot,read,write,policy,test,password,sniff,sensitive source=":l\ ocal signal;\r\ \n:local mac;\r\ \n:log warning \"Script checksignal en cours\"\r\ \n:foreach i in=[ /int wir reg find ap=no] do={ \r\ \n :set signal [int wir reg get \$i signal-strength];\r\ \n :set mac [int wir reg get \$i mac-address];\r\ \n :set signal [ :pick \$signal 0 [:find \$signal \"dBm\"]]\r\ \n :if (\$signal < -63) do={\r\ \n :log warning (\$mac . \" signal too low (\" . \$signal . \")\ \");\r\ \n [ /int wir reg remove \$i];\r\ \n }\r\ \n}"