Random DNS Failures Over Wifi On Old Laptop - Please Help

I have a Linksys WRT3200ACM router with OpenWrt 23.05.3 setup and configured. I use an old laptop (Asus K55VD) running linux as my daily driver and it only seems to struggle on wifi coming from my Linksys router at home, specifically with the DNS queries.

I experience random DNS query failures throughout the day that will last a few minutes and the issue typically happens when I use my old laptop. Occasionally, my phone (Galaxy S8) will experience a similar issue however it will resolve the issue within a few seconds. When I use my old laptop on other wifi connections outside my Linksys router, the DNS problem goes away. In fact, I'm currently writing this post and browsing the internet on my old laptop using my phone as a mobile hotspot, with mobile data turned off and wifi being passed through, with no issues.

I've tried many changes to my Openwrt configuration, but none have worked and I'm hoping to get some help.

Please connect to your OpenWrt device using ssh and copy the output of the following commands and post it here using the "Preformatted text </> " button:
grafik
Remember to redact passwords, MAC addresses and any public IP addresses you may have:

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

Output from "ubus call system board":

{
        "kernel": "5.15.150",
        "hostname": "openwrt",
        "system": "ARMv7 Processor rev 1 (v7l)",
        "model": "Linksys WRT3200ACM",
        "board_name": "linksys,wrt3200acm",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "23.05.3",
                "revision": "r23809-234f1a2efa",
                "target": "mvebu/cortexa9",
                "description": "OpenWrt 23.05.3 r23809-234f1a2efa"
        }
}

Output from "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 <redacted>

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

config interface 'lan'
        option device 'br-lan.10'
        option proto 'static'
        option ipaddr '192.168.10.1'
        option netmask '255.255.255.0'
        option ip6assign '60'

config device
        option name 'wan'
        option macaddr <redacted>

config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

config interface 'wan6'
        option device 'wan'
        option proto 'dhcpv6'

config bridge-vlan
        option device 'br-lan'
        option vlan '10'
        list ports 'lan1:u*'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '30'
        list ports 'lan4:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '40'
        list ports 'lan4:t'

config bridge-vlan
        option device 'br-lan'
        option vlan '50'
        list ports 'lan4:t'

config interface 'guest'
        option proto 'static'
        option device 'br-lan.30'
        option ipaddr '192.168.30.1'
        option netmask '255.255.255.0'

config interface 'iot'
        option proto 'static'
        option device 'br-lan.40'
        option ipaddr '192.168.40.1'
        option netmask '255.255.255.0'

config interface 'public'
        option proto 'static'
        option device 'br-lan.50'
        option ipaddr '192.168.50.1'
        option netmask '255.255.255.0'

config interface 'vpn'
        option proto 'wireguard'
        option private_key <redacted>
        option listen_port '51820'
        list addresses '192.168.20.1/24'

config wireguard_vpn
        option description <redacted>
        option public_key <redacted>
        option private_key <redacted>
        option preshared_key <redacted>
        option route_allowed_ips '1'
        list allowed_ips '192.168.20.100/32'

config wireguard_vpn
        option description <redacted>
        option public_key <redacted>
        option private_key <redacted>
        option preshared_key <redacted>
        list allowed_ips '192.168.20.102/32'
        option route_allowed_ips '1'

config wireguard_vpn
        option description <redacted>
        option public_key <redacted>
        option private_key <redacted>
        option preshared_key <redacted>
        option route_allowed_ips '1'
        list allowed_ips '192.168.20.101/32'

Output from "cat /etc/config/wireless":

config wifi-device 'radio0'
        option type 'mac80211'
        option path 'soc/soc:pcie/pci0000:00/0000:00:01.0/0000:01:00.0'
        option channel '52'
        option band '5g'
        option htmode 'VHT80'
        option country 'US'
        option cell_density '0'

config wifi-device 'radio1'
        option type 'mac80211'
        option path 'soc/soc:pcie/pci0000:00/0000:00:02.0/0000:02:00.0'
        option channel '10'
        option band '2g'
        option htmode 'HT20'
        option country 'US'
        option cell_density '0'

config wifi-device 'radio2'
        option type 'mac80211'
        option path 'platform/soc/soc:internal-regs/f10d8000.sdhci/mmc_host/mmc0/mmc0:0001/mmc0:0001:1'
        option channel '34'
        option band '5g'
        option htmode 'VHT80'
        option cell_density '0'

config wifi-iface 'wifinet3'
        option device 'radio0'
        option mode 'ap'
        option ssid <redacted>
        option encryption 'psk2'
        option key <redacted>
        option network 'lan'
        option macaddr '60:38:e0:d6:17:8a'

config wifi-iface 'wifinet4'
        option device 'radio0'
        option mode 'ap'
        option ssid <redacted>
        option encryption 'psk2'
        option key <redacted>
        option network 'guest'
        option macaddr '60:38:e0:d6:17:89'

config wifi-iface 'wifinet5'
        option device 'radio1'
        option mode 'ap'
        option ssid <redacted>
        option encryption 'psk2'
        option key <redacted>
        option network 'lan'

config wifi-iface 'wifinet6'
        option device 'radio1'
        option mode 'ap'
        option ssid <redacted>
        option encryption 'psk2'
        option key <redacted>
        option network 'guest'

config wifi-iface 'wifinet7'
        option device 'radio1'
        option mode 'ap'
        option ssid <redacted>
        option encryption 'psk2'
        option key <redacted>
        option network 'iot'
        option hidden '1'

Output from "cat /etc/config/dhcp":

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option cachesize '1000'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.d/resolv.conf.auto'
        option localservice '1'
        option ednspacket_max '1232'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option limit '150'
        option leasetime '12h'
        option dhcpv4 'server'
        option dhcpv6 'server'
        option ra 'server'
        list ra_flags 'managed-config'
        list ra_flags 'other-config'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'

config dhcp 'guest'
        option interface 'guest'
        option start '100'
        option limit '150'
        option leasetime '12h'

config dhcp 'public'
        option interface 'public'
        option start '100'
        option limit '150'
        option leasetime '12h'

config dhcp 'iot'
        option interface 'iot'
        option start '100'
        option limit '150'
        option leasetime '12h'

config dhcp 'vpn'
        option interface 'vpn'
        option ignore '1'

Output from "cat /etc/config/firewall"

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

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

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

config forwarding
        option src 'lan'
        option dest 'wan'

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 'guest'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        list network 'guest'

config forwarding
        option src 'lan'
        option dest 'guest'

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

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

config forwarding
        option src 'guest'
        option dest 'wan'

config forwarding
        option src 'public'
        option dest 'wan'

config forwarding
        option src 'lan'
        option dest 'iot'

config forwarding
        option src 'lan'
        option dest 'public'

config rule
        option name 'Allow-DHCP-guest'
        option src 'guest'
        option dest_port '67 68'
        option target 'ACCEPT'
        list proto 'udp'

config rule
        option name 'Allow-DNS-guest'
        option src 'guest'
        option dest_port '53'
        option target 'ACCEPT'

config rule
        option name 'Allow-DHCP-iot'
        option src 'iot'
        option target 'ACCEPT'
        list proto 'udp'

config rule
        option name 'Allow-DHCP-public'
        list proto 'udp'
        option src 'public'
        option dest_port '67 68'
        option target 'ACCEPT'

config rule
        option name 'Allow-DNS-public'
        option src 'public'
        option dest_port '53'
        option target 'ACCEPT'

config redirect
        option dest 'lan'
        option target 'DNAT'
        option name 'Forward-Wireguard-VPN'
        list proto 'udp'
        option src 'wan'
        option src_dport '51820'
        option dest_ip '192.168.20.1'
        option dest_port '51820'