Hello,
I am having a really weird DHCP issue with my Mercusys MR90Xv1 running OpenWRT 23.05.4. Same issue also with 23.05.3 downgrading and vanilla settings.
I am posting the settings and showing the issue just after flashing 23.05.4 again without keeping old configuration, in order to start from scratch and be 100% sure to show you the issue is not caused by any other settings made by me.
What is not understandable for me is that this kind of setting was working just fine until yesterday, when it stopped working out of the blue and I cannot manage to make it working anymore.
My installation is with just basic settings right now
root@OpenWrt:~# ubus call system board
{
"kernel": "5.15.162",
"hostname": "OpenWrt",
"system": "ARMv8 Processor rev 4",
"model": "MERCUSYS MR90X v1",
"board_name": "mercusys,mr90x-v1",
"rootfs_type": "squashfs",
"release": {
"distribution": "OpenWrt",
"version": "23.05.4",
"revision": "r24012-d8dd03c46f",
"target": "mediatek/filogic",
"description": "OpenWrt 23.05.4 r24012-d8dd03c46f"
}
}
/etc/config/network
root@OpenWrt:~# 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 'fd16:ec05:32d3::/48'
config device
option name 'br-lan'
option type 'bridge'
list ports 'lan0'
list ports 'lan1'
list ports 'lan2'
config device
option name 'lan0'
option macaddr '00:eb:d8:60:0f:01'
config device
option name 'lan1'
option macaddr '00:eb:d8:60:0f:01'
config device
option name 'lan2'
option macaddr '00:eb:d8:60:0f:01'
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 gateway '192.168.90.1'
option broadcast '192.168.1.255'
config interface 'wan'
option device 'eth1'
option proto 'dhcp'
config interface 'wan6'
option device 'eth1'
option proto 'static'
list ipaddr '192.168.90.2/24'
option gateway '192.168.90.1'
option broadcast '192.168.90.255'
list dns '1.1.1.1'
list dns '8.8.8.8'
/etc/config/wireless
config wifi-device 'radio0'
option type 'mac80211'
option path 'platform/soc/18000000.wifi'
option channel '1'
option band '2g'
option htmode 'HE20'
option cell_density '0'
config wifi-iface 'default_radio0'
option device 'radio0'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrt2.4'
option encryption 'psk2'
option key 'hidden'
config wifi-device 'radio1'
option type 'mac80211'
option path 'platform/soc/18000000.wifi+1'
option channel '36'
option band '5g'
option htmode 'HE80'
option cell_density '0'
config wifi-iface 'default_radio1'
option device 'radio1'
option network 'lan'
option mode 'ap'
option ssid 'OpenWrtAX'
option encryption 'psk2'
option key 'hidden'
/etc/config/dhcp
root@OpenWrt:~# 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 nonwildcard '1'
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'
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'
The issue is related to WLAN devices that are trying to receive an IP address from the DHCP from the WLAN AP created by OpenWRT itself without success, randomly it works after several time, but it's quite rare.
- For SOME devices it just works (i.e. my Windows 11 laptop is working every time).
- All wired devices always works with no issues.
- For most of my other Wifi devices (Ubuntu laptop, Android phones, smart plugs, ecc.) which always worked before they are not working or randomly working.
- I have another SSID distributed by both another OpenWRT and from an ASUS AC68U with MerlinWRT, and when connecting to it it always works instead (the DHCP server is still the one on this Mercusys).
Considering these points, I narrowed down the issue to the majority of the devices (Windows 11 excluded, don't know why) ONLY IF they are trying to connect to the SSID distributed by this Mercusys.
the WLAN interfaces (phy0-ap0 and phy1ap0) are inside the LAN bridge
root@OpenWrt:~# brctl show
bridge name bridge id STP enabled interfaces
br-lan 7fff.00ebd8600f01 no phy1-ap0
lan2
lan0
lan1
phy0-ap0
root@OpenWrt:~# brctl showstp br-lan
br-lan
bridge id 7fff.00ebd8600f01
designated root 7fff.00ebd8600f01
root port 0 path cost 0
max age 10.00 bridge max age 10.00
hello time 1.00 bridge hello time 1.00
forward delay 8.00 bridge forward delay 8.00
ageing time 300.00
hello timer 0.00 tcn timer 0.00
topology change timer 0.00 gc timer 69.63
flags
phy1-ap0 (5)
port id 8005 state forwarding
designated root 7fff.00ebd8600f01 path cost 100
designated bridge 7fff.00ebd8600f01 message age timer 0.00
designated port 8005 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
hairpin mode 1
lan2 (3)
port id 8003 state disabled
designated root 7fff.00ebd8600f01 path cost 100
designated bridge 7fff.00ebd8600f01 message age timer 0.00
designated port 8003 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
lan0 (1)
port id 8001 state disabled
designated root 7fff.00ebd8600f01 path cost 100
designated bridge 7fff.00ebd8600f01 message age timer 0.00
designated port 8001 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
lan1 (2)
port id 8002 state forwarding
designated root 7fff.00ebd8600f01 path cost 4
designated bridge 7fff.00ebd8600f01 message age timer 0.00
designated port 8002 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
phy0-ap0 (4)
port id 8004 state forwarding
designated root 7fff.00ebd8600f01 path cost 100
designated bridge 7fff.00ebd8600f01 message age timer 0.00
designated port 8004 forward delay timer 0.00
designated cost 0 hold timer 0.00
flags
hairpin mode 1
and, while connecting from Windows 11 laptop is working as expected:
Fri Aug 9 09:51:04 2024 daemon.info hostapd: phy1-ap0: STA a8:7e:ea:00:79:c2 IEEE 802.11: authenticated
Fri Aug 9 09:51:04 2024 daemon.info hostapd: phy1-ap0: STA a8:7e:ea:00:79:c2 IEEE 802.11: associated (aid 2)
Fri Aug 9 09:51:04 2024 daemon.notice hostapd: phy1-ap0: STA-OPMODE-SMPS-MODE-CHANGED a8:7e:ea:00:79:c2 off
Fri Aug 9 09:51:04 2024 daemon.notice hostapd: phy1-ap0: AP-STA-CONNECTED a8:7e:ea:00:79:c2 auth_alg=open
Fri Aug 9 09:51:04 2024 daemon.info hostapd: phy1-ap0: STA a8:7e:ea:00:79:c2 WPA: pairwise key handshake completed (RSN)
Fri Aug 9 09:51:04 2024 daemon.notice hostapd: phy1-ap0: EAPOL-4WAY-HS-COMPLETED a8:7e:ea:00:79:c2
Fri Aug 9 09:51:04 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 09:51:04 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 09:51:04 2024 kern.warn kernel: [ 1218.872864] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 09:51:05 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.121 a8:7e:ea:00:79:c2
Fri Aug 9 09:51:05 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.121 a8:7e:ea:00:79:c2 DESKTOP-T5OT0MS
Fri Aug 9 09:51:05 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.121 a8:7e:ea:00:79:c2
Fri Aug 9 09:51:05 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.121 a8:7e:ea:00:79:c2 DESKTOP-T5OT0MS
root@OpenWrt:~# tcpdump -nnvepi any port 68
09:52:25.554967 phy1-ap0 Out ifindex 12 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: (tos 0x0, ttl 128, id 25755, offset 0, flags [none], proto UDP (17), length 350)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322, xid 0xf262350d, Flags [Broadcast]
Client-Ethernet-Address a8:7e:ea:00:79:c2
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: Request
Client-ID (61), length 7: ether a8:7e:ea:00:79:c2
Requested-IP (50), length 4: 192.168.1.121
Hostname (12), length 15: "DESKTOP-T5OT0MS"
FQDN (81), length 18: "DESKTOP-T5OT0MS"
Vendor-Class (60), length 8: "MSFT 5.0"
Parameter-Request (55), length 14:
Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Domain-Name (15)
Router-Discovery (31), Static-Route (33), Vendor-Option (43), Netbios-Name-Server (44)
Netbios-Node (46), Netbios-Scope (47), Unknown (119), Classless-Static-Route (121)
Classless-Static-Route-Microsoft (249), Unknown (252)
09:52:25.555586 phy1-ap0 Out ifindex 12 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: (tos 0xc0, ttl 64, id 14457, offset 0, flags [none], proto UDP (17), length 349)
192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321, xid 0xf262350d, Flags [Broadcast]
Your-IP 192.168.1.121
Server-IP 192.168.1.1
Client-Ethernet-Address a8:7e:ea:00:79:c2
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: ACK
Server-ID (54), length 4: 192.168.1.1
Lease-Time (51), length 4: 43200
RN (58), length 4: 21600
RB (59), length 4: 37800
Subnet-Mask (1), length 4: 255.255.255.0
BR (28), length 4: 192.168.1.255
Default-Gateway (3), length 4: 192.168.1.1
Domain-Name-Server (6), length 4: 192.168.1.1
Domain-Name (15), length 3: "lan"
FQDN (81), length 22: [SO] 255/255 "DESKTOP-T5OT0MS.lan"
for the most of the other devices is not (this is from my Android phone)
root@OpenWrt:~# logread -f
Fri Aug 9 10:12:24 2024 daemon.info hostapd: phy1-ap0: STA 26:41:b6:24:7c:88 IEEE 802.11: authenticated
Fri Aug 9 10:12:24 2024 daemon.info hostapd: phy1-ap0: STA 26:41:b6:24:7c:88 IEEE 802.11: associated (aid 2)
Fri Aug 9 10:12:24 2024 daemon.notice hostapd: phy1-ap0: AP-STA-CONNECTED 26:41:b6:24:7c:88 auth_alg=open
Fri Aug 9 10:12:24 2024 daemon.info hostapd: phy1-ap0: STA 26:41:b6:24:7c:88 WPA: pairwise key handshake completed (RSN)
Fri Aug 9 10:12:24 2024 daemon.notice hostapd: phy1-ap0: EAPOL-4WAY-HS-COMPLETED 26:41:b6:24:7c:88
Fri Aug 9 10:12:24 2024 kern.warn kernel: [ 2497.883573] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:25 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 10:12:25 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 10:12:25 2024 kern.warn kernel: [ 2498.919234] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:27 2024 kern.warn kernel: [ 2499.957988] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:28 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:29 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 10:12:29 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 10:12:32 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:32 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:32 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:32 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:32 2024 kern.warn kernel: [ 2505.668675] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:33 2024 kern.warn kernel: [ 2506.680877] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:34 2024 kern.warn kernel: [ 2507.709814] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:36 2024 kern.warn kernel: [ 2509.161317] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:37 2024 kern.warn kernel: [ 2510.187280] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:37 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 10:12:37 2024 daemon.warn odhcpd[1873]: No default route present, overriding ra_lifetime!
Fri Aug 9 10:12:38 2024 kern.warn kernel: [ 2511.226256] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:39 2024 kern.warn kernel: [ 2512.070401] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:39 2024 kern.warn kernel: [ 2512.269948] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:40 2024 kern.warn kernel: [ 2513.144381] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:40 2024 kern.warn kernel: [ 2513.304213] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:41 2024 kern.warn kernel: [ 2514.183378] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:41 2024 kern.warn kernel: [ 2514.343208] br-lan: received packet on lan1 with own address as source address (addr:00:eb:d8:60:0f:01, vlan:0)
Fri Aug 9 10:12:42 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 191.89.168.192 00:07:a8:e4:c8:76
Fri Aug 9 10:12:42 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.191 00:07:a8:e4:c8:76
Fri Aug 9 10:12:42 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:42 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:42 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan) 26:41:b6:24:7c:88
Fri Aug 9 10:12:42 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan) 192.168.1.135 26:41:b6:24:7c:88
Fri Aug 9 10:12:42 2024 daemon.notice hostapd: phy1-ap0: AP-STA-DISCONNECTED 26:41:b6:24:7c:88
root@OpenWrt:~# tcpdump -nnvepi any port 68
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
[...]
10:13:10.573059 phy1-ap0 Out ifindex 12 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 356: (tos 0x10, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 336)
0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 308, xid 0xdd40379, Flags [none]
Client-Ethernet-Address 26:41:b6:24:7c:88
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: Discover
Client-ID (61), length 7: ether 26:41:b6:24:7c:88
MSZ (57), length 2: 1500
Vendor-Class (60), length 15: "android-dhcp-14"
Hostname (12), length 15: "realme-GT-2-Pro"
Parameter-Request (55), length 12:
Subnet-Mask (1), Default-Gateway (3), Domain-Name-Server (6), Domain-Name (15)
MTU (26), BR (28), Lease-Time (51), RN (58)
RB (59), Vendor-Option (43), URL (114), Unknown (108)
SLP-NA (80), length 0""
10:13:13.965758 br-lan Out ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: (tos 0xc0, ttl 64, id 9918, offset 0, flags [none], proto UDP (17), length 328)
192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300, xid 0xdd40379, Flags [none]
Your-IP 192.168.1.135
Server-IP 192.168.1.1
Client-Ethernet-Address 26:41:b6:24:7c:88
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message (53), length 1: Offer
Server-ID (54), length 4: 192.168.1.1
Lease-Time (51), length 4: 43200
RN (58), length 4: 21600
RB (59), length 4: 37800
Subnet-Mask (1), length 4: 255.255.255.0
BR (28), length 4: 192.168.1.255
Default-Gateway (3), length 4: 192.168.1.1
Domain-Name-Server (6), length 4: 192.168.1.1
Domain-Name (15), length 3: "lan"
the DHCP reply is always sent (so the DHCP server is not the issue, but it is not sent on phy1-ap0 interface). The missing packet is the DHCP reply on phy1-ap0, showing it better with tcpdump without -v
root@OpenWrt:~# tcpdump -nnepi any port 68
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
10:15:09.795007 eth1 Out ifindex 3 00:eb:d8:60:0f:02 ethertype IPv4 (0x0800), length 348: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:eb:d8:60:0f:02, length 300
10:15:10.597274 phy1-ap0 B ifindex 12 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597316 phy1-ap0 Out ifindex 12 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597343 phy0-ap0 Out ifindex 11 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597352 lan1 Out ifindex 5 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597356 eth0 Out ifindex 2 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597274 br-lan B ifindex 10 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597462 lan1 B ifindex 5 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597494 phy1-ap0 Out ifindex 12 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597508 phy0-ap0 Out ifindex 11 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.597462 br-lan B ifindex 10 26:41:b6:24:7c:88 ethertype IPv4 (0x0800), length 354: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 26:41:b6:24:7c:88, length 306
10:15:10.598672 br-lan Out ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300
10:15:10.598678 lan1 Out ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300
10:15:10.598682 eth0 Out ifindex 2 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300
10:15:10.598931 br-lan Out ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300
10:15:10.598936 lan1 Out ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300
10:15:10.598939 eth0 Out ifindex 2 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.135.68: BOOTP/DHCP, Reply, length 300
10:15:10.778260 phy1-ap0 B ifindex 12 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778303 phy1-ap0 Out ifindex 12 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778327 phy0-ap0 Out ifindex 11 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778335 lan1 Out ifindex 5 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778339 eth0 Out ifindex 2 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778260 br-lan B ifindex 10 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778441 lan1 B ifindex 5 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778472 phy1-ap0 Out ifindex 12 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778486 phy0-ap0 Out ifindex 11 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
10:15:10.778441 br-lan B ifindex 10 78:2b:46:c5:bd:9a ethertype IPv4 (0x0800), length 343: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 78:2b:46:c5:bd:9a, length 295
with the same Android phone, if I connect to the other SSID (not ditributed by this OpenWRT device) I make the DHCP request coming wired so it always works in that way
root@OpenWrt:~# tcpdump -nnepi any port 68
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
10:21:08.342889 lan1 B ifindex 5 42:76:78:25:d7:70 ethertype IPv4 (0x0800), length 360: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 42:76:78:25:d7:70, length 312
10:21:08.342900 phy1-ap0 Out ifindex 12 42:76:78:25:d7:70 ethertype IPv4 (0x0800), length 360: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 42:76:78:25:d7:70, length 312
10:21:08.342909 phy0-ap0 Out ifindex 11 42:76:78:25:d7:70 ethertype IPv4 (0x0800), length 360: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 42:76:78:25:d7:70, length 312
10:21:08.342889 br-lan B ifindex 10 42:76:78:25:d7:70 ethertype IPv4 (0x0800), length 360: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 42:76:78:25:d7:70, length 312
10:21:08.343662 br-lan Out ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.192.68: BOOTP/DHCP, Reply, length 300
10:21:08.343672 lan1 Out ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.192.68: BOOTP/DHCP, Reply, length 300
10:21:08.343677 eth0 Out ifindex 2 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 348: 192.168.1.1.67 > 192.168.1.192.68: BOOTP/DHCP, Reply, length 300
Imho the issue is with some broadcasting issue inside OpenWRT bridge (br-lan), but I am able to explain why for the Windows 11 laptop it just works as the DHCP reply on phy1-ap0 is correctly sent instead
root@OpenWrt:~# tcpdump -nnepi any port 68
tcpdump: data link type LINUX_SLL2
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 262144 bytes
10:17:39.945007 eth1 Out ifindex 3 00:eb:d8:60:0f:02 ethertype IPv4 (0x0800), length 348: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:eb:d8:60:0f:02, length 300
10:17:42.865016 eth1 Out ifindex 3 00:eb:d8:60:0f:02 ethertype IPv4 (0x0800), length 348: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from 00:eb:d8:60:0f:02, length 300
10:17:42.923146 phy1-ap0 B ifindex 12 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923173 phy1-ap0 Out ifindex 12 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923186 phy0-ap0 Out ifindex 11 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923193 lan1 Out ifindex 5 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923197 eth0 Out ifindex 2 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923146 br-lan B ifindex 10 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923301 lan1 B ifindex 5 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923336 phy1-ap0 Out ifindex 12 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923349 phy0-ap0 Out ifindex 11 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.923301 br-lan B ifindex 10 a8:7e:ea:00:79:c2 ethertype IPv4 (0x0800), length 370: 0.0.0.0.68 > 255.255.255.255.67: BOOTP/DHCP, Request from a8:7e:ea:00:79:c2, length 322
10:17:42.924153 br-lan Out ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924167 phy1-ap0 Out ifindex 12 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924195 phy0-ap0 Out ifindex 11 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924202 lan1 Out ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924205 eth0 Out ifindex 2 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924301 lan1 B ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924585 br-lan Out ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924593 phy1-ap0 Out ifindex 12 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924610 phy0-ap0 Out ifindex 11 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924617 lan1 Out ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924619 eth0 Out ifindex 2 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.934428 phy1-ap0 Out ifindex 12 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.934439 phy0-ap0 Out ifindex 11 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.924301 br-lan B ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.934481 lan1 B ifindex 5 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.944630 phy1-ap0 Out ifindex 12 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.944640 phy0-ap0 Out ifindex 11 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
10:17:42.934481 br-lan B ifindex 10 00:eb:d8:60:0f:01 ethertype IPv4 (0x0800), length 369: 192.168.1.1.67 > 255.255.255.255.68: BOOTP/DHCP, Reply, length 321
it seems like a compatibility issue of some kind between most of my devices and Openwrt WLAN, but I cannot imagine what it could be.
I don't see any MAC difference on br-lan between my Android phone and Windows 11 laptop
root@OpenWrt:~# brctl showmacs br-lan
port no mac addr is local? ageing timer
2 00:07:a8:cd:fd:87 no 17.44
2 00:07:a8:e4:c8:76 no 17.40
2 00:07:a8:e4:cc:be no 34.00
2 00:0e:c6:ac:1e:65 no 0.06
2 00:e0:4c:68:05:b1 no 0.00
5 00:eb:d8:60:0f:00 yes 0.00
5 00:eb:d8:60:0f:00 yes 0.00
1 00:eb:d8:60:0f:01 yes 0.00
1 00:eb:d8:60:0f:01 yes 0.00
2 10:d5:61:be:9a:7c no 0.08
2 42:76:78:25:d7:70 no 0.10 -> Android phone
2 52:64:2b:4c:a2:53 no 0.13
2 70:8b:cd:c3:39:a0 no 0.29
2 74:da:88:4a:74:60 no 0.23
2 78:11:dc:ed:9f:6f no 14.44
2 78:2b:46:c5:bd:9a no 50.79
2 90:09:d0:0f:fa:bc no 0.78
5 a8:7e:ea:00:79:c2 no 1.75 -> Windows 11 laptop
2 c4:4f:33:87:b6:a3 no 3.43
2 c4:dd:57:16:06:f3 no 0.05
2 c4:dd:57:16:07:f6 no 1.27
2 c4:dd:57:16:0e:10 no 1.37
2 dc:4f:22:9e:00:36 no 0.48
2 dc:a6:32:c5:3f:12 no 0.53
2 f0:ef:86:3e:5e:d1 no 0.26
Are you able to help me on this topic?