Short Version:
Long bouts of dhcp DISCOVERY / OFFER sequences, ultimately result in ACK, but then resume after 2 sec instead 12hrs. Only occurs on wifi AC ssids (2), and only on laptops with static MAC's. Vacuumrobots - on the N network and static leases- and smartphones on same AC ssid's but dynamic mac's, renew their lease with single request and ack messages. But linux and windows clients with static mac's suffer disconnects on wifi, by lack of an IP address. Resumption takes longer than one is willing to wait, I don't understand why the problem sometimes disappears for a while.
Long Version:
-
vlan config on my switches has been working fine for years, in concert with 3 Mikrotik CAP's 6.49, broadcasting 3 ssids, as well as a single R2S owrt router as their dhcp server, then and now. All run the lastest owrt now. Paramount in all of this is that I haven't touched the R2S/dhcpd config, other than upgrading FW to latest.
-
what I HAVE touched is .. those same 3 ipq4019 devices are now running owrt in dumb ap mode. First I had to wait for proper DSA support before crossing the rubicon, now I hit new layer 2 issues. Prolly'll have to shark it, but first I'd like an opinion.
Note the redacted x:x:x:x:d3:a3 mac of my vanilla Bookworm laptop below, named yoga. Two seconds after the ACK is received it restarts Discovering.
Ignore the DDNS issue (its just double NAT) , I just left that in for sequence:
Mon Aug 19 07:13:51 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:13:51 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3 yoga
Mon Aug 19 07:14:08 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:08 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:10 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:10 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:15 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:15 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:23 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:23 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:36 2024 daemon.warn dnsmasq[1]: possible DNS-rebind attack detected: roadrunner.acme.com
Mon Aug 19 07:14:36 2024 user.warn ddns-scripts[30059]: DDNS_dynu: NO valid IP found
Mon Aug 19 07:14:36 2024 user.warn ddns-scripts[30059]: DDNS_dynu: Get registered/public IP for 'roadrunner.acme.com' failed - retry 5/0 in 60 seconds
Mon Aug 19 07:14:40 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:40 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:55 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:55 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3 yoga
Mon Aug 19 07:14:57 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:57 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 07:14:59 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
this is my xiaomi vacuum robot "Claudette", renewing her static lease well behavedly :
Mon Aug 19 08:48:30 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan.25) 192.168.250.101 zz:zz:zz:zz:6a:5a
Mon Aug 19 08:48:30 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan.25) 192.168.250.101 zz:zz:zz:zz:6a:5a Claudette
this is a smartphone, exemplary going through the standard 4 step dhcp cycle :
Mon Aug 19 10:09:08 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.15) yy:yy:yy:yy:98:94
Mon Aug 19 10:09:08 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.15) 192.168.248.186 yy:yy:yy:yy:98:94
Mon Aug 19 10:09:08 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan.15) 192.168.248.186 yy:yy:yy:yy:98:94
Mon Aug 19 10:09:08 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan.15) 192.168.248.186 yy:yy:yy:yy:98:94 POCOPHONEF1-POCOPHON
another excerpt, now with a NAK, for my Bookworm laptop:
Mon Aug 19 08:40:02 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 08:40:02 2024 daemon.info dnsmasq-dhcp[1]: DHCPNAK(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3 wrong address
Mon Aug 19 08:40:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 08:40:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 08:40:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPDISCOVER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 08:40:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPOFFER(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 08:40:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3
Mon Aug 19 08:40:06 2024 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan.20) 192.168.247.234 x:x:x:x:d3:a3 yoga
Thanks for any ideas !