Need to restart routers or wlan to fix connection issues almost daily now, how to fix?

Im running a smart home with a lot of wireless devices running zigbee and on wlan. I seperated the frequency's so that zigbee isn't interfering with wifi channels though.
Here is a photo of a presence sensor, with the blue circle being the time i send a command to stop and start wireless on all routers. The black parts are where the sensor was unavailable.

I also notice the problem on most other devices, camera's becoming laggy or losing connection, and i have quite some cameras.
One note though, is that when i reboot all routers(so not just restart wlan) i notice all cameras are extremely snappy to load compared to hours afterwards where it can take 3-7s or so before a stream loads.

If i were to count the devices, i probably run around 50 active wifi devices. out of which are 7 wireless cameras, streaming at 1440p. Others are ofcourse using a lot less bandwidth, most of the time. phones, vacuum robot, some lights, media players, presence sensors.

My setup is one main router, and two dumb ap's. the two dumb ap's are connected by lan cable to the main router and have the goal to maximize wifi reach in the house. All devices run openwrt.
I tried to have all roaming standards (such as fast roaming, k and v) enabled, and have them disabled for a long while already. it doesn't seem to do much in terms of stability. I checked with my phone around the house and have great wifi everywhere with one relative bad spot, but no devices in that spot.

It's just super frustrating to have to reboot the routers completely or reboot the wlan once in a while, and i want to figure out why this is needed and what can be done to solve it.

The 3 routers i have are all the same, the dynalink wrx36.

Any help would be appriciated!

50 clients would use 50-100MB RAM, so 64MB router will not cut it, 128MB one may need zram-swap package, the more ram the merrier.

Can you provide some information about your setup?
ssh to the router and copy out outputs of following:

ubus call system board
cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/firewall

Replace secret info with ABC and format outputs7 as code using </> button

i log in sometimes on the luci interface, and it's always like this:

So it doesn't seem it fights too much with ram?

root@MainRouter:~# ubus call system board
{
        "kernel": "5.15.162",
        "hostname": "MainRouter",
        "system": "ARMv8 Processor rev 4",
        "model": "Dynalink DL-WRX36",
        "board_name": "dynalink,dl-wrx36",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.4",
                "revision": "r24012-d8dd03c46f",
                "target": "ipq807x/generic",
                "description": "OpenWrt 23.05.4 r24012-d8dd03c46f"
        }
}

root@MainRouter:~# cat /etc/config/network

config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fd24:536a:b9a7::/48'
        option packet_steering '1'

config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'
        option ipv6 '0'
        option igmp_snooping '1'

config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option delegate '0'

config interface 'wan'
        option device 'wan.200'
        option proto 'pppoe'
        option type 'bridge'
        option username 'ABC'
        option password 'ABC'
        option ipv6 'auto'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'
        option reqaddress 'try'
        option reqprefix 'auto'

config interface 'surfshark'
        option proto 'wireguard'
        option private_key 'ABC'
        option metric '0'
        option delegate '0'
        option mtu '1360'
        list addresses '10.69.80.95/32'
        list addresses 'fc00:bbbb:bbbb:bb01::6:505e/128'
        list dns '100.64.0.63'

config interface 'surfsharkovpn'
        option proto 'none'
        option device 'tun0'
        option delegate '0'
        option auto '0'

config device 'guest_dev'
        option name 'br-guest'

config interface 'ABC'
        option proto 'static'
        option ipaddr '192.168.2.1'
        option netmask '255.255.255.0'
        list dns '8.8.8.8'

config wireguard_surfshark
        option description 'de-fra-wg-004.conf'
        option public_key 'ABC'
        list allowed_ips '0.0.0.0/0'
        list allowed_ips '::0/0'
        option endpoint_host 'ABC'
        option endpoint_port '51820'
        option route_allowed_ips '1'
        option persistent_keepalive '25'

config device
        option type '8021q'
        option ifname 'wan'
        option vid '200'
        option name 'wan.200'

root@MainRouter:~# cat /etc/config/wireless

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi'
        option band '5g'
        option cell_density '0'
        option htmode 'HE80'
        option channel '40'
        option country 'US'

config wifi-iface 'default_radio0'
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'ABC'
        option encryption 'psk2'
        option key 'ABC'
        option disassoc_low_ack '0'
        option wpa_group_rekey '86400'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'platform/soc/c000000.wifi+1'
        option band '2g'
        option htmode 'HE40'
        option cell_density '0'
        option country 'US'
        option channel 'auto'

config wifi-iface 'default_radio1'
        option device 'radio1'
        option network 'lan'
        option mode 'ap'
        option ssid 'ABC'
        option encryption 'psk2'
        option key 'ABC'
        option disassoc_low_ack '0'
        option wpa_group_rekey '86400'

config wifi-iface 'wifinet7'
        option device 'radio1'
        option mode 'mesh'
        option encryption 'sae'
        option mesh_id '189b'
        option mesh_fwding '1'
        option mesh_rssi_threshold '0'
        option key 'L0chM3sH2'
        option network 'lan'
        option disabled '1'

config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'mesh'
        option encryption 'sae'
        option mesh_id '188b'
        option mesh_fwding '1'
        option mesh_rssi_threshold '0'
        option key 'L0chM3sH2'
        option network 'lan'
        option disabled '1'

config wifi-iface 'wifinet4'
        option device 'radio1'
        option mode 'ap'
        option ssid 'ABC'
        option encryption 'psk2'
        option isolate '1'
        option network 'ABC'
        option key 'ABC'

root@MainRouter:~# cat /etc/config/firewall

config defaults
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option synflood_protect '1'
        option flow_offloading '1'

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list network 'lan'

config zone
        option name 'wan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option mtu_fix '1'
        option masq '1'
        list network 'wan'
        list network 'wan6'

config rule
        option name 'Allow-DHCP-Renew'
        option src 'wan'
        option proto 'udp'
        option dest_port '68'
        option target 'ACCEPT'
        option family 'ipv4'

config rule
        option name 'Allow-Ping'
        option src 'wan'
        option proto 'icmp'
        option icmp_type 'echo-request'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-IGMP'
        option src 'wan'
        option proto 'igmp'
        option family 'ipv4'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCPv6'
        option src 'wan'
        option proto 'udp'
        option dest_port '546'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-MLD'
        option src 'wan'
        option proto 'icmp'
        option src_ip 'fe80::/10'
        list icmp_type '130/0'
        list icmp_type '131/0'
        list icmp_type '132/0'
        list icmp_type '143/0'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Input'
        option src 'wan'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        list icmp_type 'router-solicitation'
        list icmp_type 'neighbour-solicitation'
        list icmp_type 'router-advertisement'
        list icmp_type 'neighbour-advertisement'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-ICMPv6-Forward'
        option src 'wan'
        option dest '*'
        option proto 'icmp'
        list icmp_type 'echo-request'
        list icmp_type 'echo-reply'
        list icmp_type 'destination-unreachable'
        list icmp_type 'packet-too-big'
        list icmp_type 'time-exceeded'
        list icmp_type 'bad-header'
        list icmp_type 'unknown-header-type'
        option limit '1000/sec'
        option family 'ipv6'
        option target 'ACCEPT'

config rule
        option name 'Allow-IPSec-ESP'
        option src 'wan'
        option dest 'lan'
        option proto 'esp'
        option target 'ACCEPT'

config rule
        option name 'Allow-ISAKMP'
        option src 'wan'
        option dest 'lan'
        option dest_port '500'
        option proto 'udp'
        option target 'ACCEPT'

config zone
        option name 'surfshark'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        list network 'surfshark'

config rule
        option name 'exceptions'
        option src 'lan'
        list src_ip '192.168.1.179'
        list src_ip '192.168.1.151'
        option dest 'wan'
        option target 'ACCEPT'
        option enabled '0'

config zone
        option name 'ovpntest'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
        option family 'ipv4'
        list network 'surfsharkovpn'

config include 'pbr'
        option fw4_compatible '1'
        option type 'script'
        option path '/usr/share/pbr/pbr.firewall.include'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'ntp'
        list proto 'udp'
        option src 'lan'
        option src_dport '123'
        option dest_port '123'
        list src_mac '3C:52:A1:49:18:D1'
        list src_mac '3C:52:A1:ED:9A:D6'
        list src_mac '3C:52:A1:ED:9C:CA'
        list src_mac '3C:52:A1:ED:A6:F4'
        list src_mac 'F0:A7:31:18:8F:C2'
        list src_mac '98:25:4A:BA:35:B2'
        list src_mac '24:2F:D0:30:A3:96'
        list src_mac '24:2F:D0:30:97:FC'
        list src_mac '24:2F:D0:30:9E:DE'
        list src_mac '24:2F:D0:30:9A:A8'
        list src_mac '40:AE:30:50:DA:6C'

config zone
        option name 'Guestwlan'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'ABC'

config rule
        option name 'Block Cams and devices from Interwebz'
        option src 'lan'
        option dest 'surfshark'
        option target 'REJECT'
        list proto 'all'
        list src_ip '192.168.1.117'
        list src_ip '192.168.1.235'
        list src_ip '192.168.1.182'
        list src_ip '192.168.1.129'
        list src_ip '192.168.1.145'
        list src_ip '192.168.1.180'
        list src_ip '192.168.1.185'
        list src_ip '192.168.1.166'
        list src_ip '192.168.1.172'
        list src_ip '192.168.1.248'
        list src_ip '192.168.1.218'
        list src_ip '192.168.1.109'
        list src_ip '192.168.1.242'
        list src_ip '192.168.1.210'
        list src_ip '192.168.1.158'
        list src_ip '192.168.1.102'
        list src_ip '192.168.1.162'
        list src_ip '192.168.1.202'
        list src_ip '192.168.1.140'
        list src_ip '192.168.1.113'
        list src_ip '192.168.1.128'
        list src_ip '192.168.1.138'
        list src_ip '192.168.1.227'

config rule
        option name 'guestDHCP'
        list proto 'udp'
        option src 'Guestwlan'
        option dest_port '67'
        option target 'ACCEPT'

config rule
        option name 'GuestDNS'
        option src 'Guestwlan'
        option dest_port '53'
        option target 'ACCEPT'

config forwarding
        option src 'Guestwlan'
        option dest 'surfshark'

config rule
        option name 'Block Android Panels from internet'
        option src 'lan'
        list src_ip '192.168.1.107'
        option dest 'surfshark'
        option target 'REJECT'
        option enabled '0'

config rule
        option name 'temp'
        list proto 'udp'
        option src 'lan'
        option dest 'surfshark'
        option target 'DROP'
        list src_ip '192.168.1.184'
        option enabled '0'

config forwarding
        option src 'lan'
        option dest 'surfshark'

config rule
        option src 'lan'
        option dest 'wan'
        option target 'REJECT'
        option name 'Reject Huawei traffic'
        list src_ip '192.168.1.113'
        list src_ip '192.168.1.227'

23.05.4 has a known defect that wifi tx gets degraded to a single antenna. Upgrade to 23.05.5 (using auc or luci-app-attendedsysupgrade)

--- same across all mesh nodes

1 Like

thanks, i upgraded. hopefully that is solved now. having trouble to upgrade the dumb ap's though. one of them is no longer accessable through luci after upgrading, and attempts to connect to ssh are denied. But it still broadcasts wifi that works, and the camera's connected to it by lan are also still working...

I suspect firewall enabled during upgrade. boot failsafe -> mount_root -> service firewall disable

Safer way is to delete all firewall zones and rules and make default in out accept fwd drop