Static DHCP Reservations not working

I have configured pihole as my DHCP server, All my clients successfully receiving a DHCP address from 10.31.27.1/24. I have a few Static IP`s for machines on my network. pihole is not assigning my PC the correct staticIP I require but is instead assigning an IP address from the DHCP pool. I have checked, double checked and triple checked the MAC address is correct. If i delete the DHCP lease, unplug and re-plug in my network cable pihole assigns me the same IP address from the pool over and and over.

If i run tail -f /var/log/pihole.log | grep DHCP from putty i can see pihole assigning my pc 10.31.27.19 which is incorrect as i have a static reservation for 10.31.27.5 configured.

Jan 22 13:57:52 dnsmasq-dhcp[916053]: DHCPACK(eno1) 10.31.27.19 04:d4:c4:4c:b4:42 danny-pc
Jan 22 13:57:52 dnsmasq-dhcp[916053]: DHCPDISCOVER(eno1) 04:d4:c4:4c:b4:42
Jan 22 13:57:52 dnsmasq-dhcp[916053]: DHCPOFFER(eno1) 10.31.27.19 04:d4:c4:4c:b4:42
Jan 22 13:57:52 dnsmasq-dhcp[916053]: DHCPREQUEST(eno1) 10.31.27.19 04:d4:c4:4c:b4:42
Jan 22 13:57:52 dnsmasq-dhcp[916053]: DHCPACK(eno1) 10.31.27.19 04:d4:c4:4c:b4:42 danny-pc

I am running Linux Mint Debian Edition with Unbound on Pihole v5.2.4. Apart from the OS unsupported messages when updating pihole, everything is working as intended, just static dhcp assignment is not.

The Cisco Aironet Access Point in the screenshot is working on 10.31.27.3 as expected and is configured to use DHCP. This issue only seems to affect Windows 10 device assignment at this stage.

Debug Token:

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

You are in fact running an unsupported OS. We'll take a look at the problem nonetheless.

*** [ DIAGNOSING ]: Operating system
[i] dig return code:  0
[i] dig response:  "Raspbian=9,10 Ubuntu=16,18,20 Debian=9,10 Fedora=31,32 CentOS=7,8"
[✗] Distro:  Linuxmint
[✗] Error: Linuxmint is not a supported distro (https://docs.pi-hole.net/main/prerequisites/)

Your Pi-hole is at the following IP:

IPV4_ADDRESS=10.31.27.2/24

When the debug log discovered the DHCP server, this is what it found - replies from multiple DHCP servers, not just one.

*** [ DIAGNOSING ]: Discovering active DHCP servers (takes 10 seconds)
   Scanning all your interfaces for DHCP servers
   Timeout: 10 seconds
   
   * Received 300 bytes from eno1:10.31.27.1
     Offered IP address: 10.31.27.2
     Server IP address: 10.31.27.1
     Relay-agent IP address: N/A
     BOOTP server: (empty)
     BOOTP file: (empty)
     DHCP options:
      Message type: DHCPOFFER (2)
      server-identifier: 10.31.27.1
      lease-time: 120 ( 2m )
      renewal-time: 60 ( 1m )
      rebinding-time: 105 ( 1m 45s )
      netmask: 255.255.255.0
      broadcast: 10.31.27.255
      router: 10.31.27.1
      domain-name: "lan"
      dns-server: 10.31.27.1
      --- end of options ---
    
   * Received 307 bytes from eno1:10.31.27.2
     Offered IP address: 10.31.27.12
     Server IP address: 10.31.27.2
     Relay-agent IP address: N/A
     BOOTP server: (empty)
     BOOTP file: (empty)
     DHCP options:
      Message type: DHCPOFFER (2)
      server-identifier: 10.31.27.2
      lease-time: 120 ( 2m )
      renewal-time: 60 ( 1m )
      rebinding-time: 105 ( 1m 45s )
      netmask: 255.255.255.0
      broadcast: 10.31.27.255
      dns-server: 10.31.27.2
      domain-name: "servehalflife"
      router: 10.31.27.1
      --- end of options ---
    
   DHCP packets received on interface vetha4a3e50: 0
   DHCP packets received on interface lo: 0
   DHCP packets received on interface vethed0f3b8: 0
   DHCP packets received on interface vethd03340b: 0
   DHCP packets received on interface veth0564153: 0
   DHCP packets received on interface vethf505fb5: 0
   DHCP packets received on interface vethb85d6ed: 0
   DHCP packets received on interface vethd73fdd4: 0
   DHCP packets received on interface docker0: 0
   DHCP packets received on interface vethb07fa63: 0
   DHCP packets received on interface vethbf2321d: 0
   DHCP packets received on interface hassio: 0
   DHCP packets received on interface veth3033c00: 0
   DHCP packets received on interface veth8d3e839: 0
   DHCP packets received on interface veth99391bc: 0
   DHCP packets received on interface eno1: 2

Thanks JFB, I am technically using 2 DHCP servers. I have a Google Wi-Fi system and the DHCP service cannot be turned off on that device so on the GWi-Fi ive set the DHCP address pool as 10.31.27.2 so all DHCP requests get routed into pihole. 10.31.27.2 is the pihole server. It`s IP is statically set on the server itself. The NIC on the server is eno1. From the log if im understanding it correctly, eno1 is offering up 2 IP addresses. One is the router of 10.31.27.1 and the other is 10.31.27.2 (pihole). I cant see an explanation from the debug log of why pihole isnt assigning my pc the static address. From the DHCP Pool everything is working a treat.

How did you accomplish deleting the lease?

Theres a delete button within the DHCP leases. I`d assume this deletes the current lease so that the next time the machine connects, DHCP will assign a lease from the pool.

Ok i think i`m getting closer to the issue. When i check /etc/pihole/dhcp.leases, my PC does not appear in the list but all my other devices are there. the DNS Suffix im receiving is servehalflife which is configured by pihole. Somethings amiss here.

Ive now got it working. I do not know if it was luck, I set the PC NIC to a static address manually. After i did that i didn't appear to have internet, so i reverted back to automatically assign and my PC got 10.31.27.5 which is the static address pihole dishes out I`m starting to think this isn't a pihole DHCP but a Windows issue. I can see now in the pihole leases window that my pc has successfully been assigned 10.31.27.5

1 Like

I have a similar issue and hope someone can help me please.

I have a raspberry pi 4 (debian buster) that does always get an IP out of the DHCP pool although I have set static DHCP leases for the WIFI and Ethernet MAC Addresses. I flushed / cleared all arp and dns cache and rebooted pi-hole several times but it is still not working.

I am running the Pi-Hole on:
Release = Raspbian GNU/Linux 10 (buster)
Kernel = Linux 5.4.83-v7+
Platform = Raspberry Pi 2 Model B Rev 1.1

Here is the support token:
https://tricorder.pi-hole.net/mzpy3aafzw

Hope this is all the information you would need.

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