DHCP assignment issue with only certain devices

Expected Behaviour:

I expect the pihole DHCP server (which I understand is actually dnsmasq) to successfully hand out IP addresses to all the devices on my network.

Actual Behaviour:

Some devices just can't seem to get an IP address. The following log is typical, it seems like it is trying to hand out an address, but the log is spammed with requests, the assignment just doesn't take for some reason.

This never happens with a PC or laptop.
This only seems to happen with certain embedded hardware devices. All are using wired Ethernet. So far I have seen it with:

  • URayCoder H.264 Live HDMI Video Encoder
  • Digital Logger Pro Switch (web power switch)
  • Pioneer XDJ-1000 MK2 (it's a DJ player)
    Other embedded devices on my LAN (my stereo receiver, an assortment of LIFX light bulbs, and some ESP32-based smart power switches) seem to work just fine.

I worked around it for the first two devices by assigning a static IP, but the Pioneer XDJ was a dealbreaker as it has no settings interface, so here I am :slight_smile:

Here's what I see in "tail -f /var/log/pihole.log | grep dhcp" when I connect the XDJ:

Aug 30 19:56:21 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:21 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) 1c:f2:9a:7c:b3:74
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.73 1c:f2:9a:7c:b3:74
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:26 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:28 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:28 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:28 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:28 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:30 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:30 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:30 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:30 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:32 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:32 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:32 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:32 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:34 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:34 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:34 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:34 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.46 cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.46 cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.46 cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.46 cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.46 cc:98:8b:72:2d:20
Aug 30 19:56:36 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.46 cc:98:8b:72:2d:20
Aug 30 19:56:38 dnsmasq-dhcp[918]: DHCPDISCOVER(eth0) c8:3d:fc:04:16:23
Aug 30 19:56:38 dnsmasq-dhcp[918]: DHCPOFFER(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:38 dnsmasq-dhcp[918]: DHCPREQUEST(eth0) 192.168.86.114 c8:3d:fc:04:16:23
Aug 30 19:56:38 dnsmasq-dhcp[918]: DHCPACK(eth0) 192.168.86.114 c8:3d:fc:04:16:23

Debug Token:

https://tricorder.pi-hole.net/av2to9jwb6

Make sure no other DHCP server is active on your network!
You could also check with below:

pi@ph5:~ $ ip -br -4 a s eth0
eth0             UP             10.0.0.4/24

pi@ph5:~ $ sudo nmap -e eth0 --script broadcast-dhcp-discover
Starting Nmap 7.70 ( https://nmap.org ) at 2020-08-30 21:42 CEST
Pre-scan script results:
| broadcast-dhcp-discover:
|   Response 1 of 1:
|     IP Offered: 10.0.0.29
|     DHCP Message Type: DHCPOFFER
|     Server Identifier: 10.0.0.4
|     IP Address Lease Time: 2m00s
|     Renewal Time Value: 1m00s
|     Rebinding Time Value: 1m45s
|     Subnet Mask: 255.255.255.0
|     Broadcast Address: 10.0.0.255
|     Domain Name Server: 10.0.0.4
|     Domain Name: dehakkleaar.nl
|_    Router: 10.0.0.1
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 2.89 seconds

You can install nmap on the Pi-hole host with below:

sudo apt install nmap

You might also want to redact the MAC addresses from the tail output you posted above.
We are only interested in the first three octets eg. c8:3d:fc:xx:xx:xx that define the vendor:

pi@ph5:~ $ sqlite3 /etc/pihole/macvendor.db "SELECT mac,vendor FROM macvendor WHERE mac LIKE 'c8:3d:fc'"
C8:3D:FC|AlphaTheta Corporation

Yep, after trying that out, turns out multiple DHCP was the problem.

My wifi router is a Google Home, the kind with mesh networking. It has no option at all to disable its DHCP server. On some site (can't remember where) it was recommended to just restrict the DCHP range of the Google Wifi to one IP address for the pihole (192.168.86.254). This worked for the most part when I set it up a long time ago...but seems this is root cause of a few devices having fits.

Swapping routers (I'm using an Asus RT-AX3000 now) did the job.

Thanks for your help!

1 Like

Are you using the Asus router for DHCP now ?
Asus routers are known for pushing their own IP for DNS regardless of what DNS servers are configured in the DHCP-->DNS section on the router.
If so, you can check the "Domain Name Server" section from the nmap output to validate.

14 posts were split to a new topic: Reliably detect all DHCP servers on a network?

Are you using the Asus router for DHCP now ?

No, I disabled it and am using the pihole for DHCP. Working well so far. I did get a warning that disabling DHCP on the router would prevent the mesh network capability but I am not using this feature.

A post was merged into an existing topic: Reliably detect all DHCP servers on a network?

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.