Fast Roaming (802.11r/k/v)
Fast Roaming (802.11r/k/v)
Section titled “Fast Roaming (802.11r/k/v)”Fast roaming enables wireless clients to seamlessly switch between access points without noticeable delay or re-authentication. This guide covers MikroTik’s implementation of the 802.11r (Fast BSS Transition), 802.11k (Radio Resource Measurement), and 802.11v (BSS Transition Management) standards.
Overview
Section titled “Overview”What is Fast Roaming?
Section titled “What is Fast Roaming?”Fast roaming allows clients to:
- Authenticate with a new AP before losing connection to the current AP
- Maintain active connections (VoIP, video calls) during AP transitions
- Automatically select the best AP based on signal strength and load
Standards Overview
Section titled “Standards Overview”| Standard | Purpose | Benefit |
|---|---|---|
| 802.11r | Fast BSS Transition | Pre-authentication reduces roaming delay |
| 802.11k | Radio Resource Management | AP-assisted roaming decisions |
| 802.11v | BSS Transition Management | Network-assisted AP selection |
Recommendation: Enable all three standards together for optimal roaming performance.
Requirements
Section titled “Requirements”Hardware Requirements
Section titled “Hardware Requirements”- Controller: Any RouterOS device running 7.13+ with CAPsMAN
- CAPs: Devices must support 802.11r/k/v (most WiFi package devices)
- RouterOS Version: 7.13+ recommended, minimum 7.4+
Critical Requirement: Single Controller
Section titled “Critical Requirement: Single Controller”ALL APs must be managed by the SAME RouterOS instance. Roaming does not work across different controllers.
✓ Correct: All APs managed by single CAPsMAN router✗ Wrong: Multiple independent APs or different controllersConfiguration
Section titled “Configuration”Security Profile Setup
Section titled “Security Profile Setup”CRITICAL: Use WPA2 only for fast roaming. WPA3 is incompatible with 802.11r fast roaming on most devices.
# Create security profile - WPA2 ONLY (no WPA3!)/interface wifi security add name=Roaming-Security \ authentication-types=wpa2-psk \ encryption=aes-ccm \ group-encryption=aes-ccm \ passphrase=YourSecurePass!
# Disable PMKID caching issues/interface wifi security set [find name=Roaming-Security] disable-pmkid=noConfiguration Profile
Section titled “Configuration Profile”# Create channel configuration/interface wifi channel add name=5GHz-Roaming \ band=5ghz-a/n/ac/ax \ frequency=5180,5200,5220,5240 \ channel-width=80mhz
# Create datapath/interface wifi datapath add name=Roaming-DP \ bridge=bridge-local \ local-forwarding=yes
# Create configuration with roaming enabled/interface wifi configuration add name=Roaming-AP \ ssid=Office-WiFi \ security=Roaming-Security \ channel=5GHz-Roaming \ datapath=Roaming-DP \ country=UnitedStates \ fast-roaming=yes \ rrm=yes \ bss-transition=yesCAPsMAN Configuration
Section titled “CAPsMAN Configuration”When using CAPsMAN:
# On CAPsMAN controller
# Create channel/capsman channel add name=5GHz band=5ghz-a/n/ac/ax frequency=5180
# Create security - WPA2 ONLY/capsman security add name=Roaming-Sec \ authentication-types=wpa2-psk \ encryption=aes-ccm \ passphrase=YourPass!
# Create configuration with roaming/capsman configuration add name=Roaming-AP \ channel=5GHz \ security=Roaming-Sec \ ssid=Office-WiFi \ country=UnitedStates \ # Enable fast roaming ft=yes \ rrm=yes \ bss-transition=yes
# Provisioning rule/capsman provisioning add \ action=create-dynamic-enabled \ hw-supported-modes=ac,ax \ master-configuration=Roaming-APUnderstanding 802.11r
Section titled “Understanding 802.11r”Fast BSS Transition (FT)
Section titled “Fast BSS Transition (FT)”802.11r allows clients to perform the 4-way handshake with a new AP before disconnecting from the current AP:
- Initial Authentication - Client authenticates with first AP
- FT Authentication - Client gets mobility domain info
- Pre-authentication - Client pre-authenticates with target AP
- Fast Transition - Client switches with minimal delay
FT Modes
Section titled “FT Modes”| Mode | Description |
|---|---|
over-the-air | Client communicates directly with target AP |
over-the-ds | Client communicates via current AP (more reliable) |
# Set FT mode/interface wifi configuration set [find] ft-mode=over-the-dsUnderstanding 802.11k
Section titled “Understanding 802.11k”Radio Resource Management
Section titled “Radio Resource Management”802.11k allows APs to:
- Measure channel conditions
- Report neighbor APs to clients
- Recommend optimal AP for roaming
# Enable 802.11k/interface wifi configuration set [find] rrm=yesRRM Options
Section titled “RRM Options”| Option | Description |
|---|---|
rrm=yes | Enable Radio Resource Management |
neighbor-list=yes | Advertise neighbor APs to clients |
Understanding 802.11v
Section titled “Understanding 802.11v”BSS Transition Management
Section titled “BSS Transition Management”802.11v allows the network to:
- Request clients to roam to better APs
- Balance load across APs
- Direct clients away from congested APs
# Enable 802.11v/interface wifi configuration set [find] bss-transition=yesBSS Transition Options
Section titled “BSS Transition Options”| Option | Description |
|---|---|
bss-transition=yes | Enable network-directed roaming |
bss-transition-legacy=yes | Support older clients |
Complete Example
Section titled “Complete Example”Single Router Setup (No CAPsMAN)
Section titled “Single Router Setup (No CAPsMAN)”# Enable CAPsMAN manager (even for local APs)/capsman manager set enabled=yes
# Create security - MUST be WPA2 for 802.11r/interface wifi security add name=corp-sec \ authentication-types=wpa2-psk \ encryption=aes-ccm \ passphrase=SecurePassword!
# Create 2.4GHz channel/interface wifi channel add name=2.4ghz band=2ghz-b/g/n/ax frequency=2437 channel-width=20mhz
# Create 5GHz channel/interface wifi channel add name=5ghz band=5ghz-a/n/ac/ax frequency=5180,5200 channel-width=80mhz
# Create datapath/interface wifi datapath add name=corp-dp bridge=bridge-local
# Create 2.4GHz configuration/interface wifi configuration add name=2.4ghz-ap \ ssid=Corporate \ security=corp-sec \ channel=2.4ghz \ datapath=corp-dp \ country=UnitedStates \ fast-roaming=yes \ rrm=yes \ bss-transition=yes
# Create 5GHz configuration/interface wifi configuration add name=5ghz-ap \ ssid=Corporate \ security=corp-sec \ channel=5ghz \ datapath=corp-dp \ country=UnitedStates \ fast-roaming=yes \ rrm=yes \ bss-transition=yes
# Apply to interfaces (assuming wifi1 and wifi2)/interface wifi set [find name="wifi1"] configuration=2.4ghz-ap disabled=no/interface wifi set [find name="wifi2"] configuration=5ghz-ap disabled=noCAPsMAN Setup
Section titled “CAPsMAN Setup”# On CAPsMAN Controller
# Enable manager/capsman manager set enabled=yes
# Security - WPA2 only!/capsman security add name=fast-roam \ authentication-types=wpa2-psk \ encryption=aes-ccm \ passphrase=YourPass!
# Channel configuration/capsman channel add name=5ghz band=5ghz-a/n/ac/ax frequency=5180
# Datapath (local forwarding recommended)/capsman datapath add name=corp-dp bridge=bridge-local local-forwarding=yes
# Configuration with roaming/capsman configuration add name=fast-roam-ap \ channel=5ghz \ security=fast-roam \ datapath=corp-dp \ ssid=Office-Net \ country=UnitedStates \ ft=yes \ rrm=yes \ bss-transition=yes
# Provisioning/capsman provisioning add \ action=create-dynamic-enabled \ hw-supported-modes=ac,ax \ master-configuration=fast-roam-ap
# On each CAP
# Point CAP to controller/interface wifi cap set enabled=yes \ capsman-addresses=10.0.0.1 \ discovery-interface=bridge1Client Compatibility
Section titled “Client Compatibility”Tested Working
Section titled “Tested Working”| Device | Notes |
|---|---|
| Google Pixel (all models) | Excellent roaming support |
| Apple iPhone/iPad | Works with WPA2 |
| Apple MacBook | Good roaming performance |
| Windows 10/11 | Works with WPA2 |
| Samsung Galaxy (recent) | Generally good |
Known Issues
Section titled “Known Issues”| Device | Issue | Workaround |
|---|---|---|
| Xiaomi phones | Poor roaming with WPA2 | Use WPA3 (but slower roaming) |
| Huawei phones | Roaming issues reported | Latest firmware helps |
| Some Android tablets | May get stuck on weak AP | Disable band steering |
| WPA3 devices | 802.11r often broken | Use WPA2/WPA3 mixed mode |
WPA3 Roaming Warning
Section titled “WPA3 Roaming Warning”Avoid WPA3 when fast roaming is required.
Many devices do not properly implement 802.11r with WPA3:
- Some Android devices fail to roam
- Delayed roaming causes connection drops
- Security re-keying interrupts traffic
If you must use WPA3, accept that roaming performance will be degraded.
Verification and Monitoring
Section titled “Verification and Monitoring”Check Client Roaming Status
Section titled “Check Client Roaming Status”# View connected clients/interface wifi registration-table print
# Monitor a specific client/interface wifi registration-table monitor [find mac-address=XX:XX:XX:XX:XX:XXEnable Roaming Logging
Section titled “Enable Roaming Logging”# Enable debug logging/system logging add topics=wireless,debug
# Watch for roaming events/log print where "~*roam*"Verify Configuration
Section titled “Verify Configuration”# Check roaming settings on interface/interface wifi configuration print detailLook for:
fast-roaming: truerrm: truebss-transition: true
Troubleshooting
Section titled “Troubleshooting”Clients Not Roaming
Section titled “Clients Not Roaming”-
Verify WPA2 is used - WPA3 breaks 802.11r on most devices
-
Check all APs on same controller - Roaming requires single controller
-
Verify client support - Some devices don’t support 802.11r
-
Check signal overlap - APs should have 20-30% coverage overlap
-
Enable neighbor list:
/interface wifi configuration set [find] neighbor-list=yesRoaming Delay/Drops
Section titled “Roaming Delay/Drops”-
Reduce AP spacing - Ensure good overlap coverage
-
Lower tx-power - Force clients to roam earlier:
/interface wifi set [find] tx-power=17-
Check for interference - Strong interference can cause failed roaming
-
Update client firmware - Device updates often fix roaming issues
Clients Sticking to Weak AP
Section titled “Clients Sticking to Weak AP”- Enable 802.11v BSS Transition:
/interface wifi configuration set [find] bss-transition=yes- Configure minimum RSSI:
/interface wifi configuration set [find] roaming-allow=yes- Enable band steering to push to 5 GHz
Intermittent Roaming Issues
Section titled “Intermittent Roaming Issues”- Check for PMKID issues:
/interface wifi security set [find] disable-pmkid=yes-
Update RouterOS - Older versions have roaming bugs
-
Check client power settings - Some phones reduce WiFi power when screen off
Performance Tuning
Section titled “Performance Tuning”Roaming Parameters
Section titled “Roaming Parameters”# Adjust configuration for better roaming/interface wifi configuration set [find] \ # Aggressive roaming disconnect-timeout=5s \ # Quick handoff roaming-allow=yesLoad Balancing
Section titled “Load Balancing”# Enable client load balancing via 802.11v/interface wifi configuration set [find] \ bss-transition=yes \ bss-transition-legacy=yes
# Set max clients per radio/capsman interface set numbers=0 \ max-station-count=50Best Practices
Section titled “Best Practices”-
Use WPA2 only for fast roaming - WPA3 breaks 802.11r on most devices
-
Single controller - All roaming APs must be on same RouterOS instance
-
Coverage overlap - 20-30% overlap between APs for seamless handoff
-
Enable all three standards - Use 802.11r, 802.11k, and 802.11v together
-
Consistent SSID - Same SSID across all APs, no password changes
-
Local forwarding - Use local-forwarding=yes for lower latency
-
Update firmware - Keep RouterOS and client devices updated
-
Test with critical devices - Verify roaming works with your specific devices
Related Documentation
Section titled “Related Documentation”- CAPsMAN - Centralized wireless management
- WiFi 6 and RouterOS 7 WiFi Package - WiFi 6 configuration
- Band Selection Guide - Choosing the right frequency
- Security Profiles - WPA2/WPA3 settings