I have a working dynamic mesh between three devices over WLAN. But as this mesh could become a lot bigger I would like to have the flexibility of using ethernet links between some devices to reduce wireless usage / interference etc.
However when I add the ether1 interface to the mesh, it still sends the traffic over the wlan instead of over the ethernet. According to the wiki HWMP+ is suppose to support ethernet in the mesh.
What I've noticed:
1) the other routers ethernet ports are shown as outsiders in the Mesh FDB. They should be included in the mesh as they've been added to the mesh on both sides. The sequence number does not increase for ether1. For other interfaces the sequence numbers do increase.
2) Active type in Mesh Port for ether1 is ethernet bridge and not ethernet-mesh like I would expect. How can I change it to ethernet-mesh? The port type is set to auto and I have verified that it's not included in the bridge.
3) If I disable the WLAN manually it immediately starts using the Ethernet and there is no interruption in the connection. This leads me to believe that the Ethernet is correctly configured as part of the mesh.
I've tried:
1) firmware 6.35.1, 6.37.1 and 6.38, and they both show the same behaviour. I can't go back further than 6.35.1 due to that being the minimum ROS version for my hardware.
2) dropping the cost of ether1 in MeshPort to 0, and increasing the cost to 100. This does not appear to have any effect.
3) using an admin-mac for the mesh so that the other devices don't see a change in MAC when switching between wlan and ethernet.
4) I've tried enabling and disabling reoptimize paths.
5) I've tried enabling and disabling mesh portal to switch between proactive and reactive.
6) Rebooting all devices after making changes to clear out any residuals.
Router1 Mesh:
Code: Select all
[admin@192.168.8.2] /interface mesh> print detail
Flags: X - disabled, R - running
0 R name="MeshNetwork" mtu=1500 arp=enabled arp-timeout=auto mac-address=6C:3B:6B:22:02:F3 auto-mac=yes
admin-mac=30:F6:B9:00:00:A2 mesh-portal=no hwmp-default-hoplimit=32 hwmp-preq-waiting-time=4s hwmp-preq-retries=2
hwmp-preq-destination-only=yes hwmp-preq-reply-and-forward=yes hwmp-prep-lifetime=5m hwmp-rann-interval=10s
hwmp-rann-propagation-delay=0.5 hwmp-rann-lifetime=22s reoptimize-paths=no
Code: Select all
[admin@192.168.8.2] /interface mesh port> print detail
Flags: X - disabled, I - inactive, D - dynamic
0 interface=wlan1 mesh=MeshNetwork path-cost=10 hello-interval=10s
port-type=auto active-port-type=wireless
1 interface=ether1 mesh=MeshNetwork path-cost=1 hello-interval=10s
port-type=auto active-port-type=ethernet-bridge
2 D interface=wds2 mesh=MeshNetwork path-cost=100 hello-interval=10s
port-type=auto active-port-type=WDS
3 D interface=wds3 mesh=MeshNetwork path-cost=100 hello-interval=10s
port-type=auto active-port-type=WDS
Code: Select all
[admin@192.168.8.2] /interface mesh fdb> print detail
Flags: A - active, R - root
AR mesh=MeshNetwork type=mesh mac-address=30:F6:B9:00:00:A4 on-interface=wds3 lifetime=0s age=4s metric=100 seq-number=337
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:22:02:F3 age=3m6s metric=0 seq-number=22
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:22:02:F5 age=3m6s metric=0 seq-number=22
A mesh=MeshNetwork type=outsider mac-address=6C:3B:6B:22:02:F6 on-interface=ether1 lifetime=0s age=2m56s metric=1 seq-number=0
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:22:02:F8 on-interface=wds2 age=3m6s metric=100 seq-number=20
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:74:43:FE on-interface=wds3 age=3m6s metric=100 seq-number=338
Code: Select all
[admin@192.168.8.2] /interface mesh fdb> print detail
Flags: A - active, R - root
AR mesh=MeshNetwork type=mesh mac-address=30:F6:B9:00:00:A4 on-interface=wds3 lifetime=0s age=4s metric=100 seq-number=337
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:22:02:F3 age=3m6s metric=0 seq-number=22
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:22:02:F5 age=3m6s metric=0 seq-number=22
A mesh=MeshNetwork type=outsider mac-address=6C:3B:6B:22:02:F6 on-interface=ether1 lifetime=0s age=2m56s metric=1 seq-number=0
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:22:02:F8 on-interface=wds2 age=3m6s metric=100 seq-number=20
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:74:43:FE on-interface=wds3 age=3m6s metric=100 seq-number=338
Code: Select all
[admin@192.168.8.2] /interface wireless> print detail
Flags: X - disabled, R - running
0 R name="wlan1" mtu=1500 l2mtu=1600 mac-address=6C:3B:6B:22:02:F5 arp=enabled interface-type=Atheros AR9888 mode=ap-bridge
ssid="WifiV1" frequency=5180 band=5ghz-a/n/ac channel-width=20mhz scan-list=default
wireless-protocol=802.11 vlan-mode=no-tag vlan-id=1 wds-mode=dynamic-mesh wds-default-bridge=MeshNetwork wds-ignore-ssid=no
bridge-mode=enabled default-authentication=yes default-forwarding=yes default-ap-tx-limit=0 default-client-tx-limit=0
hide-ssid=no security-profile=Security compression=yes
Code: Select all
[admin@192.168.8.1] /interface mesh> print detail
Flags: X - disabled, R - running
0 R name="MeshNetwork" mtu=1500 arp=enabled arp-timeout=auto
mac-address=6C:3B:6B:22:02:F6 auto-mac=yes admin-mac=30:F6:B9:00:00:A1
mesh-portal=no hwmp-default-hoplimit=32 hwmp-preq-waiting-time=4s
hwmp-preq-retries=2 hwmp-preq-destination-only=yes
hwmp-preq-reply-and-forward=yes hwmp-prep-lifetime=5m hwmp-rann-interval=10s
hwmp-rann-propagation-delay=0.5 hwmp-rann-lifetime=22s reoptimize-paths=no
Code: Select all
[admin@192.168.8.1] /interface mesh port> print detail
Flags: X - disabled, I - inactive, D - dynamic
0 interface=wlan1 mesh=MeshNetwork path-cost=10 hello-interval=10s port-type=auto
active-port-type=wireless
1 interface=ether1 mesh=MeshNetwork path-cost=1 hello-interval=10s port-type=auto
active-port-type=ethernet-bridge
2 D interface=wds3 mesh=MeshNetwork path-cost=100 hello-interval=10s port-type=auto
active-port-type=WDS
3 D interface=wds4 mesh=MeshNetwork path-cost=100 hello-interval=10s port-type=auto
active-port-type=WDS
Code: Select all
[admin@192.168.8.1] /interface mesh fdb> print detail
Flags: A - active, R - root
AR mesh=MeshNetwork type=mesh mac-address=30:F6:B9:00:00:A4 on-interface=wds3
lifetime=0s age=6s metric=100 seq-number=35
A mesh=MeshNetwork type=outsider mac-address=6C:3B:6B:22:02:F3 on-interface=ether1
lifetime=0s age=17m7s metric=1 seq-number=0
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:22:02:F5 on-interface=wds4
age=17m8s metric=100 seq-number=102
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:22:02:F6 age=17m8s metric=0
seq-number=100
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:22:02:F8 age=17m8s metric=0
seq-number=100
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:74:43:FE on-interface=wds3
age=17m8s metric=100 seq-number=36
Code: Select all
[admin@192.168.8.1] /interface ethernet> print detail
Flags: X - disabled, R - running, S - slave
0 RS name="ether1" default-name="ether1" mtu=1500 l2mtu=1600
mac-address=6C:3B:6B:22:02:F6 orig-mac-address=6C:3B:6B:22:02:F6 arp=enabled
arp-timeout=auto loop-protect=default loop-protect-status=off
loop-protect-send-interval=5s loop-protect-disable-time=5m auto-negotiation=yes
advertise=10M-half,10M-full,100M-half,100M-full,1000M-half,1000M-full
full-duplex=yes tx-flow-control=off rx-flow-control=off speed=100Mbps
master-port=none bandwidth=unlimited/unlimited
Code: Select all
[admin@192.168.8.1] /interface wireless> print detail
Flags: X - disabled, R - running
0 R name="wlan1" mtu=1500 l2mtu=1600 mac-address=6C:3B:6B:22:02:F8 arp=enabled
interface-type=Atheros AR9888 mode=ap-bridge ssid="WifiV1" frequency=5180
band=5ghz-a/n/ac channel-width=20mhz scan-list=default
wireless-protocol=802.11 vlan-mode=no-tag vlan-id=1 wds-mode=dynamic-mesh
wds-default-bridge=MeshNetwork wds-ignore-ssid=no bridge-mode=enabled
default-authentication=yes default-forwarding=yes default-ap-tx-limit=0
default-client-tx-limit=0 hide-ssid=no security-profile=Security
compression=yes
A third router that is only connected to the mesh over WLAN can see the ethernet address of the router1 as being in the mesh.
Code: Select all
[admin@192.168.8.4] /interface mesh fdb> print detail
Flags: A - active, R - root
A mesh=MeshNetwork type=local mac-address=30:F6:B9:00:00:A4 age=25m36s metric=0 seq-number=155
A mesh=MeshNetwork type=mesh mac-address=6C:3B:6B:22:02:F3 on-interface=wds2 lifetime=0s age=11m17s
metric=101 seq-number=0
A mesh=MeshNetwork type=mesh mac-address=6C:3B:6B:22:02:F6 on-interface=wds2 lifetime=0s age=5s
metric=100 seq-number=219
A mesh=MeshNetwork type=neighbor mac-address=6C:3B:6B:22:02:F8 on-interface=wds2 age=25m36s
metric=100 seq-number=220
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:74:43:FC age=25m36s metric=0 seq-number=155
A mesh=MeshNetwork type=local mac-address=6C:3B:6B:74:43:FE age=25m36s metric=0 seq-number=155
Thanks in advance!