How do I use Pi-hole's built in DHCP server (and why would I want to)?

Using Your Existing Router For Network-wide Ad Blocking

You might not need to use Pi-hole's DHCP server: In many home environments, your router also functions as your DHCP server. In this case, you can often set Pi-hole to be the DNS server for your network clients in the router's DHCP (or LAN) settings page, which allows all of your network clients to block ads simply by connecting to the network.

Setting it up this way is also what makes Pi-hole very powerful for network-wide ad blocking.

When You Cannot Change LAN/DHCP Options In Your Router

Some routers (and even some Internet Service Providers) do not let you change these settings. In this case, using Pi-hole's DHCP server is very advantageous because you can still get automatic, network-wide ad ad blocking even if you can't make the necessary changes on existing hardware.

To Use Pi-hole's DHCP Server

  1. Disable the DHCP server on your router (this is a critical step--you will see red warning text when you enable the checkbox)
  2. Enable Pi-hole's DHCP server on the Settings page

Technically, this is all you need to do, as DHCP is meant to be easy for clients to get an address; if a DHCP server is on your network, network devices will find it. However, there are several additional options you can set for your DHCP server (and it's not just limited to what's currently available in our Web interface if you know how to edit the dnsmasq config file).

Advanced DHCP Settings

These settings are similar to what you would find on your router's DHCP server, so if you have ever adjusted those settings, these will look familiar.

IPv6, SLAAC, And RA

Without getting too technical, enabling SLAAC and RA allows your network devices to auto assign themselves an IPv6 address.

DHCP Lease Time

This setting is how long your network devices keep their address assigned by DHCP. This will vary depending on your network.

DHCP Leases

This section allows you to assign DHCP reservations for your network devices. Enter the MAC address of the device and the IP address you want it to have. You can also give it a name so you can easily see what clients are accessing what domains via the query log. So instead of seeing just IP addresses on the dashboard and query log, you can see the client name.

5 Likes

Hi, I am trying to see if this works for two networks? I use DietPi (Pi-hole Version v3.1.4 Web Interface Version v3.1 FTL Version v2.10) However, I don't see anything in the gui where I can add DHCP service for 192.168.0.0/24 and 192.168.2.0/24.

Thanks

We have not exposed those kind of settings, if dnsmasq even supports it. Search for information on dnsmasq's DHCP config options.

9 posts were split to a new topic: Remove DHCP Leases

Is it possible to enable static DHCP entries where I can pick different default gateway per MAC address?
I need a few devices to be routed through VPN appliance (another Raspberry Pi) which is not my regular firewall.

2 Likes

We still use dnsmasq as the base program, so anything that you can set up via dnsmasq configurations would work. That would be something that could be done, just create two DHCP pools and assign the MAC to either pool, it would be manually done through the configuration files, but there are a number of guides out there that explain the DHCP pools with dnsmasq as it's a really powerful program.

1 Like

I'm thinking of changing the config files manually for now but it would be really good to have this option in the management interface.

You can open a Feature Request in that category and we'll have it vote-able by the community.

Thanks Dan. Will do.

Can I still just add my own dnsmasq config options in now that you've forked it for FTLDNS? I've had dnsmasq be my dns and dhcp server for ages and I'd like to keep my dhcp rules and subnets etc.

Where do I drop in dnsmasq config options? Do they still live in /etc/dnsmasq.d/?

Yup.

And _FTL_DNS is just our fork of dnsmasq so any custom configs that work with dnsmasq will work with Pi-hole.

I red the topic very carefully, and I don't understand how can I do the following:
One of my pc in the network contain the pi-hole installation, and I want to relay all the network from my router to this pc, in order to use pi-hole for all my home network, instead of adding middle machine, like PI between the router and the modem to do pretty much the same.

  • Consider that I don't have the option to set VPN/DNS servers on my home router, I only have the option to set relay server.
    Can you please explain my what should I do?

Thanks.

Not quite sure what you mean by this.

You coud disable the router's DHCP server (that is a default, standard option available in all routers) and enable the DHCP server in the admin interface (of Pi-hole). That will ensure that all clients connecting to the network, LAN or WiFi will all get the Pi-hole IP as the DNS server.

3 posts were split to a new topic: DHCP server custom configuration

A post was split to a new topic: Cannot enable DHCP on Pi-Hole

A post was split to a new topic: Pi-Hole as DHCP - clients not getting IP

This guide missed something.
If your router have options about:

Enable Route Advertisement
Enable DHCPv6 Server

In the IP V6 section, disable them all and then tick Enable IPv6 support (SLAAC + RA) on Pi-hole web admin.

A post was split to a new topic: Using Pi-hole DHCP server

Do you mean disabling the first 2 settings in the screenshot?[Router Advertisement-Service & DHCPv6-Service] Then enable Enable IPv6 support (SLAAC + RA) ?

Yes, disabled IP v6 on router if it is enabled.

1 Like