Mesh Wireless (HWMP+)
Mesh Wireless (HWMP+)
Section titled “Mesh Wireless (HWMP+)”TL;DR (quick start)
Section titled “TL;DR (quick start)”For the impatient: create a basic wireless mesh between two nodes.
On all mesh nodes:
# Configure WDS on wireless/interface wireless set wlan1 mode=ap-bridge wds-mode=dynamic-mesh \ wds-default-bridge=none frequency=5180 ssid=mesh-network
# Create mesh interface/interface mesh add name=mesh1 disabled=no
# Add wireless to mesh/interface mesh port add interface=wlan1 mesh=mesh1Verify:
/interface mesh fdb print/interface wireless registration-table printOverview
Section titled “Overview”What this does: HWMP+ (Hybrid Wireless Mesh Protocol Plus) provides Layer 2 routing for wireless mesh networks. Based on IEEE 802.11s draft standard, it creates self-healing, loop-free paths between mesh nodes without requiring spanning tree.
When to use this:
- Outdoor wireless backbone networks (4-6 nodes)
- Temporary event coverage
- Rural/remote area connectivity
- Building-to-building links with redundancy
When NOT to use this:
- WiFi 6 (802.11ax) devices - HWMP+ doesn’t work with wifiwave2
- Networks larger than 4-6 nodes - scaling issues
- Networks requiring multicast/OSPF - poor multicast support
- Enterprise deployments - use CAPsMAN instead
Two Operating Modes:
| Mode | Description | Best For |
|---|---|---|
| Reactive | On-demand path discovery via PREQ flooding | Mobile nodes, intra-mesh traffic |
| Proactive | Portal announces routes via RANN | Gateway/internet traffic |
Prerequisites:
- Devices with legacy
wirelessdriver (not wifiwave2) - Same SSID, frequency, and security on all nodes
- WDS-capable wireless configuration
Common Mistakes
- Don’t use HWMP+ with wifiwave2/WiFi 6 devices - it won’t work
- Don’t scale beyond 4-6 nodes - protocol becomes unstable
- Don’t run OSPF or other multicast protocols over mesh - causes storms
Configuration steps
Section titled “Configuration steps”Step 1: configure WDS on wireless
Section titled “Step 1: configure WDS on wireless”WDS (Wireless Distribution System) enables multi-hop forwarding with four-address frames:
/interface wireless set wlan1 \ mode=ap-bridge \ wds-mode=dynamic-mesh \ wds-default-bridge=none \ frequency=5180 \ ssid=mesh-network \ security-profile=defaultWDS Modes:
dynamic-mesh- Auto-create WDS links, optimized for mesh (recommended)dynamic- Auto-create WDS on any compatible peerstatic- Manual WDS links only
Step 2: create mesh interface
Section titled “Step 2: create mesh interface”/interface mesh add name=mesh1 disabled=noStep 3: add ports to mesh
Section titled “Step 3: add ports to mesh”# Add wireless interface/interface mesh port add interface=wlan1 mesh=mesh1Step 4: repeat on all nodes
Section titled “Step 4: repeat on all nodes”Configure identical settings on all mesh participants. They will automatically discover each other and form mesh paths.
Portal configuration (proactive mode)
Section titled “Portal configuration (proactive mode)”For networks where most traffic goes to/from a gateway:
On gateway node (portal):
/interface mesh add name=mesh1 disabled=no mesh-portal=yes/interface mesh port add interface=wlan1 mesh=mesh1/interface mesh port add interface=ether1 mesh=mesh1On internal nodes:
/interface mesh add name=mesh1 disabled=no mesh-portal=no/interface mesh port add interface=wlan1 mesh=mesh1The portal announces itself via RANN messages. Internal nodes learn default route to portal and forward unknown destinations there.
Mixed WDS and ethernet
Section titled “Mixed WDS and ethernet”Include wired links in the mesh:
/interface mesh add name=mesh1 disabled=no/interface mesh port add interface=wlan1 mesh=mesh1 port-type=wds/interface mesh port add interface=ether2 mesh=mesh1 port-type=ethernet path-cost=5Lower path-cost makes Ethernet preferred over wireless.
Bridge local clients
Section titled “Bridge local clients”Connect local clients to the mesh network:
# Create bridge for local clients/interface bridge add name=bridge-local
# Add local interfaces/interface bridge port add interface=ether2 bridge=bridge-local/interface bridge port add interface=wlan2 bridge=bridge-local
# Add bridge to mesh/interface mesh port add interface=bridge-local mesh=mesh1Mesh properties
Section titled “Mesh properties”Interface properties
Section titled “Interface properties”| Property | Default | Description |
|---|---|---|
mesh-portal | no | Act as gateway for proactive mode |
reoptimize-paths | no | Periodically revalidate paths |
hwmp-default-hoplimit | 32 | Maximum hop count |
hwmp-prep-lifetime | 5m | Route lifetime |
hwmp-rann-interval | 10s | Portal announcement interval |
Port properties
Section titled “Port properties”| Property | Default | Description |
|---|---|---|
path-cost | 10 | Routing cost (lower = preferred) |
port-type | auto | wds, ethernet, or wireless |
hello-interval | 10s | HWMP+ hello frequency |
Verification
Section titled “Verification”# Mesh interface status/interface mesh print
# Mesh ports and neighbors/interface mesh port print detail
# Forwarding database (learned MACs)/interface mesh fdb print
# Trace path through mesh/interface mesh traceroute mesh1 00:11:22:33:44:55
# WDS peer connections/interface wireless registration-table printFDB Entry Types:
local- MAC on directly connected portneighbor- MAC reachable via mesh neighbormesh- MAC reachable via multiple hopsoutsider- MAC outside mesh (via portal)
Troubleshooting
Section titled “Troubleshooting”| Symptom | Cause | Solution |
|---|---|---|
| Mesh unstable after few minutes | HWMP+ instability with many nodes | Limit to 4-6 nodes |
| No WDS peers connecting | Wrong WDS mode or SSID mismatch | Check wds-mode=dynamic-mesh, same SSID |
| Ethernet stuck as “outsider” | Port type detection issue | Set port-type=ethernet explicitly |
| WiFi 6 devices don’t mesh | wifiwave2 not supported | Use legacy wireless driver only |
| Traffic doesn’t use better path | Cost-based routing limitation | Manual intervention; accept limitation |
| High CPU usage | ANI issues | Disable: adaptive-noise-immunity=none |
| Multicast storms | No optimized L2 multicast | Avoid multicast; don’t run OSPF over mesh |
HWMP+ vs alternatives
Section titled “HWMP+ vs alternatives”| Feature | HWMP+ Mesh | WDS + RSTP | CAPsMAN |
|---|---|---|---|
| Optimal routing | Yes | No (loop prevention only) | N/A |
| Scalability | 4-6 nodes | 6+ nodes | Many APs |
| Self-healing | Yes | Yes | Yes |
| Multicast | Poor | Better | Good |
| WiFi 6 support | No | No | Yes |
| Configuration | Medium | Simple | Medium |
Limitations
Section titled “Limitations”- Does NOT work with wifiwave2 (WiFi 6) interfaces
- Scaling issues beyond 4-6 nodes
- Poor multicast/broadcast support
- Cost-based routing may not function properly
- Ethernet ports may get stuck as “outsider”
- No interface hopping for dual-radio mesh
Common Mistakes
- Don’t expect mesh to scale like enterprise WiFi - it’s designed for small deployments
- Don’t run multicast protocols (OSPF, mDNS) over mesh - causes network instability
- Don’t mix wifiwave2 and legacy wireless in the same mesh
Related topics
Section titled “Related topics”WiFi alternatives
Section titled “WiFi alternatives”- CAPsMAN - centralized management for enterprise WiFi (recommended)
- WiFi Basic Setup - single AP configuration
Network infrastructure
Section titled “Network infrastructure”- Bridge Configuration - connecting local clients to mesh
- VLAN Configuration - segment mesh traffic
- Ethernet Interfaces - wired mesh ports
Routing
Section titled “Routing”- OSPF - Layer 3 alternative for large networks
- Static Routes - manual routing through mesh
Security
Section titled “Security”- Firewall Basics - protect mesh traffic
- User Management - wireless authentication
Monitoring
Section titled “Monitoring”- IP Neighbors - discover mesh devices
- Torch - analyze mesh traffic
Reference
Section titled “Reference”- MikroTik HWMP+ Documentation
- IEEE 802.11s - Wireless Mesh Networking Standard