Please follow the below template, it will help us to help you!
Expected Behaviour:
Router 192.168.1.1 has DHCP server disabled. Pi-hole 192.168.1.2 (static IP) has DHCP server enabled with range 192.168.1.20 - 192.168.1.251. Would expect that clients on the network get assigned an IP by the Pi-hole DHCP server
Actual Behaviour:
Clients self assign 169.254.x.x IP addresses rather than getting a 192.168.1.x IP address from the Pi-hole DHCP server.
[root@localhost log]# grep DHCP /var/log/pihole.log
Oct 29 05:05:17 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:17 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:17 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:17 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:17 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:17 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:18 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:18 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Oct 29 05:05:18 dnsmasq-dhcp[896]: DHCP packet received on eth0 which has no address
Jan 20 09:39:55 dnsmasq[1740]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 09:39:55 dnsmasq-dhcp[1740]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Jan 20 09:39:55 dnsmasq-dhcp[1740]: DHCPv6, IP range ::100 -- ::1ff, lease time 1d, template for eth0
Jan 20 09:39:55 dnsmasq-dhcp[1740]: DHCPv4-derived IPv6 names on eth0
Jan 20 09:55:29 dnsmasq[2260]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 09:55:29 dnsmasq-dhcp[2260]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Jan 20 09:55:29 dnsmasq-dhcp[2260]: DHCPv6, IP range ::100 -- ::1ff, lease time 1d, template for eth0
Jan 20 09:55:29 dnsmasq-dhcp[2260]: DHCPv4-derived IPv6 names on eth0
Jan 20 10:09:26 dnsmasq[2613]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 10:09:26 dnsmasq-dhcp[2613]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Jan 20 10:22:06 dnsmasq[3033]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 10:22:06 dnsmasq-dhcp[3033]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Jan 20 10:23:56 dnsmasq[3275]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 10:23:56 dnsmasq-dhcp[3275]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Oct 29 05:05:11 dnsmasq[894]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Oct 29 05:05:11 dnsmasq-dhcp[894]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Oct 29 05:05:13 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:13 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:13 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:13 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:13 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:13 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:14 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:14 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:15 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Oct 29 05:05:15 dnsmasq-dhcp[894]: DHCP packet received on eth0 which has no address
Jan 20 11:44:48 dnsmasq[2151]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 15:38:30 dnsmasq[4574]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Jan 20 15:38:30 dnsmasq-dhcp[4574]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Oct 29 05:05:11 dnsmasq[882]: compile time options: IPv6 GNU-getopt no-DBus no-i18n no-IDN DHCP DHCPv6 no-Lua TFTP no-conntrack ipset auth DNSSEC loop-detect inotify
Oct 29 05:05:11 dnsmasq-dhcp[882]: DHCP, IP range 192.168.1.20 -- 192.168.1.251, lease time 1d
Oct 29 05:05:13 dnsmasq-dhcp[882]: DHCP packet received on eth0 which has no address
I tried both repair option and reconfigure option, but I still experience the same issue. I then uninstalled pi-hole and reinstalled and still experience the same issue.
I think my next step is to just wipe the pi and start with a fresh download of Fedora 28 as the current instance is a dnf upgrade.
So I started with a fresh Fedora 28 and pihole install, but the issue remained. Using tcpdump, I could see dhcp broadcasts coming in, but nothing going out. I temporarily turned off firewalld, which immediately fixed the issue.
Next, I added the firewalld rules from the prerequisites page: Redirecting... ,rebooted (thus turning firewalld back on), and DHCP now seems to be working as expected.
Note to any future people that might read this -- while going through the install of pi-hole, the installer will prompt to ask if you want it to add firewall rules for you, I had selected "yes" for this option, but you may want to double check if something isn't working as expected.