Closed tgolsson closed 9 hours ago
@tgolsson
Note that mesh11sd dynamically manages the config of itself, wireless and dnsmasq. Editing the config files directly is not recommended unless you really know what you are doing. Just looking at the output of cat /etc/config/wireless
is not indicative of the config, but it does show that you have a manual config, yet you have enabled auto_config.
The mesh11sd status
output shows you have HWMP disabled somehow.
I think you need to start from scratch.
Can you draw a diagram of your network? It would help.
Some questions:
It also seems like if I want to run the mesh portal as an L2 bridge only with my real router, I won't be able to reach the nodes at all,
No, that is not true, as long as you can log into your "real router" to get a meshnode address. I can guide you on this later.
For now though, answer my 2 questions above and read: https://openwrt.org/docs/guide-user/network/wifi/mesh/rapiddeployment
I think we will do a "Rapid Deployment", depending on your answers ;-)
Note that mesh11sd dynamically manages the config of itself, wireless and dnsmasq. Editing the config files directly is not recommended unless you really know what you are doing. Just looking at the output of cat /etc/config/wireless is not indicative of the config, but it does show that you have a manual config, yet you have enabled auto_config.
That is indeed a misunderstanding on my end, as I was under the impression I should at least configure the user-facing SSID's myself. I haven't modified the files directly, but I did use luci for my initial test config and then uci to set country codes etc. As I had one wifi-iface configured per device on initial boot, is the implication those should have been deleted? (Maybe this wouldn't be an issue with the rapid deployment?)
The mesh11sd status output shows you have HWMP disabled somehow.
Thanks, confirms I was at least looking in the right place.
Can you draw a diagram of your network? It would help.
flowchart LR subgraph infraroom drg[Fiber Converter/DRG] r[opnSense] s[L2 Switch] n0[Asus Lyra MAP-AC2200] end subgraph upstairs n1[Asus Lyra MAP-AC2200] n2[Asus Lyra MAP-AC2200] end
drg --> r
r --> s
s --> n0
n0 -.- n1
n0 -.- n2
n1 -.- n2
n2 -.- n1
>
> Some questions:
>
> 1. Do you have three Asus Lyra MAP-AC2200 nodes?
> 2. Is your isp/real router running OpenWrt?
Probably obvious from the diagram at this point, but I'm running opnSense as my main router, and I do have three mesh nodes of which one will be in the basement/infraroom and the two satellites will go upstairs.
> No, that is not true, as long as you can log into your "real router" to get a meshnode address. I can guide you on this later.
Ah, I saw a note somewhere about `mesh11sd connect` working over ipv6. I'll have to deal with that once things work, since opnSense is weirdly unstable on ipv6 and I currently have it disabled. I'm hoping once I migrate to Kea DHCP that'll work better.
@tgolsson
I should at least configure the user-facing SSID's myself. I haven't modified the files directly,
Well yes of course you can, in any of the normal ways. BUT you must first stop mesh11sd and revert. ie:
service mesh11sd stop
uci revert wireless
At this point you can use Luci to set your stuff.
However, all this is best done with rapid deployment, eliminating any complicated faffing ;-)
mesh11sd connect working over ipv6.
Yes it does. In fact it uses ipv6 link-local connectivity so does not need your router to be involved. Only problem is you need to ssh into one of the nodes somehow, to get started. You can do this by looking at the dhcp database on your pfsense router I guess.... and get an ipv4 address.
From your diagram, the two upstairs meshnodes can both communicate directly with the one downstairs.
As this is indoors, and the wireless is at microwave frequencies, there will be many strong reflections and multiple possible paths that can change rapidly (this is how radar works, so not surprising if you think about it).
The mesh network copes with this quite happily, changing hop paths where required to to get the best metric. The layer 2 packets all get delivered. But if things get really bad (your cat walks upstairs, your wife goes to the bathroom), it is possible for packets to be delayed or sent out of sequence if a mesh hop path changes. TCP will be very unhappy with this and might even drop connections.
Mesh11sd can mitigate this "indoors multipath propagation" problem with various built in magic. By default it will stabilise mesh paths and in a case like this will most likely be, you can set mesh Leechmode on some nodes as well as tune the radio sensitivity and transmit power.
My guess though (based on past experience) is all you need is leechmode on your two upstairs nodes.
Do you want to try reflashing rapid deployment?
I would recommend it.
@tgolsson
I should at least configure the user-facing SSID's myself. I haven't modified the files directly,
Well yes of course you can, in any of the normal ways. BUT you must first stop mesh11sd and revert. ie:
service mesh11sd stop uci revert wireless
At this point you can use Luci to set your stuff.
Right, I probably changed some stuff around after setting it up. I also did uci commit
a bunch (without specifying scopes) which definitely caused issues.
However, all this is best done with rapid deployment, eliminating any complicated faffing ;-)
mesh11sd connect working over ipv6.
Yes it does. In fact it uses ipv6 link-local connectivity so does not need your router to be involved. Only problem is you need to ssh into one of the nodes somehow, to get started. You can do this by looking at the dhcp database on your pfsense router I guess.... and get an ipv4 address.
From your diagram, the two upstairs meshnodes can both communicate directly with the one downstairs.
Ah, great! I'm not sure exactly how the node gets an ipv4 address while also not working as a DHCP server, but maybe I'm getting ahead of the action here. Maybe it was due to other misconfiguration, but when I connect the LAN port with my current setup the nodes don't run DHCP.
What can go wrong?
As this is indoors, and the wireless is at microwave frequencies, there will be many strong reflections and multiple possible paths that can change rapidly (this is how radar works, so not surprising if you think about it).
The mesh network copes with this quite happily, changing hop paths where required to to get the best metric. The layer 2 packets all get delivered. But if things get really bad (your cat walks upstairs, your wife goes to the bathroom), it is possible for packets to be delayed or sent out of sequence if a mesh hop path changes. TCP will be very unhappy with this and might even drop connections.
Mesh11sd can mitigate this "indoors multipath propagation" problem with various built in magic. By default it will stabilise mesh paths and in a case like this will most likely be, you can set mesh Leechmode on some nodes as well as tune the radio sensitivity and transmit power.
My guess though (based on past experience) is all you need is leechmode on your two upstairs nodes.
I'm actually suspecting due to visibility they'll end up as a chain, if that's a thing that can work. My downstairs node will have good LOS through the stairs to upstairs node 1, and I hope to position the last one to get OK visibility to the first node. Probably would be less of an issue if I ran the mesh on 2.4 Ghz, but having two 5 Ghz radios it seems more sensible to dedicate one to mesh. The 2.4 Ghz is already drowning in IoT/smart devices/wireless cameras etc, so also running a mesh on that device seems awkward, even if the incoming chatter is hitting multiple nodes. Maybe I'll end up regretting this... Long-term wired is my goal either way, so I'm fine with a bit of fiddling short-term as long as it's stable.
Do you want to try reflashing rapid deployment?
I would recommend it.
Yeah, it seems like my best course of action. I figure I'll change the packages to non-ct variants, change to wpad-wolfssl, and add mesh11sd and kmod-nft-bridge if not already included. I see there's some uci-defaults suggested on the wiki, but I can't see how to set the SSIDs - can I just add those lines at the start before mesh11sd is configured? I'd want to match the details from my current setup (FooNet
and FooNet_5G
) due to some "smart" devices being terrible to connect.
@tgolsson Set everything up in the Firmware selector as described in the Rapid Deployment link.:
NOTE: You will be flashing the exact same image on all 3 nodes.
Do not over think this, it is actually very simple. Read the docs again: https://openwrt.org/docs/guide-user/network/wifi/mesh/rapiddeployment
Let me see the uci-defaults you are going to use before flashing...
Great, thanks! Will switch to mbedtls, I got the impression when reading that wolfssl was better/faster/smaller, but maybe that's marketing. Re channel and band, will stay on 2.4Ghz for now. I'll maybe also be concerned about speed (4k streaming especially), but I figure switching later is just a reflash once I know how everything works.
With that said, I think this is all:
uci set mesh11sd.setup.auto_config='1'
uci set mesh11sd.setup.auto_mesh_id='MyNet'
uci set mesh11sd.setup.auto_mesh_key='MeshPassword'
uci set mesh11sd.setup.portal_channel='13'
uci set mesh11sd.setup.mesh_gate_encryption='3'
uci set mesh11sd.setup.mesh_gate_key='AABBCCDD'
uci set mesh11sd.setup.ssid_suffix_enable='0'
uci commit mesh11sd
# main network is 10.0.0.0/16, gateway+dns+dhcp 10.0.0.1, dhcp assigning most of 10.0.0.0/24
uci set network.lan.ipaddr='10.0.0.254'
uci commit network
# 5ghz/low channels
uci set wireless.radio0.country='SE'
uci set wireless.radio0.disabled='0'
uci set wireless.radio0.channel='auto'
uci set wireless.default_radio0.ssid='MyNet_5G'
uci set wireless.default_radio0.disabled='0'
# 2.4ghz
uci set wireless.radio1.country='SE'
uci set wireless.radio1.disabled='0'
uci set wireless.default_radio1.ssid='MyNet'
uci set wireless.default_radio1.disabled='0'
# 5ghz/high channels
uci set wireless.radio2.country='SE'
uci set wireless.radio2.disabled='0'
uci set wireless.radio2.channel='auto'
uci set wireless.default_radio2.ssid='MyNet_5G'
uci set wireless.default_radio2.disabled='0'
uci commit wireless
rootpassword="myrootpassword"
/bin/passwd root << EOF
$rootpassword
$rootpassword
EOF
I eventually want to also enable 802.11r, but I'm erring on the side of simple right now.
@tgolsson
uci set network.lan.ipaddr='10.0.0.254'
For "mesh extension" mode, this is only a fallback ip address and should be a different subnet entirely to prevent clashing with your router if you connect in "routed mesh" portal mode. According to your diagram, you will be connecting in "mesh extension" mode. See: https://openwrt.org/docs/guide-user/network/wifi/mesh/rapiddeployment#deploy_your_meshnodes
Other than that it looks ok. Go for it!
@tgolsson Note: You do not have to enable wireless in the uci-defaults. Auto config will do it for you. ie:
uci set wireless.radio1.disabled='0'
uci set wireless.default_radio0.disabled='0'
....... etc
are superfluous.
Thanks for your help so far, I got everything to work and 2.4 Ghz works though as expected, devices are limited to ~120 Mbps. We'll see if I switch over everything to 5Ghz later. One issue that cropped up - unrelated to mesh11sd or openwrt - was a device only operating on channels 1-10, thus not finding the network. Took a bit to figure out and fix.
However, that gave me a bit of a pause. Per the above, I did uci set mesh11sd.setup.portal_channel='13'
. That is also the channel it originally used. I then changed it to 3
, but ended up on 1. So given that I'm using the LAN ports, I guess I should actually just write to wireless.radio1.channel
as I have no portal, and it runs in an auto mode right now?
@tgolsson
devices are limited to ~120 Mbps.
Yes, that is true (wifi5 up to 150Mb/s), but the mesh nodes will communicate with each other at up to 300Mb/s. (wifi 6 would give over 1000Mb/s node to node and node to node for wifi 6 compatible clients - this is the way forward for the near future if buying new hardware of course).
So it all depends on use case... do clients need more than 100Mb/s? Usually not if we are realistic. Up to you of course ;-)
a device only operating on channels 1-10
When I have seen that in the past, the device did not have a country code set.....
I did
uci set mesh11sd.setup.portal_channel='13'
This sets the default channel that all meshnodes fall back to if a portal cannot be found.
Yes, you can set channel in wireless instead. Either way make the change on all.
Hey!
As a preface, I'll openly admit I'm new to both OpenWrt and mesh systems, and I'm not quite sure if this is more of an OpenWRT or mesh11sd specific issue. Feel free to send me off back to the forums - though I think you'd be the person to respond there either way after reading a lot of the relevant threads.
With that said, I'm setting up an 802.11s mesh with Asus Lyra MAP-AC2200 nodes. Quite old, but seem to work fine and I had a manual config working~, but saw adamant suggestions about using mesh11sd instead. Since then, I've been in hell trying to get something to stabilize. Right now, I've got something that at least connects, when the nodes are sitting next to each other. However, they don't appear to peer (?) correctly, and I'm not quite sure what that means -- something related to HWMP?
This indicates that some configuration is still wrong; and I'm not quite sure why. This is most (maybe?) relevant config from the nodes...
Node 0
Node 1
As far as I can tell from reading the code; having no peers is the reason commands like
mesh11sd connect
etc do not work. When generating the above status fornode-1
it does have a WAN connection, but disconnecting that doesn't fix anything. Not quite sure how to debug this as when I remove the WAN connection on the satellites I can't check config or logs, so I'm stumbling in the dark.It also seems like if I want to run the mesh portal as an L2 bridge only with my real router, I won't be able to reach the nodes at all, which maybe isn't as much of an issue once things are actually stable. I'm not sure if this is part of the problems I'm having, as I've changed the firewall rules to admin the nodes from the WAN port.
Happy to provide any extra info needed, and test any suggestions!