DHCP Request / Ack Loop from Dumb Access Point

Ran a factory reset of my OpenWRT router to start fresh and I'm seeing a DHCP Request / Ack loop coming from my non-OpenWRT access point. This seems to happen in 32-ish second intervals. This is not a problem for any other device. And we also are still getting internet on devices connected to the access point. In this way, nothing seems "wrong" except I know the lease is not working correctly. See system logs below:

Sun Dec 11 17:14:47 2022 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.136 xx:xx:xx:xx:xx
Sun Dec 11 17:14:47 2022 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.136 xx:xx:xx:xx:xx ap-ax3000
Sun Dec 11 17:15:19 2022 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.136 xx:xx:xx:xx:xx
Sun Dec 11 17:15:19 2022 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.136 xx:xx:xx:xx:xx ap-ax3000
Sun Dec 11 17:15:51 2022 daemon.info dnsmasq-dhcp[1]: DHCPREQUEST(br-lan) 192.168.1.136 xx:xx:xx:xx:xx
Sun Dec 11 17:15:51 2022 daemon.info dnsmasq-dhcp[1]: DHCPACK(br-lan) 192.168.1.136 xx:xx:xx:xx:xx ap-ax3000
...

I've tried to assign a static lease to the mac address to resolve this, but the issue persists.

/etc/config/dhcp from router

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 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'
        option ra_slaac '1'
        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 host
        option ip '192.168.1.136'
        option mac 'xx:xx:xx:xx:xx:xx'
        option name 'ap-ax3000'
        option dns '1'
        option leasetime '12h'

Any troubleshooting help would be appreciated.

If the following is coming from the dumb AP...

You need to turn off DHCP by setting the lan interface DHCP server to ignore. Also disable the dhcpv6 server.

That's the dhcp config from the router, not the access point. I've edited the original post to clarify.

For what it's worth, the DHCP server is off on the access point.

One possible situation is if there is already a device using 192.168.1.136... that could cause the device to connect > drop > request > connect > drop... etc.

Try unplugging your dumb AP (from power to make sure it's completely off) and pinging 192.168.1.136. If you get a response, that is the problem. If not...

let's see the complete config for both devices (please make it clear which is which):

Please 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:

cat /etc/config/network
cat /etc/config/wireless
cat /etc/config/dhcp
cat /etc/config/firewall

I can confirm that the AP is the only device allocated to that IP address.

The following is config for the router. Again, the AP is not OpenWRT.

// /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 'xxxxxxxxxx'

config device
	option name 'br-lan'
	option type 'bridge'
	list ports 'eth0.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'

config device
	option name 'eth0.2'
	option macaddr 'xxxxxxxxxx'

config interface 'wan'
	option device 'eth0.2'
	option proto 'dhcp'

config interface 'wan6'
	option device 'eth0.2'
	option proto 'dhcpv6'

config switch
	option name 'switch0'
	option reset '1'
	option enable_vlan '1'

config switch_vlan
	option device 'switch0'
	option vlan '1'
	option ports '2 3 4 5 0t'

config switch_vlan
	option device 'switch0'
	option vlan '2'
	option ports '1 0t'

// etc/config/wireless

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'pci0000:00/0000:00:00.0'
	option channel '36'
	option band '5g'
	option htmode 'VHT80'
	option disabled '1'

config wifi-iface 'default_radio0'
	option device 'radio0'
	option network 'lan'
	option mode 'ap'
	option ssid 'OpenWrt'
	option encryption 'none'

config wifi-device 'radio1'
	option type 'mac80211'
	option path 'platform/ahb/18100000.wmac'
	option channel '1'
	option band '2g'
	option htmode 'HT20'
	option disabled '1'

config wifi-iface 'default_radio1'
	option device 'radio1'
	option network 'lan'
	option mode 'ap'
	option ssid 'OpenWrt'
	option encryption 'none'

// etc/config/firewall

config defaults                                        
        option syn_flood        1                      
        option input            ACCEPT                 
        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          REJECT                 
        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  

# 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 

dhcp config is already provided in the initial post.

Again, this is happening after a fresh factory reset, so all of this should be pretty standard.

Yeah, all looks standard.

What AP are you using and what firmware is on it?

If it's an Archer AX50/55, take a look at this.

1 Like