Cannot ping wireless devices from APs

Hi all,

I am a bit pushed for time, so reaching out to the community rather than spending hours figuring out the root cause myself.

I have three OpenWRT devices — two Flint 2s, and one old ASUS RT-N56UB—configured as:

  1. Flint 2 (a) main router (PPOE fibre)
  2. Flint 2 (b) wireless repeater (WDS AP, connected via 5GHz)
  3. ASUS (c) wireless AP, via powerline to (1)

I have IoT Wi-Fi devices that are connected to (1). I can ping them from (1), but not from (2) or (3).

I can successfully ping other Wi-Fi devices, like my phone, from all nodes. But my IoT devices (Shelly relays, Octopus Home Mini, etc. do not respond).

I don't have wireless isolation enabled. Any pointers on how to test this? I tried disabling the firewall on the master router, to no avail.

We have not seen your configs, so this is just a guess…

Typically bridged APs only have an address on the network used to manage the AP(this is best practice for security). This means that the APs themselves will only be able to directly ping the devices on that same network. The rest would be routed and subject to the routing and firewall rules on the main router. For this to work, the APs need to also have the gateway populated in the network config.

Let’s see the configs from all of your devices.

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 (red circle; this works best in the 'Markdown' composer view in the blue oval):

Screenshot 2025-10-20 at 8.14.14 PM

Remember to redact passwords, VPN keys, 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

(1) Main Router

ubus call system board

{
	"kernel": "6.12.94",
	"hostname": "Router",
	"system": "ARMv8 Processor rev 4",
	"model": "GL.iNet GL-MT6000",
	"board_name": "glinet,gl-mt6000",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "25.12.5",
		"firmware_url": "https://downloads.openwrt.org/",
		"revision": "r33051-f5dae5ece4",
		"target": "mediatek/filogic",
		"description": "OpenWrt 25.12.5 r33051-f5dae5ece4",
		"builddate": "1782737960"
	}
}

cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	list ipaddr '127.0.0.1/8'

config globals 'globals'
	option dhcp_default_duid '0004b73548fe0601493ca59b8b8d3317cff5'
	option ula_prefix '**********'
	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'
	list ports 'lan5'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ip6assign '60'
	list ipaddr '192.168.68.1/24'
	option multipath 'off'

config interface 'wan'
	option device 'eth1'
	option proto 'pppoe'
	option type 'bridge'
	option username '**********'
	option password '*********'
	option ipv6 'auto'
	option norelease '1'
	option multipath 'off'

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

cat /etc/config/wireless


config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi'
	option band '2g'
	option channel 'auto'
	option country 'GB'
	option cell_density '0'
	option htmode 'HE20'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi+1'
	option band '5g'
	option channel '100'
	option htmode 'HE160'
	option country 'GB'
	option cell_density '0'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid '<SSID>'
	option encryption 'psk2'
	option key '*******'
	option ieee80211r '1'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'
	option wds '1'

config wifi-iface 'wifinet1'
	option device 'radio0'
	option mode 'ap'
	option ssid '<SSID>'
	option encryption 'psk2'
	option key '*******'
	option network 'lan'

cat /etc/config/dhcp


config dnsmasq
	option domainneeded '1'
	option boguspriv '1'
	option filterwin2k '0'
	option localise_queries '1'
	option rebind_protection '1'
	option rebind_localhost '1'
	option local '/lan/'
	option domain 'lan'
	option expandhosts '1'
	option nonegcache '0'
	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'
	option filter_aaaa '0'
	option filter_a '0'

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'
	option ra_preference 'medium'

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

config odhcpd 'odhcpd'
	option leasefile '/tmp/odhcpd.leases'
	option leasetrigger '/usr/sbin/odhcpd-update'
	option loglevel '4'
	option piodir '/tmp/odhcpd-piodir'
	option hostsdir '/tmp/hosts'

config host
	option name 'AngusElectricBlanket'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.53'

config host
	option name 'AngusOfficeLights'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.59'

config host
	option name 'ElliesElectricBlanket'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.74'

config host
	option name 'ElliesOfficeLights'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.65'

config host
	option name 'FrontDoorbell'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.56'

config host
	option name 'HallwayLights'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.50'

config host
	option name 'KitchenCamera'
	option ip '192.168.68.93'
	list mac '**:**:**:**:**:**'

config host
	option name 'KitchenLights1'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.51'

config host
	option name 'KitchenLights2'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.80'

config host
	option name 'LowerGuestRoomBlinds'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.71'

config host
	option name 'LowerGuestRoomLight'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.58'

config host
	option name 'LowerLandingLights'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.69'

config host
	option name 'NixOS'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.75'

config host
	option name 'OfficeDesk'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.60'

config host
	option name 'Tado'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.81'

config host
	option name 'MasterBedroomLight'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.73'

config host
	option name 'UpperGuestRoomLight'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.72'

config host
	option name 'UpperLandingLights'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.78'

config host
	option name 'WashingMachinePlug'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.62'

config host
	option name 'Hass'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.63'

config host
	option name 'HallwayCamera'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.61'

config host
	option name 'DogFlapCover'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.100'

config host
	option name 'OctopusMini'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.86'

config host
	option name 'Dishwasher'
	list mac '**:**:**:**:**:**'
	option ip '192.168.68.87'

config host
	option name 'ANNKE'
	option ip '192.168.68.176'
	list mac '**:**:**:**:**:**'
	list mac '**:**:**:**:**:**'

config host
	option name 'Zappi'
	option ip '192.168.68.208'
	list mac '**:**:**:**:**:**'

config host
	option name 'Mu-so0164'
	option ip '192.168.68.127'
	list mac '**:**:**:**:**:**'

cat /etc/config/firewall

config defaults
	option syn_flood	1
	option input		REJECT
	option output		ACCEPT
	option forward		REJECT
# Uncomment this line to disable ipv6 rules
#	option disable_ipv6	1

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

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

config forwarding
	option src		lan
	option dest		wan

# We need to accept udp packets on port 68,
# see https://dev.openwrt.org/ticket/4108
config rule
	option name		Allow-DHCP-Renew
	option src		wan
	option proto		udp
	option dest_port	68
	option target		ACCEPT
	option family		ipv4

# Allow IPv4 ping
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

# Allow DHCPv6 replies
# see https://github.com/openwrt/openwrt/issues/5066
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

# Allow essential incoming IPv6 ICMP traffic
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

# Allow essential forwarded IPv6 ICMP traffic
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


### EXAMPLE CONFIG SECTIONS
# do not allow a specific ip to access wan
#config rule
#	option src		lan
#	option src_ip	192.168.45.2
#	option dest		wan
#	option proto	tcp
#	option target	REJECT

# block a specific mac on wan
#config rule
#	option dest		wan
#	option src_mac	00:11:22:33:44:66
#	option target	REJECT

# block incoming ICMP traffic on a zone
#config rule
#	option src		lan
#	option proto	ICMP
#	option target	DROP

# port redirect port coming in on wan to lan
#config redirect
#	option src			wan
#	option src_dport	80
#	option dest			lan
#	option dest_ip		192.168.16.235
#	option dest_port	80
#	option proto		tcp

# port redirect of remapped ssh port (22001) on wan
#config redirect
#	option src		wan
#	option src_dport	22001
#	option dest		lan
#	option dest_port	22
#	option proto		tcp

### FULL CONFIG SECTIONS
#config rule
#	option src		lan
#	option src_ip	192.168.45.2
#	option src_mac	00:11:22:33:44:55
#	option src_port	80
#	option dest		wan
#	option dest_ip	194.25.2.129
#	option dest_port	120
#	option proto	tcp
#	option target	REJECT

#config redirect
#	option src		lan
#	option src_ip	192.168.45.2
#	option src_mac	00:11:22:33:44:55
#	option src_port		1024
#	option src_dport	80
#	option dest_ip	194.25.2.129
#	option dest_port	120
#	option proto	tcp

(2) Access Point

ubus call system board

{
	"kernel": "6.12.94",
	"hostname": "AccessPoint",
	"system": "ARMv8 Processor rev 4",
	"model": "GL.iNet GL-MT6000",
	"board_name": "glinet,gl-mt6000",
	"rootfs_type": "squashfs",
	"release": {
		"distribution": "OpenWrt",
		"version": "25.12.5",
		"firmware_url": "https://downloads.openwrt.org/",
		"revision": "r33051-f5dae5ece4",
		"target": "mediatek/filogic",
		"description": "OpenWrt 25.12.5 r33051-f5dae5ece4",
		"builddate": "1782737960"
	}
}

cat /etc/config/network

config interface 'loopback'
	option device 'lo'
	option proto 'static'
	list ipaddr '127.0.0.1/8'

config globals 'globals'
	option dhcp_default_duid '000426fb8fd117ef4b7da6466d8980a05b4e'
	option ula_prefix '**********'
	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'
	list ports 'lan5'
	option stp '1'

config interface 'lan'
	option device 'br-lan'
	option proto 'static'
	option ip6assign '60'
	list ipaddr '192.168.68.2/24'
	option multipath 'off'
	option gateway '192.168.68.1'
	option netmask '255.255.255.0'

config interface 'wwan'
	option proto 'dhcp'

cat /etc/config/wireless


config wifi-device 'radio0'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi'
	option band '2g'
	option channel '8'
	option htmode 'HE20'
	option cell_density '0'
	option country 'GB'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/soc/18000000.wifi+1'
	option band '5g'
	option channel '100'
	option country 'GB'
	option cell_density '0'
	option htmode 'HE160'

config wifi-iface 'wifinet0'
	option device 'radio1'
	option mode 'sta'
	option network 'lan'
	option ssid '<SSID>'
	option bssid '******'
	option encryption 'psk2'
	option key '*****'
	option wds '1'

config wifi-iface 'wifinet1'
	option device 'radio1'
	option mode 'ap'
	option network 'lan'
	option ssid '<SSID>'
	option encryption 'psk2'
	option key '****'
	option ieee80211r '1'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'

config wifi-iface 'wifinet2'
	option device 'radio0'
	option mode 'ap'
	option network 'lan'
	option ssid '<SSID>'
	option encryption 'psk2'
	option key '*****'
	option ieee80211r '1'
	option ft_over_ds '0'
	option ft_psk_generate_local '1'

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'
	list server '192.168.68.1'

config dhcp 'lan'
	option interface 'lan'
	option start '100'
	option limit '150'
	option leasetime '12h'
	option dhcpv4 'server'
	option ignore '1'

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

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

cat /etc/config/firewall


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

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

config zone
	option name 'wan'
	option input 'REJECT'
	option output 'ACCEPT'
	option forward 'DROP'
	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'

I've not dumped the config for the third AP — it wasn't working before I set it up, so I'm hoping we wont need it.

I've seen other threads talking about "Can't ping after one day", e.g. https://github.com/openwrt/openwrt/issues/7514.

I reset my router and AP, and I can now ping my devices.

I wonder if any of these are pertinent:

  1. https://github.com/openwrt/openwrt/issues/5694#issuecomment-3435039892
  2. https://github.com/openwrt/openwrt/issues/8339
  3. https://github.com/openwrt/openwrt/issues/7514
  4. https://github.com/openwrt/openwrt/issues/9555
  5. https://github.com/openwrt/openwrt/issues/6555
  6. WDS bridge fails after some days/hours on Atheros devices OpenWrt v21.02 - #8 by raphael

This fix sounded related, but it's for Qualcom, rather than MediaTek: https://lore.kernel.org/linux-wireless/20250117191455.3395145-1-nico.escande@gmail.com/

The number of times I have asked someone when they last rebooted and they looked at me as if they had never heard of it is countless.

Then there is the ego of "my router had not rebooted in 4 years; it was fine until I upgraded" uptime...

Linux is not supposed to need a reboot after updates, but any device (any) device that is acting up needs to be powered off for a minute.

Agreed. However, I have only been running this setup for three days (since the last reboot), so I'm highly suspicious that this is going to be an on-going problem (especially given the number of GitHub Issues tracking these kinds of phenomena).

How does the network know only to mess with IoT devices?

They don't announce themselves for bullying; have you flagged them, somehow?

Hahaha. Maybe they should!

I suspect it's not just the IoT devices, and that my observation is related to the heterogeneity of my network:

  1. I have ~40 devices, or which ~35 are not phones or computers. So, if each device is equally likely to misbehave, it's more likely to be an IoT device than my laptop.
  2. I'm most interested in polling / speaking to IoT devices + Home Assistant inside my network.
  3. Home Assistant & my desktop are on the AP LAN ports, so they're not connecting like the IoT devices are (over 2.4GHz).